目錄
效果展示
這里我添加了一行打印桨昙,然后點(diǎn)擊模擬器中的應(yīng)用,都會(huì)打印我添加的信息
實(shí)現(xiàn)步驟
1.編譯Android源碼
編譯Android源碼可以參考這篇文章:https://blog.csdn.net/learnframework/article/details/107887594
2.修改Framework Activity源碼
我們在Android源碼根目錄,使用如下命令配置生成可以讓Android Studio打開的項(xiàng)目
執(zhí)行以下四條命令:
1.“. build/envsetup.sh” (source可以用 .代替,即". build/envsetup.sh")
2.“l(fā)unch”,并選擇要編譯的項(xiàng)目
3.“make idegen -j4” (這里的 -j4表示用 4線程來編譯,可以不加)
4.“development/tools/idegen/idegen.sh” (報(bào)錯(cuò)find: ‘out/target/product/generic_x86_64/root/d’: Permission denied沒有關(guān)系不影響ipr和iml文件生成)
然后我們就可以使用Android Studio打開項(xiàng)目了
接下來我們找到framework下的Activity代碼
在onCreate方法中插入如下代碼(注意盡量不要導(dǎo)包抚笔,編寫完整的類名)
android.util.Log.i("itfitness", "Activity is onCreate");
3.編譯修改后的代碼
由于之前已經(jīng)完整編譯過一次了,這次不需要完整編譯了侨拦,只需要編譯framework即可殊橙,以此執(zhí)行以下命令
make framework ANDROID_COMPILE_WITH_JACK=false
make systemimage ANDROID_COMPILE_WITH_JACK=false
emulator
模擬器啟動(dòng)后,點(diǎn)擊模擬器上的應(yīng)用,可以觀察logcat的打印信息膨蛮,如果出現(xiàn)了自己添加的信息叠纹,說明修改成功了