adb安装 apk到手机
从豌豆荚,或者其他应用市场,下载应用的apk文件到电脑上。然后在apk文件的目录下打开cmd,输入如下命令即可安装该应用
示例
把我电脑上的京东.apk安装到Android平板上:
命令输出如下:
| 12
 
 | D:\网络共享\可读可写\apk>adb install 京东.apkPerforming Streamed Install
 
 | 
此时命令会阻塞一阵子,需要等待命令把apk文件传输到Android设备中,等待一会后,Android设备上会弹出安装界面,点击继续安装即可。如下图所示:
![]()
安装成功的输出
如果安装成功,命令会输出一个”Success”提示信息。如下所示:
| 12
 3
 4
 5
 
 | D:\网络共享\可读可写\apk>adb install 京东.apkPerforming Streamed Install
 Success
 
 D:\网络共享\可读可写\apk>
 
 | 
安装失败的输出
输出不是”Success”,那就是安装失败了,安装失败的提示如下所示:
| 12
 3
 4
 5
 
 | D:\网络共享\可读可写\apk>adb install 京东.apkPerforming Streamed Install
 adb: failed to install 京东.apk: Failure [INSTALL_FAILED_ABORTED: User rejected permissions]
 
 D:\网络共享\可读可写\apk>
 
 | 
adb卸载
先获取APP的包名
打开APP,让APP显示在屏幕最上方。
然后输入如下命令获取屏幕最上方的APP的activity:
| 1
 | adb shell dumpsys window | findstr mCurrentFocus
 | 
命令输出如下:
| 12
 3
 4
 
 | D:\网络共享\可读可写\apk>adb shell dumpsys window | findstr mCurrentFocusmCurrentFocus=Window{9902caf u0 com.jingdong.app.mall/com.jingdong.app.mall.main.MainActivity}
 
 D:\网络共享\可读可写\apk>
 
 | 
命令输出的com.jingdong.app.mall/com.jingdong.app.mall.main.MainActivity就是activity名称,activity名称斜杠/前面的就是包名com.jingdong.app.mall。
根据包名卸载APP
| 1
 | adb uninstall app_key 包名
 | 
示例
卸载刚才安装的京东APP:
| 1
 | adb uninstall com.jingdong.app.mall
 | 
卸载成功效果:
| 12
 3
 4
 
 | D:\网络共享\可读可写\apk>adb uninstall com.jingdong.app.mallSuccess
 
 D:\网络共享\可读可写\apk>
 
 | 
批量卸载第3方APP
使用批处理
应用包名文件:
adbui.txt
这个文件保存了需要卸载的应用的包名,和应用名,其中包名是必须的,并且必须写在第一列。因为后面的批处理文件主要读取的是第一列的内容。
第二列写应用名,应用名不是必须的,可以不写,因为后面的批处理文件不会读取第2列的内容。
adbui.txt| 12
 3
 
 | com.meta.box 233乐园com.m4399.gamecenter 4399游戏盒
 com.wuba
 
 | 
 
批处理文件
adbui.bat| 12
 3
 4
 5
 6
 7
 8
 
 | @echo off:: 进入当前批处理所在的盘符
 %~d0
 :: 进入当前批处理文件所在目录
 cd %~dp0
 :: 遍历同目录下的adbui.txt文件,读取第一个字段到变量i中,对每一个变量i执行一次adb卸载命令。
 for /f "tokens=1" %%i in (adbui.txt) do adb uninstall %%i
 :: "tokens=1" 表示获取txt文件每行的第一列作为变量的值。
 
 | 
 
执行效果:
| 12
 3
 4
 5
 
 | PS G:\dev2\idea_workspace\MyJavaTools\runable> adbuiSuccess
 Success
 Success
 PS G:\dev2\idea_workspace\MyJavaTools\runable
 
 | 
如果Android设备中并没有安装这些应用,则卸载失败。
改进
adb列出第三方apk
| 1
 | adb shell pm list packages -3
 | 
adbui4.bat
先列出第三方应用,然后在第三方应用列表中查找 adbui.txt中的包名,如果找到,再使用adb卸载命令。
adbui4.bat| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | @echo offsetlocal EnableExtensions
 :: 进入当前盘符
 %~d0
 :: 进入当前文件所在目录
 cd %~dp0
 
 for /f "tokens=2 delims=:" %%i in ('adb shell pm list packages -3') do (
 echo %%i
 for /f "tokens=1" %%j in (adbui.txt) do (
 if %%i == %%j (
 echo %%j == %%i
 
 echo 卸载
 adb uninstall %%i
 )
 )
 )
 
 | 
 
改进2
存在多个设备的情况
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 
 | @echo offsetlocal EnableExtensions
 
 %~d0
 
 cd %~dp0
 
 
 
 
 for /f "skip=1 tokens=1" %%i in ('adb devices -l') do (
 echo -----------------------------------------
 echo --------------------------
 echo current device: %%i
 echo --------------------------
 
 
 
 
 
 for /f "tokens=1" %%k in (adbui.txt) do (
 
 
 
 
 for /f "tokens=2 delims=:" %%j in ('adb -s %%i shell pm list packages -3') do (
 
 if %%j == %%k (
 echo uninstall: %%j
 echo.
 echo code: adb -s %%i uninstall %%j
 
 echo.
 ) else (
 echo no uninstall: %%j
 )
 
 )
 )
 
 echo -----------------------------------------
 )
 
 | 
参考资料
https://www.w3cschool.cn/pclrmsc/yqaho0.html
https://www.w3cschool.cn/pclrmsc/gmjsnz.html