CSDN话题挑战赛第2期
参赛话题:面试宝典
前言
adb shell:$
su:#
//su -: 会切换root用户,也会把用户变量也切换到root的环境变量
//su : 只是会切换root用户,但是当前的环境变量还是以前用户的环境变量
1. 连接设备
格式:adb connect 设备IP
eg:adb connect 20.234.120.224
2. 查看已连接设备
格式:adb devices
3. 修改文件权限
adb shell:$
($) ls -l ( 查看所有文件权限)
($) chmod 644 a.txt (修改a.txt为可读可写(644))
4. 导出文件
格式:adb pull [安卓设备指定目录下文件] [计算机指定目录]
eg:adb pull/sdcard/Android/data/包名/files/test.txt f:\test
5. 导入文件
格式:adb push [计算器指定目录文件] [安卓设备指定目录]
例如:adb push C:\Users\Administrator\Desktop\test.jpg sdcard
如果遇到remote couldn’t create file: Read-only file system,可以直接在AS中upload
6. 安装应用
格式:adb install [全路径apk]
例如:adb ins tall C:\Users\Administrator\Desktop\test.apk
若是在apk文件目录进行adb,则可以省略apk目录
例如:adb install test.apk
如果提示 Failure [INSTALL_FAILED_VERSION_DOWNGRADE],那用下列命令进行安装
格式:adb install [全路径apk]
例如:adb install -r -d C:\Users\Administrator\Desktop\test.apk
7. 卸载应用
格式:adb uninstall [应用包名]
例如:adb uninstall com.demo.myapplication
8. 查看已安装应用
adb shell pm list package
若有多个连接设备,则需要指定设备
adb -s [android设备ip] shell pm list package
9. 退出应用
格式:adb shell am force-stop [包名]
例如:adb shell am force-stop com.demo.myapplication
10. 抓取日志
格式:adb logcat -v time >.\\[文件名称]
例如:adb logcat -v time >.\\logcat.log
-v time 可以附带上时间
结束抓取:Ctrl+c 可结束日志抓取
11. 点亮/熄灭屏幕
// 26代表电源键
adb shell input keyevent 26
12. 开启指定应用
格式:adb shell am start -n [应用包名/应用Launch的activity全路径]
例如:adb shell am start -n com.demo.myapplication/com.demo.myapplication.ui.MainActivity (若提示Permission Dnial则不可用)
13.获取当前正在运行的窗口
adb shell dumpsys window | findstr mCurrentFocus
注:无论是否root,先adb shell,再运行dumpsys window | findstr mCurrentFoucus,都会提示写入失败
14.获取CPU运行信息命令
// cpu信息查看(top是一个文件,system/bin/top)
adb shell top
15. 修改屏幕分辨率
adb shell dumpsys window displays
adb shell wm size // 更为简洁
adb shell wm size 1920x1080
15. 修改屏幕显示大小
查看原始设备密度:adb shell wm density
修改设备密度:adb shell wm density xxx(新设置的值)
例如:adb shell wm density 360
17.查看文件
adb shell:$
($)run-as com.demo.myapplication (run-as:以root身份运行命令,在未root的情况下查看某个(debug模式)的应用内部信息(沙盒文件夹))
($)ls
($)cd shared_prefs
($)cat config.xml
18.查看危险权限
adb shell pm list permissions -d -g
19.获取当前应用占用内存
格式:adb shell dumpsys meminfo [包名]
例子:adb shell dumpsys meminfo com.demo.myapplication
20.获取CPU占用
adb shell:$
($)ps (查看pid ppid)
or
($)ps |grep com.demo.myapplication (或者使用这个命令直接查看应用pid)
($)cat /proc/stat (获取totalCpu时间片段)
($)cat /proc/1856/stat (获取pid=1856的CPU信息)
21. 查看应用内存情况
- 关心
othermap
的大小
adb shell
(#) dumpsys meminfo + 包名
例如:(#)dumpsys meminfo com.demo.myapplication
- 关心
sharemem
(共享内存)
adb shell free -h
打开需要查看的应用(比如截屏)
adb shell free -h
对比shared,可以估算共享内存涨幅大小
注:该命令支持adb shell后的linux环境
- 与2查看的目标一致,也是查看
shmem
(共享内存)
adb shell procrank
打开需要查看的应用(比如截屏)
adb shell procrank
计算前后的shmem值,大致与第2中方法一致