命令语法
命令的基本语法: adb [-d | -e | -s < serialNumber > ] < command >
如果只有一个设备/模拟器连接时,省略可以掉[-d|-e|-s
以上命令中-d,-e,-s的含义:
-d:以当前唯一同构USB连接的设备为目标
-e:以当前唯一运行的模拟器为命令目标
-s:指定相应serialNumber号的设备/模拟器为命令目标
①.查看连接设备的adb命令 : adb devices
②获取连接设备屏幕的分辨率: adb shell wm size 如果有多个设备连接的话,可以通过上面的-d,-e,-s中的其中一个,来具体的指定是哪个设备,adb命令例如: adb -s cf264b8f shell wm size(获取设备号为 cf264b8f 的屏幕分辨率)
以 root 权限运行 adbd
adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。所以如果 adbd 以普通权限执行,有些需要 root 权限才能执行的命令无法直接用 adb xxx 执行。这时可以 adb shell 然后 su后执行命令,也可以让 adbd 以 root 权限执行,这个就能随意执行高权限命令了。-------通俗的说,就是有些命令会因为你权限不够而无法运行,这时候就需要这么办:
命令: adb root 怎么看是否adb root成功了呢? 命令:adb shell 如果是以下这样:
看到这个#号了吗,运行adb shell 之后有这个#号,说明root成功了
无USB线怎么连接设备
开发的时候如果没有USB线怎么办?如何通过adb连接电脑和开发设备?
①. 将设备和电脑连接于同一局域网
②. 打开手机/开发板/硬件的 设置 -> 关于设备 -> 状态信息 -> IP地址 可看到一串数字,例如:10.1.111.11
③. Androidstudio进入Terminal,运行命令: adb connect + IP地址:端口号
例如:adb connect 10.1.111.11:2222
如果连接成功:
④. 断开连接怎么搞? 命令: adb disconnect 10.1.111.11:2222
将文件从电脑上发送到手机(硬件)上
①. 进入到电脑的相应文件夹下
②. 运行命令 adb push xxx.apk mnt/sdcard
将文件从手机(硬件)上,拉取到电脑中
①. 产看设备上的文件路径
②. 运行命令 adb pull 文件路径 保存到电脑的路径
例如:adb pull /mnt/sdcard/xxx.mp4 /Users/xudewei/Desktop/
查看屏幕的信息
①. 查看连接设备屏幕的分辨率: adb shell wm size
②. 查看屏幕密度,即屏幕密度是多少dpi: adb shell wm density
adb查看应用列表
命令格式:adb shell pm list packages [参数]
具体参数的信息以及说明:
例如:
①. 显示所有应用信息 adb shell pm list packages
②. 显示系统应用 adb shell pm list packages -s
③. 显示三方应用 adb shell pm list packages -3
安装apk
命令格式: adb install [参数]
例如想把电脑上的apk文件直接安装到设备上:
adb install /Users/xxxxxx/Desktop/xxxx.apk(这个路径是apk在电脑上的路径)
卸载应用(以360为例子)
卸载命令: adb uninstall 应用包名(com.qihoo360.mobilesafe)
清除应用的数据和缓存: adb shell pm clear 应用包名(com.qihoo360.mobilesafe)
查看系统分配内存以及修改配置
①. adb shell
②. cat /system/build.prop | grep "dalvik.vm"
如果想改变一下设备分配的内存,该怎么改?在上面的步骤前提下
①. 命令: mount -o remount rw system/
②. 命令: busybox vi system/build.prop
修改以下的内容:
```
dalvik.vm.heapstartsize=16m
dalvik.vm.heapgrowthlimit=192m
dalvik.vm.heapsize=512m
```
修改步骤:
1.按 esc,确保都是英文输入法,按上下方向键定位到要修改的地方
2.按 i 进入编辑模式
3.改好了 esc,然后输入 :wq 保存退出
使用adb命令和应用进行交互
①. 打开指定包名下,指定activity的界面,如果启动界面需要参数的话,并携带参数过去
命令格式: am start -n 包名/.要启动的页面的名称 --es 参数名 要携带的参数
例如: 现在要打开的界面的包名是com.sensetime.123,要开启的界面是MainActivity,要携带的参数是String类型,名称是USERID,那么写法就是:
am start -n com.sensetime.123/.MainActivity --es USERID "123456"
这里面的 --es 代表的是String类型的,其他类型在这:
发送广播
命令格式: adb shell am broadcast [options]
可以向所有组件广播,也可以只向指定组件广播。
例如,向所有组件广播 BOOT_COMPLETED:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
又例如,只向 com.sensetime.123/.BootCompletedReceiver 广播 BOOT_COMPLETED:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.sensetime.123/.BootCompletedReceiver
欢迎关注 [懒人漫说] 公众号,分享Java、Android、C/C++ 技术,
包括基础、自己遇到的问题解决过程。
![懒人二维码.png](https://upload-images.jianshu.io/upload_images/11375571-053151cd77e80166.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
当然如果关注并留言问题的话,我们力所能及的话会帮你解决并回复哟。我们和你一样,是正在成长的程序员,我们也会分享自己的成长路上的感想,希望可以和你一起努力成长。