將Android系統源碼導入Android studio的方法


Android源碼目錄結構如下:

|-- Makefile
|-- abi (applicationbinary interface,應用程序二進制接口,生成libgabi++.so相關庫文件)
|-- art (google在4.4后加入用來代替Dalvik的運行時)
|-- bionic (Android的C library,即C庫文件)
|-- bootable (啟動引導相關代碼)
|-- build (存放系統編譯規則及generic等基礎開發配置包)
|-- cts (Android兼容性測試套件標准)
|-- dalvik (dalvik JAVA虛擬機)
|-- developers (開發者用,存放幾個例子)
|-- development (開發者需要的一些例程及工具)
|-- device (設備相關代碼,這是各廠商需要配置和修改的代碼)
|-- docs (介紹開源相關文檔)
|-- external (android使用的一些開源的模組)
|-- frameworks (核心框架——java及C++語言)
|-- hardware (部分廠家開源的硬解適配層HAL代碼)
|-- kernel (驅動內核相關代碼)
|-- libcore (核心庫相關)
|-- libnativehelper (JNI用到的庫)
|-- ndk (ndk相關)
|-- out (編譯完成后的代碼輸出目錄)
|-- packages (應用程序包)
|-- pdk (google用來減少碎片化的東西)
|-- prebuilt (x86和arm架構下預編譯的一些資源)
|-- sdk (sdk及模擬器)
|-- tools (工具)
|-- system (底層文件系統庫、應用及組件——C語言)
|-- vendor (廠商定制代碼)

 

我們可以發現在源碼根目錄有個development文件夾,里面放了開發者需要的一些例程及工具,要將Android系統源碼導入Android studio就需要用到里面的工具。

 

首先導入系統源碼需要占用大量的內存所以需要在Android studio安裝目錄下的bin文件夾中的studio64.exe.vmoptions或者studio.exe.vmoptions文件中中-Xms和-Xmx的值改大(根據電腦內存自行修改)。

 

接下來,執行Android系統代碼編譯環境相關初始化命令后,執行下面命令:

mmm development/tools/idegen/

然后執行

development/tools/idegen/idegen.sh

等出現下面結果

Read excludes: 13ms
Traversed tree: 143977ms

執行完后,會在源碼的根目錄下生成android.ipr和android.iml文件。使用Android studio打開android.ipr文件,就可以導入系統源碼了。

由於Android系統源碼比較龐大,導入比較耗時,建議先修改android.iml排除一些代碼,語法如下:

<excludeFolder url="file://$MODULE_DIR$/.repo" />

 比如,我只關注framework中的源碼,我就可以把其他目錄排除(其他目錄只是以文件方式導入,其中的類之間不存在鏈接)。

<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<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$/docs" />
<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$/packages" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/prebuilt" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/system" />
<excludeFolder url="file://$MODULE_DIR$/tools" />

 

導入源碼后如何設置源碼依賴

首先刪除原來的依賴,只留下下圖紅框項

 

把SDKs中不必要的SDK項刪除,同時把Android API的classpath和sourcepath下的內容都刪掉

接着點擊加號的JARs or directories將你源碼的frameworks及external和你用到的其他跳轉目錄添加到依賴中,然后apply即可。

 

 

 

參考:

http://www.cnblogs.com/Lefter/p/4176991.html

http://www.jianshu.com/p/c2389cb35565

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM