1.Android Studio 开启前配置:
**调整内存大小: ** Android Studio需要大量的内存来加载Android源码,所以经常会遇到内存不足的问题, 需要加大内存.
1.点击Help ->?Edit Custom VM Options , 比如 “-Xms4096m -Xmx4096m”
2. 修改android-studio/bin/studio.vmoptions studio64.vmoptions 两个文件的以下属性就可以了
-Xms2048m
-Xmx2048m
-XX:MaxPermSize=2048m
-XX:ReservedCodeCacheSize=1024m
1.2 下载Android系统源码
1.2.1 安装repo
mkdir ~/bin PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
1.2.2 初始化repo
mkdir ~/aosp //创建目录,可自己定义
cd ~/aosp
git config --global user.name "Gityuan" //配置git的用户名
git config --global user.email "gityuan@google.com" //配置git的邮箱
1.2.3 下载原生Android源码
如下第一条是下载master分支代码;如果需要下载某条指定分支,可通过第二条命令,比如指定分支android-7.0.0_r1, 其他分支信息可查看https://source.android.com/source/build-numbers.html#source-code-tags-and-builds.
repo init -u https://android.googlesource.com/platform/manifest
repo init -u https://android.googlesource.com/platform/manifest -b android-7.0.0_r1
初始完成后,可以开始同步代码,其中如下第一条是同步所有可用的project,第二条只同步当前初始化的分支,第三条是只同步frameworks/base库。
repo sync
repo sync -c -j4
repo sync platform/frameworks/base -c -j4
1.2.4 编译Android源码
以build aosp的eng版本为例:(当然build前需要先配置jdk环境)
make clobber //删除所有先去build所产生的output文件
source build/envsetup.sh //创建环境变量
lunch aosp_arm-eng //选择build target
make -j4 //build源码
二. 搭建源码环境
2.1 生成IDE相关文件
idegen专门为IDE环境调试源码而设计的工具, 依次执行如下命令:
soruce build/envsetup.sh
mmm development/tools/idegen/
development/tools/idegen/idegen.sh
以上3个步骤的含义依次如下:
Step 1: 用于初始化环境变量
Step 2: 生成文件out/host/linux-x86/framework/idegen.jar
Step 3: 源码根目录生成文件android.ipr(工程相关设置), android.iml(模块相关配置)
2.2 源码导入Android Studio
打开Android Studio, 点击File ?->?Open ,选中前面生成的android.ipr文件即可, 该过程较耗时
(a) 加载前配置文件提速:
排除不必要的模块,提高加载速度 打开android.iml , 找到excludeFolder 属性,我们可以看到默认有14个模块是被排除了,不会被导入的。整个AOSP代码中,一般情况下,我们只是关心framework 模块,因此可以根据自己的需求多去掉一些模块。 比如把下面这些加到上面那14行之下:
<excludeFolder url="file://$MODULE_DIR$/art"/>
<excludeFolder url="file://$MODULE_DIR$/bionic"/>
<excludeFolder url="file://$MODULE_DIR$/bootable"/>
<excludeFolder url="file://$MODULE_DIR$/build"/>
<excludeFolder url="file://$MODULE_DIR$/cts"/>
<excludeFolder url="file://$MODULE_DIR$/dalvik"/>
<excludeFolder url="file://$MODULE_DIR$/developers"/>
<excludeFolder url="file://$MODULE_DIR$/development"/>
<excludeFolder url="file://$MODULE_DIR$/device"/>
<excludeFolder url="file://$MODULE_DIR$/external"/>
<excludeFolder url="file://$MODULE_DIR$/hardware"/>
<excludeFolder url="file://$MODULE_DIR$/libcore"/>
<excludeFolder url="file://$MODULE_DIR$/libnativehelper"/>
<excludeFolder url="file://$MODULE_DIR$/ndk"/>
<excludeFolder url="file://$MODULE_DIR$/out"/>
<excludeFolder url="file://$MODULE_DIR$/pdk"/>
<excludeFolder url="file://$MODULE_DIR$/platform_testing"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilts"/>
<excludeFolder url="file://$MODULE_DIR$/sdk"/>
<excludeFolder url="file://$MODULE_DIR$/system"/>
<excludeFolder url="file://$MODULE_DIR$/tools"/>
<excludeFolder url="file://$MODULE_DIR$/kernel"/>
|