一、查看内存使用情况
adb devices 查看已连接设备
adb -s 0123456789ABCDEF shell dumpsys meminfo (查看A所有进程内存使用情况)
adb shell dumpsys meminfo 8509 —— 8509是进程编号(查看单个进程内存使用情况
adb shell ps 查看所有apk进程
二、创建/删除文件夹,Push文件到文件夹
1.创建文件夹
adb root
adb remount
adb shell mkdir /system/app/test
2.删除文件夹
adb root
adb remount (如果adb remount失败,执行adb disable-verity 后重启-解锁system分区))
adb shell rm -rf system/app/test
3.push到指定路径
adb root
adb remount
adb push E:\test.apk /system/app/test/[test.apk]
adb reboot
4.获取包名对应的安装路径
adb shell pm path edo.example.test
5.pull拉取文件
adb pull /system/app/test/test.apk E:\
三、模拟触发按键事件
adb shell input keyevent 4
四、抓取日志
adb logcat -d >log.txt 存储在运行指令的路径下log.txt
adb shell dumpsys audio > audiolog 抓取指定类型的日志
五、安装与卸载
adb uninstall edo.example.test
adb install -r E:\text.apk
六、启动与Kill APP
1.启动app
adb shell am start -n edo.example.test/edo.example.test.ui.MainActivity //启动页
2.启动App/Activtiy并传参:data
adb shell am start -n com.huawei.ivi.hmi.userguide/.welcome.MainActivity --es data SF-04001006_f8501
adb shell am start -n com.huawei.ivi.hmi.userguide/.welcome.MainActivity --es funNum SF-03002004_f8100
3.查看包名对应进程
adb shell ps|findstr edo.example.test
4.强制停止APP进程,不会清除APP进程在系统中产生的数据
adb shell am force-stop edo.example.test
5.停止APP进程,并且清除这个APP进程产生的所有数据
adb shell pm clear edo.example.test
七、列出所有包名
adb shell pm list packages
八、发送广播
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED //发送启动广播
九、查看和修改日志级别
1.查看当前系统的日志的输出级别
adb shell “getprop | grep persist.log.tag”
2.将系统日志输出级别提升到Error级别)有D/I/W/E四个级别。
adb shell setprop persist.log.tag I
十、二次[重新]签名
apksigner在:cd C:\Users\extiovrd05\AppData\Local\Android\Sdk\build-tools\30.0.3
apksigner sign --ks 你的签名文件 --ks-key-alias 你的签名文件的别名 你要签名的apk
示例:
apksigner sign --ks E:\mykey.jks --ks-key-alias myalias E:\test.apk
十一、Android代码中执行命令
doCommand("am broadcast -a android.intent.action.MEDIA_MOUNTED");//发送挂载广播
private void doCommand(String command) {
try {
Process process = Runtime.getRuntime().exec("adb shell");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();
os.close();
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
System.out.println("doCommand.IOException");
}
}