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"打開項目便可。

相關文章
相關標籤/搜索