使用Android Studio 搭建AOSP FrameWork 源码阅读开发环境

概述

我们都知道Android的系统源码量非常之大,大致有frameworka层源码,硬件层(HAL)源码,内核层(Kernel)源码,之前了解到大佬看源码都是使用Source Insight,所以我也去学着使用Source Insight 看android的源码,但是作为一个六年的android应用开发来说,Android Studio的使用已经深入骨髓,再去联系使用Source Insight非常不适应。那能不能使用Android Studio去看源码呢?当然可以呀,只是需要我们加工一下源码而已,做Android的AOSP开发推荐使用Ubantu系统,编译源码方便。本文就是介绍如何加工源码,然后使用Android Studio打开我们加工好的源码,并能在源码中通过点击方法名,类名等跳转到指定的定义。

安装Android Studio

首先我们需要安装Android Studio,这里是指在Ubantu的环境中安装Android Studio,前面的文章中介绍过通过安装Toolbox去获取安装Android Studio,安装完后我们需要安装好对应的Android SDK,然后需要记住我们的Android Studio的安装位置后面用得上 Toolbox的界面如下所示:

编译源码

当我们下载好源码后可以对源码进行一次整体编译,源码下载和编译的方法可以在网上找,特别多,这里就不赘述佬,编译成功后就可以开始制作对应的索引文件了,这里可以用两种方式来,一种是代码编译通过后,通过命令生成ipr索引文件,然后再使用Android Studio打开,这种方式很适合我们使用移动硬盘将源码拷贝,然后在其他的机器上阅读源码,第二种方式是直接通过命令编译完源码后直接打开Android Studio,直接阅读源码,这里要求在本机中安装Android Studio,并且源码只能使用本机的Android Studio打开,下面就介绍如何使用Android 打开导入源码。

使用Android Studio打开源码

制作ipr文件

首先在源码的根目录下执行分别执行下面的命令

powershell 复制代码
source build/envsetup.sh
powershell 复制代码
mmm development/tools/idegen/
powershell 复制代码
development/tools/idegen/idegen.sh

执行完上面的命令后会在源码的根目录下生成一个android.ipr文件,下图中红圈圈住的文件,我们使用Android Studio打开这个文件就行了,然后我们就能看到framework的源码了,对于Android的应用开发者和FrameWork开发者来说这里就够用了,当然,如果是HAL和内核的开发者还是老实使用Source insight吧。 注意:如果需要将源码拷贝到移动硬盘,需要注意不能只拷贝android.ipr文件,需要将整个源码目录都拷贝进去,因为android.ipr文件只是一个索引文件,只拷贝它是无法浏览源码滴

通过Android Studio找到ipr文件并打开

等进度条走完就能开心的阅读修改源码了

直接编译成功后自动打开Android Studio

这种方法比较简单也比较推荐,如果不打包源码带走的话,直接在源码的根路径运行下面的命令

powershell 复制代码
 aidegen -i s -p /home/zhongxj/android-studio

如果要只想打开某个模块,比如SystemUI,直接使用命令:

powershell 复制代码
 aidegen SystemUI -i s -p /home/zhongxj/android-studio

这个命令表示编译完整的依赖 -i s代表通过Android Studio打开依赖,-p表示Android Studio的路径,如果加 -s表示跳过编译依赖,这个命令执行完后就会自动打开Android Studio。 这里读者可能看到橙色的文件夹不太舒服,没关系咱们直接通过配置给去掉就好了,进入Project Structure 比如上图中我们要去掉system 的橙色标志,我们可以看到选中system文件夹后,在右上角有个Excluded的图标是选中的,我们点击一下他,就可以去掉这个橙色的图标了

再看system文件夹就是正常的颜色了,在Project Structure 还必须配置好SDK ,这里就不展示了,交给读者,就像开发应用的时候配置SDK一样就行。很简单

修改SystemUI验证开发环境

首先我们使用下面的命令编译SystemUI并且使用Android Studio打开

powershell 复制代码
 aidegen SystemUI -i s -p /home/zhongxj/android-studio

编译完打开Android Studio时可能会看到一堆爆红,如下所示 不要慌,我们添加配置就可以了,进入Project Structure ,找到Modules,在SystemUI上点击右键,在弹出的窗口中点击"+"号,点击Android,如下图所示,并且配置好SDK,如下图所示完成后就可以看到我们的XML布局文件不爆红了,而且还能预览了 这时我们修改下对应的布局文件,比如把系统状态栏背景改成红色,找到status_bar.xml,并将其颜色改成红色,如下图所示 然后编译SystemUI

powershell 复制代码
make SystemUI -j3

编译完成后会得到一个SystemUI.apk,这个APK的路径会在编译的日志中看到,如下图所示

得到APK后就可以找对应的手机或者模拟器,将SystemUI.apk推入手机替换掉原来的SystemUI.apk看效果,这里需要注意手机必须能够root,并且能够remount,这样才能替换SystemUI.apk,替换完后使用kill命令杀下SystemUI的进程就可以看手机上的状态栏变成了红色的背景

相关推荐
程序猿阿越9 天前
Kafka源码(六)消费者消费
java·后端·源码阅读
zh_xuan14 天前
Android android.util.LruCache源码阅读
android·源码阅读·lrucache
魏思凡17 天前
爆肝一万多字,我准备了寿司 kotlin 协程原理
kotlin·源码阅读
白鲸开源21 天前
一文掌握 Apache SeaTunnel 构建系统与分发基础架构
大数据·开源·源码阅读
Tans51 个月前
Androidx Fragment 源码阅读笔记(下)
android jetpack·源码阅读
Tans51 个月前
Androidx Fragment 源码阅读笔记(上)
android jetpack·源码阅读
Tans51 个月前
Androidx Lifecycle 源码阅读笔记
android·android jetpack·源码阅读
凡小烦1 个月前
LeakCanary源码解析
源码阅读·leakcanary
程序猿阿越2 个月前
Kafka源码(四)发送消息-服务端
java·后端·源码阅读
CYRUS_STUDIO2 个月前
Android 源码如何导入 Android Studio?踩坑与解决方案详解
android·android studio·源码阅读