0. 序言
这里总结下日常开发经常使用的终端命令,小伙伴觉得需要可以挑选保存到本地文档,以便使用。
目录列表如下:
- 重启相关
1.1 重启手机
1.2 重启framework
1.3 重启(fastboot mode) - 替换相关
2.1 替换系统应用
2.2 替换手机services.jar
2.3 替换手机framework - 查看页面相关
3.1 查看当前应用栈顶Activity
3.2 通过action打开对应的页面activity - 查看后台运行相关
4.1 查看手机运行的jobscheduler
4.2 查看手机每个进程的内存信息
4.3 查看某个进程详细的内存信息
4.4 查看端口占用 - 查看手机信息相关
5.1 查看手机系统版本分类
5.2 查看应用的hprof信息
5.3 查看手机里面拥有的sepolicy权限
5.4 查看如何声明sepolicy权限 - 编译相关
6.1 编译相关模块 - 删除相关
7.1 删除文件夹或文件
7.2 删除指定进程 - 查找相关
8.1 查询某个文件的位置
8.2 查询字段位置
8.3 过滤某个条件 - 刷机相关
- 复制相关
- 发送相关
11.1 发送广播
1. 重启相关
- 重启手机
adb reboot
- 重启framework
adb stop && adb start
当调试framework的时候不用重启手机,只重启framework,节省时间。
- 重启(fastboot mode)
fastboot reboot
2. 替换相关
- 替换系统应用
adb push out/target/product/ocean/system/app/TestApp system/app
- 替换手机services.jar
adb push out/target/product/ocean/system/framework/services.jar system/framework/
- 替换手机framework
adb push out/target/product/ocean/system/framework/ /system/
3. 查看页面相关
- 查看当前应用栈顶Activity
adb shell dumpsys activity top | grep "ACTIVITY" -A 0
- 通过action打开对应的页面activity
adb shell am start -a android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS
如果你想知道这个activity对应的是哪个页面,可以使用此命令
4. 查看后台运行相关
- 查看手机运行的jobscheduler
adb shell dumpsys jobscheduler |grep "JOB #"
如果你想查看自己开发的应用的jobscheduler在当前手机上是否有效,可以使用这个命令。当然手机因为私人订制的原因,jobscheduler可能生效也可能不生效。
- 查看手机每个进程的内存信息
adb shell dumpsys meminfo
- 查看某个进程详细的内存信息
adb shell dumpsys meminfo + 包名/pid
- 查看端口占用
lsof -i:5000
- 调用AMS的code方法
adb shell service call activity +code
5. 查看手机信息相关
- 查看手机系统版本分类
adb shell getprop ro.build.type
区分手机是userdebug,还是user,还是userroot
- 查看应用的hprof信息
adb shell am dumpheap +pid /data/local/tmp/dumpheap.hprof
17495是应用的pid
- 查看手机里面拥有的sepolicy权限
/vendor/etc/selinux # busybox vi nonplat_sepolicy.cil
- 查看如何声明sepolicy权限
07-08 14:34:21.515 5552 5552 W sh : type=1400 audit(0.0:471): avc: denied { execute_no_trans } for path="/system/bin/dumpsys" dev="mmcblk0p49" ino=802 scontext=u:r:system_server:s0 tcontext=u:object_r:system_file:s0 tclass=file permissive=0
以上信息存放到一个文件中,命名为avc.log,然后执行audit2allow -i avc.log即可
============= platform_app ==============
allow platform_app hprof_data_file:dir write;
6. 编译相关
- 编译相关模块
source build/envsetup.sh
lunch
userdebug
make framework -j4或者make services -j4或者make TestApp -j4
7. 删除相关
- 删除文件夹或文件
rm -rf Test
- 删除指定进程
kill -9 2407
8. 查找相关
- 查询某个文件的位置
find ./ -name TestFile.java
- 查询字段位置
grep SearchProvider . -rnw
- 过滤某个条件
adb logcat | grep 708
grep haha -rnw
-r 递归查找
-n 在显示符合范本样式的那一列之前,标示出该列的列数编号
-w 匹配整个单词
9. 刷机相关
chmod +x * -R
adb root
adb remount
adb reboot edl
sudo ./edl-flash.sh
10. 赋值新仓库
repo start test --all
为Android系统下的每个git仓库都创建一个新的分支为test,repo start 相当于 git checkout -b 。
11. 发送广播
adb shell am broadcast -a com.fkq.examaple.TEST_MSG --es data "{"packageName":"com.fkq.example","size":"1000"}"
12. 后续
如果大家喜欢这篇文章,欢迎点赞!
如果想看更多 linux操作 方面的文章,欢迎关注!