Android Studio导入Android系统源码

在这里咱们默认你们已经下载好了Android系统的源代码,关于如何下载,网上有不少详尽的教程,我这里就再也不过多的赘述,不会的同窗能够自行百度。android

使用Android Studio导入系统源代码须要对代码进行必定的编译操做,若是有些同窗使用的是Windows系统,能够尝试在Cygwin下进行编译,或者将在Linux下编译生成的三个产物拷贝到Windows的源代码根目录下,也能够起到同样的效果。markdown

这里须要执行如下四条命令:ionic

  1. "source build/envsetup.sh" (source能够用 . 代替,即". build/envsetup.sh")编辑器

  2. "lunch",并选择要编译的项目。ide

  3. "make idegen -j4" (这里的 -j4 表示用4线程来编译,能够不加)性能

  4. "sudo development/tools/idegen/idegen.sh"ui

下面进行分步讲解:google

  1. 进入系统源码的根目录(便可以看到frameworks、kernel等等文件夹的那一级目录),执行". build/envsetup.sh"命令url

  2. 继续执行"lunch"命令,并选择你想要编译的那个项目.个人系统是FireFly Rk3399开发版提供的系统,可编译的比较多。spa

选择9,编译rk3399_firefly-userdebug

3. 前面两步是对编译环境进行配置,接下来执行"make idegen -j4"

  1. 看到以上输出之后,执行"sudo development/tools/idegen/idegen.sh",并继续等待,这个过程可能比较长,不要着急

完成以上四个步骤以后,会发如今源码根目录下出现了三个新的文件(也有多是两个)

  1. android.iml (记录项目所包含的module、依赖关系、SDK版本等等,相似一个XML文件)

  2. android.ipr (工程的具体配置,代码以及依赖的lib等信息,相似于Visual Studio的sln文件)

  3. 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"文件,并执行如下修改(仅表明个人我的习惯,也能够根据同窗们的喜爱本身调整):

  1. 搜索关键字"orderEntry",我通常会将全部带有这个关键字的标签项所有删除,仅保留如下三行,大概以下
......

    </content>

    <orderEntry type="sourceFolder" forTests="false" />

    <orderEntry type="inheritedJdk" />

   <orderEntryProperties />

  </component>

</module>
复制代码
  1. 搜索”excludeFolder“关键字,对这里进行一些修改,将咱们不须要看的代码Exclude掉。经过这个步骤,能极大地提高第一次加载项目的速度。

​ 等项目加载完成后,咱们还能够经过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"打开项目便可。

相关文章
相关标签/搜索