宫非和羽锡,天津烟草网上订货,吴淡如
android设备,比如车载tbox搭载的android系统,
其只有500m的磁盘容量;电视机搭载的android系统其磁盘容量也非常小,
一般debug阶段的产品,开启的log比较多,比如有:
自动后台logcat截取,自动捕捉coredump, tombstone,anr,
dropbox等crash相关的log,还有比如车载测试,可能产生大量的gps轨迹log,
语音测试可能产生很多录音文件。及时清理以上log,有很多好处。
(1). 适时地清理log,可以在导出log的时候,花较少的时间,减少不必要的冗余的log。
(2). 适时地清理log,可以减少磁盘满爆盘风险,尤其是磁盘容量很小的设备,
爆盘后你会看到各种app的无法正常运行。
所以,适时清理log,对于一个合格的测试人员来说,也很重要。
android log类型 | 默认路径 |
---|---|
logcat序列log | /data/logs/logcat.txt /data/logs/logcat.txt.1 … /data/logs/logcat.txt.20 |
dbus序列log | /data/logs/dbus.txt /data/logs/dbus.txt.1 … /data/logs/dbus.txt.20 |
kernel序列log | /data/logs/kernel.txt /data/logs/kernel.txt.1 ... /data/logs/kernel.txt.20 |
tombstone log | /data/tombstones/* |
anr卡死log | /data/anr/* |
dropbox log | /data/system/dropbox/* |
gps log | /sdcard/map/gps/* |
高德地图log | /sdcard/amapauto8/logs/* |
其中,自动生成的序列log,比如logcat序列log,
一般是全部写到logcat.txt,写满5m后,
将logcat.txt重命名为logcat.txt.1,以此类推。。。
所以logcat.txt就始终是最新的log,这个文件是不可以删除的,
因为假如删除了,则文件句柄会出错,无法自动生成序列logcat日志了,
logcat.txt.1, logcat.txt.2 这些是老的log, 可以删除,
所以: 只能用adb shell rm -rf /data/logs/logcat.txt.*
注意这个.*, 代表了.1, .2, .3 ....等等序列log文件
# coding=utf-8 import os print("正在清理旧log...请稍候!") os.system("adb shell rm -rf /data/log/logcat.txt.*") os.system("adb shell rm -rf /data/log/dbus.txt.*") os.system("adb shell rm -rf /data/tombstones/*") os.system("adb shell rm -rf /data/anr/*") os.system("adb shell rm -rf /data/system/dropbox/*") os.system("adb shell rm -rf /sdcard/map/gps/*") os.system("adb shell rm -rf /sdcard/amapauto8/logs/*") print("旧log清理完毕!") os.system("pause")
本次我们区分下清理log的等级,分2个函数,
一个是清理大部分log的函数, 一个是清理所有log的函数。
# coding=utf-8 import os def clean_most_logs(): os.system("adb shell rm -rf /data/logs/logcat.txt.*") os.system("adb shell rm -rf /data/logs/dbus.txt.*") os.system("adb shell rm -rf /data/tombstones/*") os.system("adb shell rm -rf /data/anr/*") os.system("adb shell rm -rf /data/system/dropbox/*") def clean_all_logs(): clean_most_logs() os.system("adb shell rm -rf /sdcard/map/gps/*") os.system("adb shell rm -rf /sdcard/amapauto/logs/*") # print("正在清理大部分的旧log...请稍候!") # clean_most_logs() # print("大部分旧log清理完毕!") print("正在所有的旧log...请稍候!") clean_all_logs() print("所有旧log清理完毕!") os.system("pause")
以上,实现了函数的嵌套与调用。
# coding=utf-8 import os class logcleaner(): def __init__(self): pass def clean_most_logs(self): os.system("adb shell rm -rf /data/logs/logcat.txt.*") os.system("adb shell rm -rf /data/logs/dbus.txt.*") os.system("adb shell rm -rf /data/tombstones/*") os.system("adb shell rm -rf /data/anr/*") os.system("adb shell rm -rf /data/system/dropbox/*") def clean_all_logs(self): self.clean_most_logs() os.system("adb shell rm -rf /sdcard/map/gps/*") os.system("adb shell rm -rf /sdcard/amapauto8/logs/*") l_obj = logcleaner() print("正在所有的旧log...请稍候!") l_obj.clean_all_logs() print("所有旧log清理完毕!") os.system("pause")
确保android车机设备通过usb线与电脑连接了,adb设备有效连接,
以上代码的3种实现形式都可以直接运行,比如保存为clear_logs.py并放在桌面,
每次需要截图的时候,双击运行clear_logs.py,
你用df查看disk free查看你会发现磁盘空出来了不少的容量。
更多更好的原创文章,请访问官方网站:
自拍教程(自动化测试python教程,武散人编著)
原文链接:
也可关注“武散人”微信订阅号,随时接受文章推送。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
python求numpy中array按列非零元素的平均值案例
网友评论