点击
“搜狗测试”
可关注我们!
【Adb常用操作命令】
1. 查看设备adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
2.安装软件adb install
adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上
3. 卸载软件
adb uninstall <软件名>
adb uninstall -k <软件名>
如果加-k 参数,为卸载软件但是保留配置和缓存文件。
4. 进入设备或模拟器的shell:
adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell[command]
如:adbshell dmesg会打印出内核的调试信息。
5. 发布端口
可以设置任意的端口 ,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
6. 从电脑上发送文件到设备
adb push<本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)
7. 从设备上下载文件到电脑
adb pull<远程路径> <本地路径>
用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑
8.查看bug 告(系统日志)
adb bugreport bugreport.zip (Android6.0以上)
adb bugreport> bugreport.txt (Android6.0及以下)
注:bugreport命令,可以获取在从开机之后详细的dumpsys,dumpstate和logcat信息,是一份完整的日志记录,对分析用户行为,异常信息,系统状态有很大的参考作用。一般我们会把bugreport导出到电脑上分析。
9.获取设备的信息
(1)获取手机系统信息(CPU,厂商名称等)
adb shell”cat /system/build.prop | grep “product””
(2)获取手机系统版本
adb shellgetprop ro.build.version.release
(3)获取手机系统api版本
adb shellgetprop ro.build.version.sdk
(4)获取手机设备型
adb -dshell getprop ro.product.model
(5)获取手机厂商名称
adb -dshell getprop ro.product.brand
(6)获取手机的序列
adbget-serialno
adb shellgetprop ro.serialno
(7)获取手机内存信息
adb shellcat /proc/meminfo
(8)获取手机存储信息
adb shelldf
获取手机内部存储信息:
魅族手机:adb shell df/mnt/shell/emulated
其他:adb shell df /data
获取sdcard存储信息:adb shelldf /storage/sdcard
(9)获取手机分辨率
adb shell”dumpsys window | grep mUnrestrictedScreen”
(10)获取手机物理密度
adb shellwm density
【am、pm查看包名/获取应用activity/启动/停止应用程序】
1.通过adb shell的pm命令,查看包名(不需要root)
adb shell pm listpackage
#显示手机内所有所有apk对应的应用包名
注解:pm命令,可以通过pm命令得到系统类package相关的信息
2.通过adb shell,获取应用的activity(不需要root)
adb shell dumpsysactivity
获取到最近运行的activity列表
上例中#4~#1分别为4家地图app运行的activity:#4是最近一次运行的,处于栈顶;
注解:Activity 栈
Android 是通过一种Activity 栈的方式来管理Activity的,一个Activity 的实例的状态决定它在栈中的位置。处于前台的Activity 总是在栈的顶端,当前台的Activity 因为异常或其它原因被销毁时,处于栈第二层的Activity将被激活,上浮到栈顶。当新的Activity启动入栈时,原Activity 会被压入到栈的第二层。一个Activity在栈中的位置变化反映了它在不同状态间的转换。
误区:
利用adbshell dumpsys activity 命令获取的应用的activity和启动应用的activity并不一定是同一个,所以在自动调起应用环节出现了问题。
3.通过adb shell命令来启动应用程序
adb shell am start-n 包名/Activity名
注意:adbshell am start -n 包名/Activity类的类名命令中,包名和Activity类的类名一定要输入正确
4.通过adb shell命令来获取应用启动时间
使用am命令,从命令行启动程序,测试App启动时间(启动一个Activity)
adb shell am start -W-n 包名/Activity名
子命令说明
-W等待启动结束
-n指定Activity名称
示例
adbshell am start -W -n com.sogou.map.android.maps/com.sogou.map.android.maps.MainActivity
5.通过adb shell命令来停止应用程序
adb shell am force-stop 包名
【aapt】
aapt 是android assert packagingtool的缩写;
查看apk的一些信息
aapt d[ump] [–values] WHAT file.{apk} [asset [asset …]]
aapt d badging filepath/..apk:显示标签、图标和应用程序的相关描述。
aapt d permissions filepath/..apk:显示apk所具有的系统权限
aapt d badging filepath/..apk :显示apk的资源列表
aapt d configurations filepath/..apk:显示apk的配置信息
aapt dump bading filepath/..apk:查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息
【通过wifi连接android设备】
无法用usb直接连接,利用adb connect方法,通过wifi连接android设备通过wifi连接android设备。adb connect ip 成功后可以执行原来usb连接时的所有命令,如adb install、adb logcat等。
adb connect IP 可以链接某个设备
注意:要链接的IP ,必须和自己的PC的 络在同一个局域 内,adb 不能跨局域 链接设备
例如:adb connect 10.129.49.143
如果显示连接成功,则可继续执行后面的操作;如果不成功,显示:connect拒绝
有可能是设备监听端口的问题,重新启用,可以连接上。
【Dumpsys】
android系统默认运行了很多系统服务,如监测电池信息的battery服务等,其支持很多子命令,每个命令用来显示单个系统服务的详细信息。
1.dumpsys meminfo 打印内存使用率情况
使用adbshell dumpsys meminfo [PackageName ],可以打印出指定包名的应用内存信息。使用该命令可以很直观的观察到Activity的泄漏问题,是平常分析比较常用的一种方式。
android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是native+dalvik不能超过最大限制。
VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS>= RSS >= PSS >= USS
2.dumpsys activity 打印所有活动(activity)的信息
3.dumpsys wifi 打印无线 络连接信息
4.dumpsys battery 打印电池电量信息
5.dumpsys cpuinfo 显示CPU的使用情况
6.查看指定包的信息
Adb shell dumpsyspackage<packagename>
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!