初遇安卓遇到的名词

Posted by persuez on August 30, 2019

异常分类

  1. JE : application 和 framework 层
  2. NE : native 层
  3. KE : kernel 层
  4. EE : Externel (moderm) exception, 和 moderm 有关
  5. AEE[1] : MTK 侦测 Android 手机系统异常重启的一套系统机制
  6. SWT[2] : 主要用来监控SystemServer等重要线程/Service 的运行情况。如果发现其阻塞超过 60s ,看门狗进程就会把系统重启,进而保证系统可以恢复到正常状态。
  7. ANR[3] : Application Not Responding, 是为了在 app 卡死时,用户可以强制退出APP的选择,从而避免卡机无响应问题,这是Android 系统的一种自我保护机制。

编译模式[4]

安卓有三种编译模式: enguseruserdebug。目前发现三种模式的区别主要是

MTK 的资料

Debug/LOG 方面,原则上 user 版本只能抓到有限的资讯,eng 可以抓到更多的资讯,Debug 能力更强,推崇使用 eng 版本开发测试。因 user/eng 版本设置ro.secure不同,导致 user 版本 adb 只拥有 shell 权限,而 eng 版本具有 root 权限。性能方面,原则上进行性能测试请使用 user 版本测试。

如何确认 user/eng 版本

  • Java 层,check android.os.Build 类中的TYPE 值
  • native 层,property_get(“ro.build.type”, char* value, “eng”); 然后check value 值
  • Debug 时, adb shell getprop ro.build.type 返回值如果是user 即user 版本,eng 即eng 版本
  • Log 确认, mobile log/Aplog_xxxxx/versions 中查看ro.build.type 属性

Android 的 AP 和 BP

参考资料

  1. MTK aee
  2. SWT
  3. ANR
  4. 编译模式