美文网首页android技术干货
使用Python脚本批量卸载第三方应用和清除log缓存

使用Python脚本批量卸载第三方应用和清除log缓存

作者: 张明云 | 来源:发表于2015-01-13 13:13 被阅读497次

    前言

      APK默认情况下是安装在ROM里面的,但由于ROM优先,当第三方APK安装过多、没有清理机器内的log缓存时,安装程序时会报如下异常:

    [2014-04-11 20:27:04 - xxxx] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
    [2014-04-11 20:27:04 - xxx] Please check logcat output for more details.
    [2014-04-11 20:27:04 - xxx] Launch canceled!
    

      通常有如下几种方式来解决这个问题:

    • 在AndroidManifest.xml文件中增加如下属性,让APK优先安装在外置存储中:

      android:installLocation="preferExternal"

    • 卸载掉无关的第三方应用;

    • 清除logcat的缓存;

    • 重启机器。

      上面的四种方法只能暂时解决问题,所以我们需要将上述的操作自动化,这样在遇到这个问题时通过程序搞定,可以节省很多时间,面对这种需求我写的python脚本就应运而生了。

    基本要求和测试环境

    基本要求:

      由于该脚本是通过操作DOS命令来完成的,所以在使用该脚本之前需要配置好ADB的环境变量,切确保你的设备ADB开着,并和电脑正常连接。

    测试环境:

    操作系统:Winows 7 64位

    Python版本:Python 2.7

    具体实现:

      代码很简单,主要是通过DOS命令来操作,如果你想某些第三方应用不被卸载掉,可以通过字符串匹配相应的包名前缀,这个自己添加一下就OK:

    # -*- coding: utf-8 -*-
    
    import os;
    
    def uninstall( ):
        print 'start uninstall...'
        os.popen('adb wait-for-device');
        packages = os.popen('adb shell pm list packages -3');
        for package in packages.readlines():
            packageName = package.split(':')[-1].splitlines()[0];
            os.popen('adb uninstall ' + packageName );
            print packageName,'uninstall successed';
        print 'uninstall all successed...'
    
    def clearlog( ):
        print 'start clear logcat buffer...'
        os.popen('adb wait-for-device');
        os.popen('adb logcat -c');
        print 'clear logcat buffer success...'
    
    clearlog();
    uninstall();
    

    参考资料:

    相关文章

      网友评论

      • 张长长啊:packages = os.popen('adb shell pm list packages -3');
        for package in packages.readlines():
        packageName = package.split(':')[-1].splitlines()[0];
        能不能稍微解释一下这三条,-3 就找的是第三方应用吗
        作者:张明云
        链接:http://www.jianshu.com/p/3011c60b19cb
        來源:简书
        著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

      本文标题:使用Python脚本批量卸载第三方应用和清除log缓存

      本文链接:https://www.haomeiwen.com/subject/qziqxttx.html