前言
继上一篇关于AOSP系统编译,这篇文章分享一下如何修改与调试Android 13源码。
【Android】Ubuntu20.04编译Android 13并用模拟器运行
需要使用Google全新的IDE—Andriod Studio For Platorm(简称ASFP).
本文介绍:
如何使用ASFP导入Android系统源码
使用ASFP断点调试Activity
修改Launcher App实现去掉谷歌搜索框
修改Setings App实现显示自定义设备名称
因为要使用图形界面的Linux系统,最好安装带桌面的Ubuntu。
笔者原创,转载请注明出处:https://blog.csdn.net/devnn/article/details/140725388
使用ASFP导入Android系统源码
先下载ASFP,并导入下载好的Andriod系统源码:
Repo checkout: 源码根目录
lunch target: 启动目标,枚举值
Module paths: 要导入的模块
Project name: 工程名称自定义
Location: 工程位置自定义
本次使用的目标是sdk_phone_x86_64-userdebug
导入后的结构如下,可以编辑asfp-config.json再次修改。
使用ASFP调试Android系统源码
例如,调试Activity的onCreate代码,先打上断点,点击调试按钮,选择调试的进程,比如选择com.android.settings,当打开设置页时断点就会生效。如果有修改Activity代码,需要编译运行再断点。
修改Launcher App实现去掉谷歌搜索框
由于Launcher App在国内是用不到谷歌搜索框,因此需要隐藏。隐藏很简单,经过笔者对这个搜索框代码逻辑的梳理,按照以下路径注释掉添加View的代码即可:
LauncherRootVIew->Workspace->QsbContainerView->QsbFragment->onCreateView函数->注释mWrapper.addView(createQsb(mWrapper))
然后使用mm
或者mmm
命令重新编译Launcher3
这个模块。
m命令用来编译整个系统,mm用来编译当前目录下的模块(先cd到模块根目录),mmm用来编译指定目录下的模块(后面指定模块根目录)
运行模拟器即可看到桌面已经没有了谷歌搜索框:
修改Setings App实现显示自定义设备名称
笔者通过断点调试 ,找到了显示设备名称的代码位置:
DeviceNamePreferenceController.java -> initializeDeviceName()
如下图,为了测试效果,笔者将设备名称通过硬编码修改为笔者的博客地址: blog.csdn.net/devnn
笔者原创,转载请注明出处:https://blog.csdn.net/devnn/article/details/140725388
同样使用mm
或者mmm
命令编译setting模块。
修改后的效果如下,可以看到设备名称已经变成了:blog.csdn.net/devnn
关于Android系统编译与调试就介绍到这了。