我们之前一起看了adb和adb logcat的一些简单命令,今天我们在一起来看看adb还有什么好玩的值得我们说的。
如何通过adb命令来安装一个App和卸载一个App,简单的命令就可以简化我们的手动安装与卸载adb install test.apk
|| adb unistall test.apk
简单的两行命令实现我们的需要。
试想一下如果我们有这么一个需求,在测试的时候如果之前有一台手机安装过这个App,但是如果版本不一样,继续去安装,就会提示已存在,请卸载在安装,但是又没有命令帮我们,卸载还有安装同步执行哪,当然有了,adb install -r test.apk
-r就是replace的意思,明白了吧。
上面只是一些很简单,很小儿科的东西,下面我们讲一些高级一点,好玩的东西。adb pm || adb am || adb wm
这是三个很重要的命令
pm就是PackageManager,am就是ActivityManager,wm就是WindowManager。
下面我们依次来看一看。
pm
试想我们有这么一个需求,就是我们所说的启动页,我们平时开发要做App的启动页大多数用Sp去做,但是这东西只有App第一次安装的时候才会出现,所以我们如果想测试,就必须卸载App然后安装App在进行测试,有没有命令帮我们搞定哪,有的同学会说了上面不是有卸载+安装的命令啊,确实,但是这样显得有点Low,下面我们可以这样做。adb shell pm clear packageName
清空我们App的缓存,相当于App第一次安装。
可能有的人又说了,我们自己的App可能知道包名,其他的怎么办哪?当然也是有办法的,adb shell pm list package
查看手机所有的包名。
在这些输出打印当中你可能会发现有手机系统自己的系统包名,有我们安装的第三方应用的包名,那这样可不可以区分哪,当然也是可以的。adb shell pm list package -3
|| adb shell pm list package -s
前者是列出第三方包名,后者是列出系统包名。
我们还可以查看这些App的安装来源,路径。adb shell pm list package -i
|| adb shell pm list package -f
还有一个命令打印出来的信息太全面了adb shell pm dump packageName
源码在此,这个网站可以很好的帮我们在线查看Android源码Pm.java
下面我们来看am
顾名思义,通过它我们可以启动一些和四大组件相关的东西。
for example我们通过它来打开一个网页adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com
神奇的一幕出现,回车,手机上面自己打开了一个网页。
如果我们还想让它打电话adb shell am start -a android.intent.action.CALL -d tel:10086
刚刚说了是启动四大组件,那肯定是和他们有关系啊。
启动一个serviceadb shell am startservice -n packageName/claaName
解释一下,为什么上面是-a,这个是-n实际上这个地方写-n也行,区别就是-a是action的意思,-n是name的意思,service的路径一定要写全。adb shell am broadcast -a actionname
adb shell am startactivity -n classname
不解释。
Am源码在此Am.java
最后一个看看Wm
是和手机屏幕打交道的一个命令。
它可以帮我们取出手机的尺寸,密度等信息adb shell wm size
adb shell wm density
一个尺寸一个密度,完美
源码在此Wm.java
今天的东西比较实用,后面可能还会继续去写这个东西,最近爱上了命令这个东西,因为Mac上面的终端实在是太可爱了,各位晚安,夜深了!!!!
版权声明:
除非注明,本博文章均为原创,转载请以链接形式标明本文地址。