目錄

效果展示
這里我添加了一行打印,然后點(diǎn)擊模擬器中的應(yīng)用,都會(huì)打印我添加的信息

實(shí)現(xiàn)步驟
1.編譯Android源碼
編譯Android源碼可以參考這篇文章:https://blog.csdn.net/learnframework/article/details/107887594
2.修改Framework Activity源碼
我們?cè)贏ndroid源碼根目錄,使用如下命令配置生成可以讓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線程來(lái)編譯,可以不加)
4.“development/tools/idegen/idegen.sh” (報(bào)錯(cuò)find: ‘out/target/product/generic_x86_64/root/d’: Permission denied沒(méi)有關(guān)系不影響ipr和iml文件生成)
然后我們就可以使用Android Studio打開項(xiàng)目了

接下來(lái)我們找到framework下的Activity代碼

在onCreate方法中插入如下代碼(注意盡量不要導(dǎo)包,編寫完整的類名)
android.util.Log.i("itfitness", "Activity is onCreate");
3.編譯修改后的代碼
由于之前已經(jīng)完整編譯過(guò)一次了,這次不需要完整編譯了,只需要編譯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)了自己添加的信息,說(shuō)明修改成功了
