adb为 Android设备/模拟器 安装app的ADB几种命令行方式以及区别
前言
在Android实际开发中,经常会使用adb命令,安装应用程序可以使用 adb push 或者 adb install 。(安卓手机使用adb工具安装apk的方式最快)
下面就来讲讲这两种安装方式的区别。
区别
1、adb push 能够指定安装目录。比如执行 adb push xxx.apk system/app 后,xxx.apk被安装到了system/app目录下,此目录下的软件为system application。(注意,system/app是只读的,所以只有有root权限才能push apk进去,而且push进去的apk会把原本的apk覆盖掉。)
adb push 本身的意思是将文件复制到系统中的某个文件夹下;但是将apk push到system/app下并重启手机以后同时会成功注册应用程序,即该方式成功安装应用。
【注意】安卓手机的 /system/app 目录大多数都是手机中的系统apk;adb push 没有adb install保险,有失败的可能;有时候因 /system/app 目录是只读的原因而导致在执行adb push 命令的时候出现 failed to copy '/home/SoundRecorder.apk' to '/system/app/SoundRecorder.apk': Read-only file system 错误,解决方法是只能放弃adb push,采用 adb install -r /home/SoundRecorder.apk 强制安装apk
例如: adb push xxxx.apk /system/app
解释:/system/app目录是安卓手机中的系统apk应用。(本实例安装到 system/app目录下,当然也可以安装到/data/app目录下,也是直接安装的。但是有时会安装不成功)
2、 adb install 用此命令安装的软件位于 data/app 目录;成功安装的应用为user application。
【注意】安卓手机的data/app目录大多是手机中的非系统apk,即第三方下载安装的app。
例如: adb install xxxx.apk
解释:可以将PC端的apk安装到手机的 data/app 目录,xxx.apk 这里必须要使用绝对路径,当然也将.apk文件可以直接拽到命令行中。
操作截图:
adb install安装apk的几类参数:
adb install -r xxxx.apk 强制覆盖安装(替换安卓手机上原有的apk或者已经安装的apk即覆盖安装时使用)
adb install -l xxxx.apk 锁定该程序
adb install -s xxxx.apk 安装在SD卡内,而不是设备内部存储
adb uninstall卸载apk的参数:
adb uninstall xxxx(app包名) 卸载应用,需要指定包
adb uninstall -k xxxx(app包名) 卸载app,但保留app的原始数据和缓存文件
清安卓手机指定app的缓存:
adb shell pm clean xxxx(app包名) 可以清除安卓手机某个包apk的数据,就是相当于清除数据(清app缓存)
adb shell pm clear xxxx(app包名) 可以清除安卓手机某个包apk的数据,就是相当于清除数据(清app缓存)
获取安卓手机所有apk的包名:
adb shell pm list packages
获取安卓手机种所有应用的包名中包含《指定内容》的应用包名:
Windows操作系统: adb shell pm list packages | findstr geely
Linux操作系统: adb shell pm list packages | grep geely
获取安卓手机内《某一指定应用》的安装位置(安装目录):
adb shell pm list packages -f com.geely.consumer
adb shell pm path com.geely.consumer
总结
adb install和adb push的安装 apk 的方式主要区别有:
push | install | |
目录 | system/app | data/app |
权限 | 系统级(权限全开) | 用户级(没全开) |
卸载 | root后删除 | 可卸载 |
大小 | 无限制,自定义 | 有限制 |
安装 | pm重新注册 | 不会重新弄注册 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!