研究aapt2代码逻辑,以及android AssetManager,对于aapt2的逻辑有些地方不是非常明确,希望通过调试的方式更清晰的了解代码执行逻辑
1 编译安卓源码 这个就不说了
2 找到带调试符号的aapt2’
源码目录执行
find . name aapt2
./out/host/linux-x86/obj/EXECUTABLES/aapt2_intermediates/aapt2 这个目录就是带调试符号的aapt2
gdb ./out/host/linux-x86/obj/EXECUTABLES/aapt2_intermediates/aapt2
进行调试
这时候你会发现,有些变量被优化了 print不出来值,可以修改编译参数,让c++编译器不去优化。
在./fameworks/base/tools/aapt2/Android.mk添加如下代码
203 行
LOCAL_CPPFLAGS += -O0
make aapt2
就生成了可以正常调试的aapt2 好好研究吧