从Android手机获取已安装的apk文件
- 列出已经连接到电脑的设备,如果设备状态
unauthorized
,需要在设备上点击同意USB调试,允许电脑访问本设备。
$ adb devices List of devices attached 0123456789ABCDEF device
- 通过adb shell查找apk文件位置,替换 package name为包名或者application id。
adb shell pm path <package name> ## 根据包名查询apk路径
adb shell pm path com.xxx.test package:/data/app/com.xxx.test/base.apk
- 如果不知道包名,可以通过 adb shell pm list packages 列出所有包。
/data/app
下的文件外部不可读,需要复制到可读写文件夹,例如:/storage/sdcard0/DCIM
。执行adb shell
进入设备
adb shell XXX100:/ $ cp /data/app/com.xxx.test/base.apk /storage/sdcard0/DCIM XXX100:/ $ exit
- 通过
adb pull
将apk文件拉取到本地 (注意: 执行adb pull命令时要退出adb shell模式,也就是在windows cmd下执行adb pull)
adb pull /storage/sdcard0/DCIM/base.apk /Users/xxx/Documents/ /storage/sdcard0/DCIM/base.apk: 1 file pulled. 11.4 MB/s (15350092 bytes in 1.282s)
- 连接要安装应用的设备,替换
AAABBB123456789
为adb devices
查询到的设备ID
adb devices ## 安装到指定的设备上 adb -s AAABBB123456789 install -r /Users/xxx/Documents/base.apk ## 若只有一个与电脑连接的android设备,则命令中可以不指定设备号 adb install /Users/xxx/Documents/base.apk