最近在做一个项目(学校的),主要是优化安卓在 non-valatile memory 下的性能。两个教授一致认为先写个 profiler 出来比较好,分析下主流 app 的内存访问状态。需求大概就是 objects allocation/deallocation 和 memory read/write。我是属于从来没用过安卓、从来没做过安卓开发的这么一个背景。目前的安卓选择的是 AOSP 8.1.0_r52,在 Nexus6P 上调试。
目前的计划是魔改安卓的 runtime,就是 instrument JIT/AOT/interpreter。读了几个星期的代码了,也尝试过很多方案,但是从打出的 log 来看这个 instrumentation 很不完整,主要原因应该是还不够了解安卓的运行时状态,JIT/AOT/interpreter 似乎都在运行,代码跑着跑着就不知道跑到哪里去了。
另外现在也没有一个趁手的 debugger,不清楚怎么才能 debug 安卓的源代码。很不清楚安卓系统内部的状态。
退一万步来说,如果可以把 JIT/AOT 全都关掉,只用解释执行的话,也能得出些有用的信息,似乎有相关的 system properties 可以开关这个,但是也找不到具体怎么去设置。
各位大佬有什么相关的建议嘛?