Android源碼目錄結構以下:html
|-- 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 (廠商定製代碼)java
咱們能夠發如今源碼根目錄有個development文件夾,裏面放了開發者須要的一些例程及工具,要將Android系統源碼導入Android studio就須要用到裏面的工具。android
首先導入系統源碼須要佔用大量的內存因此須要在Android studio安裝目錄下的bin文件夾中的studio64.exe.vmoptions或者studio.exe.vmoptions文件中中-Xms和-Xmx的值改大(根據電腦內存自行修改)。架構
接下來,執行Android系統代碼編譯環境相關初始化命令後,執行下面命令:app
mmm development/tools/idegen/
而後執行框架
development/tools/idegen/idegen.sh
等出現下面結果ionic
Read excludes: 13ms
Traversed tree: 143977ms
執行完後,會在源碼的根目錄下生成android.ipr和android.iml文件。使用Android studio打開android.ipr文件,就能夠導入系統源碼了。ide
因爲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