Android源碼導入AndroidStudio或IntelliJ?IDEA的方法
一、前言
經(jīng)常和Android系統(tǒng)源代碼(AOSP)打交道的人,如果要去修改系統(tǒng)源碼,顯然用SourceInsight、Notepad++、vim這些工具有些麻煩,并且想快速補全代碼也做不到。
我們可以用idegen來生成針對AndroidStudio或IntelliJ IDEA的Android系統(tǒng)源代碼工程配置文件,它位于Android系統(tǒng)源代碼工程目錄的下列位置:
development/tools/idegen
├── Android.bp
├── excluded-paths
├── idegen.iml
├── idegen.ipr
├── idegen.sh
├── index-gen.sh
├── intellij-gen.sh
├── README
├── src
│ ├── com
│ │ └── android
│ │ └── idegen
│ │ ├── DirectorySearch.java
│ │ ├── FrameworkModule.java
│ │ ├── IntellijProject.java
│ │ ├── MakeFileParser.java
│ │ ├── ModuleCache.java
│ │ ├── ModuleIndexes.java
│ │ └── Module.java
│ ├── Configuration.java
│ ├── Eclipse.java
│ ├── Excludes.java
│ ├── Files.java
│ ├── IntelliJ.java
│ ├── Log.java
│ ├── Main.java
│ └── Stopwatch.java
└── templates
├── android.iml
├── android.ipr
├── idea
│ ├── compiler.xml
│ ├── copyright
│ │ ├── Apache_2.xml
│ │ └── profiles_settings.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── vcs.xml
└── module-template.iml
7 directories, 32 files
二、idegen使用方法
我們以Android10.0.0_r2為例。
1. 全編AOSP
下載完源碼后,首先要編譯一遍源碼。
在AOSP源碼根目錄執(zhí)行下面的命令:
source build/envsetup.sh lunch aosp_arm-eng make -j32
注意:源碼下載請參照《AOSP源碼下載》
2. 編譯生成idegen.jar
在AOSP源碼根目錄執(zhí)行下面的命令:
mmma development/tools/idegen/
編譯完成后,將會生成idegen.jar文件,文件的具體位置:out/host/linux-x86/framework/idegen.jar
3. 生成IDE配置文件
在AOSP源碼根目錄執(zhí)行下面的命令:
source development/tools/idegen/idegen.sh
腳本執(zhí)行完成后,編譯目錄下會生成三個文件,編譯目錄如下:
Android_10_0_0_r2 ├── Android.bp -> build/soong/root.bp ├── android.iml ├── android.ipr ├── art ├── bionic ├── bootable ├── bootstrap.bash -> build/soong/bootstrap.bash ├── build ├── .classpath ├── cts ├── dalvik ├── developers ├── development ├── device ├── external ├── frameworks ├── hardware ├── kernel ├── libcore ├── libnativehelper ├── Makefile ├── out ├── packages ├── pdk ├── platform_testing ├── prebuilts ├── sdk ├── system ├── test ├── toolchain └── tools 25 directories, 6 file
其中:
# 用于AndroidStudio或IntelliJ IDEA的項目配置文件 android.ipr android.iml # 用于Eclipse的項目配置文件 .classpath
4. 將工程導入到IDE
如果使用AndroidStudio或IntelliJ IDEA,選擇剛才生成的android.ipr文件即可。


整個導入的時間根據(jù)電腦性能的差異而不同。
到此這篇關(guān)于Android源碼導入AndroidStudio或IntelliJ IDEA的文章就介紹到這了,更多相關(guān)Android源碼導入AndroidStudio內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Androd自定義對話框Dialog視圖及參數(shù)傳遞的實現(xiàn)方法
這篇文章主要介紹了Androd自定義對話框Dialog視圖及參數(shù)傳遞的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-01-01
Android實現(xiàn)可點擊的幸運大轉(zhuǎn)盤
這篇文章主要為大家詳細介紹了Android實現(xiàn)可點擊的幸運大轉(zhuǎn)盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
Android編程學習之抽象類AbsListView用法實例分析
這篇文章主要介紹了Android編程學習之抽象類AbsListView用法,較為詳細的分析了抽象類AbsListView的功能、結(jié)構(gòu)、定義及使用注意事項等,需要的朋友可以參考下2015-10-10
Android 四種動畫效果的調(diào)用實現(xiàn)代碼
在這里, 我將每種動畫分別應用于四個按鈕為例,需要的朋友可以參考下2013-01-01
Android自定義引導玩轉(zhuǎn)ViewPager的方法詳解
這篇文章主要給大家介紹了關(guān)于Android自定義引導玩轉(zhuǎn)ViewPager的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-06-06
ReactNative (API)AsyncStorage存儲詳解及實例
這篇文章主要介紹了ReactNative (API)AsyncStorage存儲詳解及實例的相關(guān)資料,需要的朋友可以參考下2016-10-10
Ubuntu中為Android增加硬件抽象層(HAL)模塊訪問Linux內(nèi)核驅(qū)動程序
本文主要介紹在Ubuntu上為Android HAL模塊訪問Linux內(nèi)核驅(qū)動程序,這里給大家提供方法和一個小的測試程序代碼,以及常遇到的問題和解決方法,有需要的小伙伴可以參考下2016-08-08
Android中實現(xiàn)多行、水平滾動的分頁的Gridview實例源碼
如果單行水平滾動,可以用Horizontalscrollview實現(xiàn)。如果是多行水平滾動,則結(jié)合Gridview(一般是垂直滾動的)和Horizontalscrollview實現(xiàn)2013-06-06

