做亞馬遜網(wǎng)站一般發(fā)什么快遞海外推廣解決方案
文章目錄
- 概述
- 安裝Android Studio
- 編譯源碼
- 使用Android Studio打開源碼
- 制作ipr文件
- 直接編譯成功后自動(dòng)打開Android Studio
- 修改SystemUI驗(yàn)證開發(fā)環(huán)境
概述
我們都知道Android的系統(tǒng)源碼量非常之大,大致有frameworka層源碼,硬件層(HAL)源碼,內(nèi)核層(Kernel)源碼,之前了解到大佬看源碼都是使用Source Insight,所以我也去學(xué)著使用Source Insight 看android的源碼,但是作為一個(gè)六年的android應(yīng)用開發(fā)來說,Android Studio的使用已經(jīng)深入骨髓,再去聯(lián)系使用Source Insight非常不適應(yīng)。那能不能使用Android Studio去看源碼呢?當(dāng)然可以呀,只是需要我們加工一下源碼而已,做Android的AOSP開發(fā)推薦使用Ubantu系統(tǒng),編譯源碼方便。本文就是介紹如何加工源碼,然后使用Android Studio打開我們加工好的源碼,并能在源碼中通過點(diǎn)擊方法名,類名等跳轉(zhuǎn)到指定的定義。
安裝Android Studio
首先我們需要安裝Android Studio,這里是指在Ubantu的環(huán)境中安裝Android Studio,前面的文章中介紹過通過安裝Toolbox去獲取安裝Android Studio,安裝完后我們需要安裝好對(duì)應(yīng)的Android SDK,然后需要記住我們的Android Studio的安裝位置后面用得上
Toolbox的界面如下所示:
編譯源碼
當(dāng)我們下載好源碼后可以對(duì)源碼進(jìn)行一次整體編譯,源碼下載和編譯的方法可以在網(wǎng)上找,特別多,這里就不贅述佬,編譯成功后就可以開始制作對(duì)應(yīng)的索引文件了,這里可以用兩種方式來,一種是代碼編譯通過后,通過命令生成ipr索引文件,然后再使用Android Studio打開,這種方式很適合我們使用移動(dòng)硬盤將源碼拷貝,然后在其他的機(jī)器上閱讀源碼,第二種方式是直接通過命令編譯完源碼后直接打開Android Studio,直接閱讀源碼,這里要求在本機(jī)中安裝Android Studio,并且源碼只能使用本機(jī)的Android Studio打開,下面就介紹如何使用Android 打開導(dǎo)入源碼。
使用Android Studio打開源碼
制作ipr文件
首先在源碼的根目錄下執(zhí)行分別執(zhí)行下面的命令
source build/envsetup.sh
mmm development/tools/idegen/
development/tools/idegen/idegen.sh
執(zhí)行完上面的命令后會(huì)在源碼的根目錄下生成一個(gè)android.ipr文件,下圖中紅圈圈住的文件,我們使用Android Studio打開這個(gè)文件就行了,然后我們就能看到framework的源碼了,對(duì)于Android的應(yīng)用開發(fā)者和FrameWork開發(fā)者來說這里就夠用了,當(dāng)然,如果是HAL和內(nèi)核的開發(fā)者還是老實(shí)使用Source insight吧。
注意:如果需要將源碼拷貝到移動(dòng)硬盤,需要注意不能只拷貝android.ipr文件,需要將整個(gè)源碼目錄都拷貝進(jìn)去,因?yàn)閍ndroid.ipr文件只是一個(gè)索引文件,只拷貝它是無法瀏覽源碼滴
通過Android Studio找到ipr文件并打開
等進(jìn)度條走完就能開心的閱讀修改源碼了
直接編譯成功后自動(dòng)打開Android Studio
這種方法比較簡單也比較推薦,如果不打包源碼帶走的話,直接在源碼的根路徑運(yùn)行下面的命令
aidegen -i s -p /home/zhongxj/android-studio
如果要只想打開某個(gè)模塊,比如SystemUI,直接使用命令:
aidegen SystemUI -i s -p /home/zhongxj/android-studio
這個(gè)命令表示編譯完整的依賴 -i s代表通過Android Studio打開依賴,-p表示Android Studio的路徑,如果加 -s表示跳過編譯依賴,這個(gè)命令執(zhí)行完后就會(huì)自動(dòng)打開Android Studio。
這里讀者可能看到橙色的文件夾不太舒服,沒關(guān)系咱們直接通過配置給去掉就好了,進(jìn)入Project Structure
比如上圖中我們要去掉system 的橙色標(biāo)志,我們可以看到選中system文件夾后,在右上角有個(gè)Excluded的圖標(biāo)是選中的,我們點(diǎn)擊一下他,就可以去掉這個(gè)橙色的圖標(biāo)了
再看system文件夾就是正常的顏色了,在Project Structure 還必須配置好SDK ,這里就不展示了,交給讀者,就像開發(fā)應(yīng)用的時(shí)候配置SDK一樣就行。很簡單
修改SystemUI驗(yàn)證開發(fā)環(huán)境
首先我們使用下面的命令編譯SystemUI并且使用Android Studio打開
aidegen SystemUI -i s -p /home/zhongxj/android-studio
編譯完打開Android Studio時(shí)可能會(huì)看到一堆爆紅,如下所示
不要慌,我們添加配置就可以了,進(jìn)入Project Structure ,找到Modules,在SystemUI上點(diǎn)擊右鍵,在彈出的窗口中點(diǎn)擊“+”號(hào),點(diǎn)擊Android,如下圖所示,并且配置好SDK,如下圖所示
完成后就可以看到我們的XML布局文件不爆紅了,而且還能預(yù)覽了
這時(shí)我們修改下對(duì)應(yīng)的布局文件,比如把系統(tǒng)狀態(tài)欄背景改成紅色,找到status_bar.xml,并將其顏色改成紅色,如下圖所示
然后編譯SystemUI
make SystemUI -j3
編譯完成后會(huì)得到一個(gè)SystemUI.apk,這個(gè)APK的路徑會(huì)在編譯的日志中看到,如下圖所示
得到APK后就可以找對(duì)應(yīng)的手機(jī)或者模擬器,將SystemUI.apk推入手機(jī)替換掉原來的SystemUI.apk看效果,這里需要注意手機(jī)必須能夠root,并且能夠remount,這樣才能替換SystemUI.apk,替換完后使用kill命令殺下SystemUI的進(jìn)程就可以看手機(jī)上的狀態(tài)欄變成了紅色的背景