Bootstrap

Android调试经验总结

问题一:

机器设置第三方默认输入法后,返回到桌面后,输入法会变为默认输入法。 (定制的机器,集成了一些第三方应用)

分析:从现象和log上看设置的第三方输入法被kill掉了。本地直接在设置--输入法设置界面中用命令kill 进程时有类似的kill log打印出来,但现象却不一致。最开始以为是自己的分析思路有问题。后来查看了kill输入法的进程,以及InputMethodService 发现就是预置的第三方应用杀死了第三方输入法引起。 看了有时进程被杀,不能完全用命令来模拟啊。

 

问题二:

调试时,persist.sys.timezone设置时区后,必须要恢复出厂设置才能生效。

 

问题三:

system/core/init/property_service.cpp  这个文件说明了会加载哪些prop文件。但8.1上不会读取/system/default.prop

问题四:adb shell  下一些有用命令

Android 8.0上恢复出厂设置可使用adb命令:am broadcast -a android.intent.action.FACTORY_RESET -f 0x01000000  ,不能使用 adb shell am broadcast -a android.intent.action.FACTORY_RESET -f 0x01000000  

adb shell input keyevent 26 可以模拟电源键,adb shell input keyevent HOME 可模拟发送HOME键

settings get/put system/secure/global XXXX  能用来往设置里面写值。

am start -n com.android.settings/.Settings 可用于直接启动设置,其他依次类推。

logcat 时出现read: unexpected EOF!,可先执行下logcat -G 20m

全开内核log:echo 8 > /proc/sys/kernel/printk,  0为关闭。

抓取内核log:抓取内核log: adb shell cat /proc/kmsg > E:\kernel.txt

问题五:

android 8.0上挂载system  vendor分区可分别使用
adb shell mount -o rw,remount /system
adb shell mount -o rw,remount /vendor

问题六:

RecoverySystem.installPackage 系统升级方法

android 8.0升级时的文件路径如果在/sdcard 目录下,需要改成/data/media/0 开头才行。不然会报文件找不到的错误。

 

问题七:

user版本能直接通过zip包升级到debug版本。

问题八:

android8.0上adb shell 设置时间的方法:

date 123012002018.59 set

date 月日小时分钟年.秒 set

参考:https://blog.csdn.net/q1075355798/article/details/84660423

 

问题九:

涉及开机或多线程问题时,一定要注意时序问题。

 

问题十:

settings get global boot_count 可读取开机次数。

 

问题十一:

查看剩下可用内存时用adb shell cat /proc/meminfo 计算MemFree + buffer +cached 比较好。

 

问题十二:

Android P 默认授予应用运行时权限和安装权限

 

 

;