在这里咱们默认你们已经下载好了Android系统的源代码,关于如何下载,网上有不少详尽的教程,我这里就再也不过多的赘述,不会的同窗能够自行百度。android
使用Android Studio导入系统源代码须要对代码进行必定的编译操做,若是有些同窗使用的是Windows系统,能够尝试在Cygwin下进行编译,或者将在Linux下编译生成的三个产物拷贝到Windows的源代码根目录下,也能够起到同样的效果。markdown
这里须要执行如下四条命令:ionic
"source build/envsetup.sh" (source能够用 . 代替,即". build/envsetup.sh")编辑器
"lunch",并选择要编译的项目。ide
"make idegen -j4" (这里的 -j4 表示用4线程来编译,能够不加)性能
"sudo development/tools/idegen/idegen.sh"ui
下面进行分步讲解:google
进入系统源码的根目录(便可以看到frameworks、kernel等等文件夹的那一级目录),执行". build/envsetup.sh"命令url
继续执行"lunch"命令,并选择你想要编译的那个项目.个人系统是FireFly Rk3399开发版提供的系统,可编译的比较多。spa
选择9,编译rk3399_firefly-userdebug
3. 前面两步是对编译环境进行配置,接下来执行"make idegen -j4"
完成以上四个步骤以后,会发如今源码根目录下出现了三个新的文件(也有多是两个)
android.iml (记录项目所包含的module、依赖关系、SDK版本等等,相似一个XML文件)
android.ipr (工程的具体配置,代码以及依赖的lib等信息,相似于Visual Studio的sln文件)
android.iws (主要包含一些我的的配置信息,也有可能在执行上述操做后没有生成,这个不要紧,在打开过一次项目以后就会自动生成了)
"android.iml"和"android.ipr"通常是"只读"的属性,咱们这里建议你们,把这两个文件改为可读可写,不然,在更改一些项目配置的时候可能会出现没法保存的状况,执行以下两条命令便可。
sudo chmod 777 android.iml
sudo chmod 777 android.ipr
复制代码
若是你的电脑性能足够好(内存大于16G,代码下载在SSD上),那么能够直接打开Android Studio,点击"Open an existing Android Studio project"选项,找到并选中刚刚生成的"android.ipr"文件,点击OK,就能够开始导入项目了。 第一次导入,这个过程可能会持续好久,几十分钟或者超过一个小时。不过成功以后,之后再打开项目就会快不少了。
若是电脑性能通常的话,我建议,能够在导入项目前,手动对"android.iml"文件进行一下修改,可使咱们导入的时间尽量的缩短一些。
首先,要保证"android.iml"文件已经添加了"可写入"的属性(上文中已经介绍了如何修改文件属性)。
接下来,使用文本编辑器打开"android.iml"文件,并执行如下修改(仅表明个人我的习惯,也能够根据同窗们的喜爱本身调整):
......
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="inheritedJdk" />
<orderEntryProperties />
</component>
</module>
复制代码
等项目加载完成后,咱们还能够经过Android Studio对Exclude的Module进行调整,因此也不用惧怕这里Exclude掉了有用的代码,或少Exclude了一部分代码,在项目加载完之后再进行调整就好了。
如下是个人配置,你们能够参考(因为我比较关注Framework以及Telephony相关的代码,因此重点保留了这两部分,而其余一些如kernel、bootloader的代码,我就Exclude掉了,同窗们也能够根据本身的需求来进行修改)。
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<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$/compatibility" />
<excludeFolder url="file://$MODULE_DIR$/dalvik" />
<excludeFolder url="file://$MODULE_DIR$/developers" />
<excludeFolder url="file://$MODULE_DIR$/developers/samples" />
<excludeFolder url="file://$MODULE_DIR$/development" />
<excludeFolder url="file://$MODULE_DIR$/device/google" />
<excludeFolder url="file://$MODULE_DIR$/device/sample" />
<excludeFolder url="file://$MODULE_DIR$/docs" />
<excludeFolder url="file://$MODULE_DIR$/external" />
<excludeFolder url="file://$MODULE_DIR$/flashing-files" />
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs" />
<excludeFolder url="file://$MODULE_DIR$/kernel" />
<excludeFolder url="file://$MODULE_DIR$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/platform_testing" />
<excludeFolder url="file://$MODULE_DIR$/prebuilt" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/shortcut-fe" />
<excludeFolder url="file://$MODULE_DIR$/test" />
<excludeFolder url="file://$MODULE_DIR$/toolchain" />
<excludeFolder url="file://$MODULE_DIR$/tools" />
复制代码
完成以后,按照上面说的步骤,使用Android Studio选中"android.ipr"打开项目便可。