我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文讨论使用命令行对安卓机里面的软件包进行安装。远程命令行安装的前提是打开了安卓机的开发者模式,可能出现的结果是静默安装或者被默认的安装器拦截而导致超时。那么,这样的问题该如何解决呢?

苏南大叔:安卓adb调试,最佳实践:命令行安装apk软件的几种方式 - 命令行安装apk
安卓adb调试,最佳实践:命令行安装apk软件的几种方式(图2-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验文章。本文测试环境:doov@d80proandroid@11win10adb@1.0.32。本文要安装的龙套演员软件包:Microsoft Launcherxbrowser

安装模式:定制

需要在电脑上安装adb软件,这个部分苏南大叔使用的是"刷机助手"的集成环境。参考:

【系统拦截】默认情况下,apk包的安装,会被手机上默认的com.android.packageinstaller所拦截。并且会根据手机的不同,调用不同定制化的后续拦截逻辑。(比如:安装界面加广告)。

【第三方定制】既然系统可以拦截定制,那么第三方软件包也是可以拦截的。从而把系统带广告的界面,替换成不带广告的界面。目前已知的软件有:installxLuckyPatcher。这个部分待后续讨论。

【静默安装】【推荐】开启“开发者模式”后,可以使得各种拦截定制逻辑失效,直接静默安装软件。但是,要关闭一个“监控adb安装应用”选项。如下图所示:

苏南大叔:安卓adb调试,最佳实践:命令行安装apk软件的几种方式 - 打开开发者选项
安卓adb调试,最佳实践:命令行安装apk软件的几种方式(图2-2)

命令一:adb install【推荐】

adb顺利连接到手机后,可以在电脑上面直接执行adb install命令,就可以启动传输和安装的过程。比如:

adb install "d:\freeme\微软桌面(Microsoft Launcher)v6.240103.0.1132381安卓版.apk"

或者也可以直接双击apk包,也可以产生一样的效果。

如果安装失败,可能的原因是被安卓界面端被拦截了(非静默安装),或者包无法解析(上传超时)等原因。具体问题具体分析了。

命令二 adb shell pm install

安装软件的话,需要先把apk包传到安卓手机上。参考文章:

例如:

adb push "d:\freeme\xbrowser-release.apk" /data/local/tmp/

然后再使用文件管理器【推荐】进行安装。或者执行下面类似的命令:

adb shell pm install --user 0 "/data/local/tmp/xbrowser-release.apk"

实际上adb shell是执行在win10上面的,pm install是执行在安卓机上的。具体的pm命令的使用问题,待后续讨论。

可能的失败原因

值得一提的是:
这个命令行安装的过程,可能并不是个纯命令行下面的交互过程。会有各种权限问题或者路径问题,或者被安装器拦截的问题。命令行下的安装过程是有可能失败的。

结语

苏南大叔的更多adb命令的使用问题,请参考:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   android    adb