1. 抓取linux内核启动的完整信息
需要增大缓冲区大小,目前默认为128KB,参考链接:点击打开链接
2.Android内核开发:学会分析系统的启动log点击打开链接
3.将init进程的详细log输出到dmesg文件中
修改/system/core/rootdir/init.rc,把loglevel从3改为7
4. framework的调试
4.1 比如修改frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java
对应SystemUI.apk,可调用Log.i, Log.d ,Log.e增加打印信息,进入frameworks\base\packages\SystemUI目录下mm生成新的apk在out目录下的system\priv-app\SystemUI下,然后push到系统对应的目录下,重启即可。
5.音频调试可以用tinymix命令,参考链接点击打开链接
6.msm8937_camera.xml替换和修改
7.查看CPU占用adb shell top -d 1 -s cpu |findstr com.golive.cinema
8.查看具体apk占用adb shell dumpsys cpuinfo|findstr com.golive.cinema
9.内存adb shell dumpsys meminfo
更合适的方法cat /proc/meminfo
adb shell "cat /proc/meminfo" E:\debug\meminfo.txt,看MemAvailable的内容,比如我的
MemTotal: 1921372 kB
MemFree: 318416 kB
MemAvailable: 1125424 kB
各项的具体含义见
kernel\msm-3.18\Documentation\filesystems\proc.txt
10. logcat > /data/log.txt &可以在后台打印出log 到log.txt中去,就算拔出USB线也没关系
如果要打印的log再加上系统时间的话该怎么办呢?logcat -v time > log.txt&
11.获取APP UID
(1) 系统刚启动的时候,会对每个app分配一个uid,
最简单的获取方式就是通过adb ,不过限于eng或userdebug版
adb pull data/system/packages.list d:\
参考点击打开链接
(2) 通过PS命令获取
在adb shell敲入ps,得到运行的进程的列表,如下一个小截屏:
u0_a开头的都是Android的应用进程,Android的应用的UID是从10000开始,到19999结束,可以在Process.java中查看到(FIRST_APPLICATION_UID和LAST_APPLICATION_UID),u0_a后面的数字就是该应用的UID值减去FIRST_APPLICATION_UID所得的值,所以,对于com.android.systemui,它的user是u0_a12,按前面的规制,它的UID就是12 + FIRST_APPLICATION_UID = 10012。
参考点击打开链接
12. 涉及SEAndroid权限问题,程序创建目录的时候有权限问题系统会打印出avc的log,根据log来配置
13.打开和关闭飞行模式
//开启飞行模式
settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
//关闭飞行模式
settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
14.echo “7 7 1 7” > /proc/sys/kernel/printk
15.cat 重定向到你的cache下
cat init.rc > /cache/1.txt
16 升级包的update-binary和updater-script
刚开始来之out目录下的ota.zip包,其中update-binary源代码位于bootable\recovery\updater下。可通过mmma bootable/recovery/updater的方式编译,但此编译方式和整个编译make -j32方式生成的updater路径和大小不一样
(1) mmma bootable/recovery/updater
编译生成为out\target\product\msm8937_64\system\bin\updater下,大小为1189KB
(2) make -j32
编译生成为out\target\product\msm8937_64\symbols\system\bin\updater,大小为12075KB
将updater重命名为update-binary即可。
17.查看经常是否在运行
比如ps | grep memdetector
18.file_contexts.bin 和 file_contexts互转,支持到android8.来自于点击打开链接
file_contexts.bin 转换成 file_contexts,命令如下:
./sefcontext -o file_contexts file_contexts.bin sefcontext
file_contexts 转换成 file_contexts.bin,命令如下:
./sefcontext_compile -o file_contexts.bin file_contexts sefcontext_compile
19.Android ART模式,不重新烧录system.img的情况下如何修改framework和app
(1)编译
(2)连接手机
(3) croot && adb remount && adb sync system && adb reboot
第三步省去了重新烧版本的麻烦
20.adb for wifi
1. adb tcpip 12345
2. adb connect 10.10.167.252:12345
#ip:端口