Android 11源码 修改系统App后进行编译
目标: 修改系统App源码,然后编译生成apk。我们在系统日历App中增加一个日志输出,然后编译生成apk,并安装查看修改效果。
修改系统日历App源码
- 进入系统日历App目录
系统日历App源码在下载的Android 11源码下/packages/app/Calendar/
目录。Android11源码下载参考文章: Ubuntu 16.04下载编译Android11源码。
cd ~/aosp/packages/app/Calendar
-
用编辑软件打开Calendar目录
-
修改App源码
我们分别在Activity
的onCreate()
和onDestory()
回调函数中增加log日志信息输出
AllInOneActivity.java
文件修改如下:
// 省略其他代码
...
@override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
// 20210615:add by lxy
Log.i(TAG, "App onCreate(): add by lxy");
// 省略其他代码
...
}
// 省略其他代码
...
@override
protected void onDestroy() {
super.onDestroy();
// 20210615:add by lxy
Log.i(TAG, "App onDestroy(): add by lxy");
// 省略其他代码
...
}
编译修改后的App
因为只修改了日历App的源码,我们只用对该App重新编译即可,不用对整个源码进行编译。
- 执行环境编译:
cd ~/aosp
source build/envsetup.sh
- 进入到系统日历App目录:
cd ~/aosp/packages/app/Calendar
- 执行模块编译命令:
mm
- 编译后会生成apk文件,输出到
out/target/product/generic/system/product/app/Calendar/Calendar.apk
。
安装生成的apk到样机,并查看修改结果
- 使用命令安装apk:
cd ~/aosp/out/target/product/generic/system/product/app/Calendar
adb install -r Calendar.apk
- 命令行查看log日志信息:
adb shell logcat -s "AllInOneActivity"
- 启动日历App,我们看到命令行输出了我们添加的日志信息: