最簡單的Android Studio閱讀Android源碼方式

最簡單的閱讀Android源碼方式(方便爬早、快捷、完整)

對于Android開發(fā)人員閱讀Android系統(tǒng)源碼是非常重要的事情启妹,但很多時候我們關(guān)心的只是framework層的源碼。

但是網(wǎng)上一搜全是教我們怎樣把Android源碼通過AOSP先下載到本地醉旦,然后進行編譯饶米,然后再導(dǎo)入到AS中進行調(diào)試的。這個過程是一個非常痛苦的過程车胡,首先源碼體積非常大檬输,下載非常困難,占的磁盤空間也非常大匈棘。然后編譯的話必須要有l(wèi)inux環(huán)境丧慈。即使編譯好了由于源碼太多,導(dǎo)入過程也是一個非常耗時間的過程。這個過程誰經(jīng)歷過誰知道逃默。

為了解決上面的問題鹃愤,讓我們能夠絲滑的在AS中閱讀上framework層源碼。我在將Android10源碼編譯完成后完域,將我們不關(guān)心的源碼全部刪除掉软吐,只保留了framework層的源碼,然后對其中的對大文件吟税,無用文件進行移除凹耙。這樣就將整個包體積降到了1G一下,文件數(shù)量也減少了到了3萬多個肠仪。

我們開發(fā)者只需要將我項目中的源碼下載下來肖抱,然后再經(jīng)過簡單的配置,就可以在Androd Studio 上非常絲滑的閱讀FrameWork源碼了异旧,跳轉(zhuǎn)意述,搜索、寫注釋什么的都是沒任何問題的泽艘。????

使用

  1. 項目 中的代碼下載下來

  2. 打開AS欲险,通過 Open an Existing Project 打開 android10 下面的 android.ipr文件

  3. 將源碼只關(guān)聯(lián)本地,將dependecies下面的只留下下面兩個匹涮。

    20210606132744.jpg

成功導(dǎo)入之后天试,就可以愉快的看源碼了,速度還是挺快的然低,如果感覺還是有點卡頓的話喜每,可以將AS安裝目錄下的的studio.vmoptions調(diào)大一些。

-Xms2048m
-Xmx4049m
-XX:ReservedCodeCacheSize=500m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=3

更多

如果需要閱讀其他模塊的源碼的話雳攘,可以將整個Android10的源碼下載下來带兜,然后將對應(yīng)的模塊拷貝到項目android10目錄下,并在android.iml中對應(yīng)的模塊移除配置刪掉吨灭。比如加入了packages模塊刚照,然后將下面這行刪除。

<excludeFolder url="file://$MODULE_DIR$/packages" />

Android10整個源碼

鏈接: https://pan.baidu.com/s/1V-stMpLw3xs9k2Zx7hvv8Q 密碼:ifq4

如果有喜歡折騰的喧兄,需要編譯整個系統(tǒng)源碼无畔,并調(diào)試運行整個系統(tǒng)的》驮可以參考這個 AndroidStudio源碼開發(fā)環(huán)境搭建 ,過程有些復(fù)雜浑彰。

編譯源碼容易遇到編譯出錯的問題。如果遇到下面問題的話拯辙,可以考慮如下解決

1.用于初始化環(huán)境變量

soruce build/envsetup.sh  

2.生成 idegen.jar 文件

這個可能會生成失敗郭变,如果生成失敗的話,可以通過下面的鏈接將idea.jar下載到本地,然后將idea.jar拷貝到 out/host/linux-x86/framework/idegen.jar 诉濒,再執(zhí)行下面的命令
鏈接: https://pan.baidu.com/s/17lfmVAs8HRrsk5hbyzkNjA 密碼:2gbx

mmm development/tools/idegen/  
  1. 源碼根目錄生成文件android.ipr(工程相關(guān)設(shè)置), android.iml(模塊相關(guān)配置)
./development/tools/idegen/idegen.sh
  1. 生成了源碼后周伦,就可以通過AS打開android.ipr了,??注意導(dǎo)入整個android源碼會非逞撸卡頓横辆,除非必要,否則還是建議只導(dǎo)入自己需要的源碼部分茄猫。相關(guān)的導(dǎo)入配置狈蚤,在 android.iml中,可以根據(jù)需要通過 excludeFolder 在android.iml文件中將不需要的模塊移除掉划纽。我的項目中的配置如下脆侮。
 <excludeFolder url="file://$MODULE_DIR$/.repo"/>
   <excludeFolder url="file://$MODULE_DIR$/abi"/>
   <excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
   <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$/kernel-3.18"/>
   <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$/pdk"/>
   <excludeFolder url="file://$MODULE_DIR$/platform_testing"/>
   <excludeFolder url="file://$MODULE_DIR$/prebuilts"/>
   <excludeFolder url="file://$MODULE_DIR$/rc_projects"/>
   <excludeFolder url="file://$MODULE_DIR$/sdk"/>
   <excludeFolder url="file://$MODULE_DIR$/system"/>
   <excludeFolder url="file://$MODULE_DIR$/tools"/>
   <excludeFolder url="file://$MODULE_DIR$/trusty"/>
   <excludeFolder url="file://$MODULE_DIR$/vendor"/>
   //注意上面的這些移除文件的配置放到 </content> 標(biāo)志的上面
   </content>

項目地址:https://github.com/AndroidBBQ/android10

如果本文可以幫助到您,麻煩點個star吧勇劣!??????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末靖避,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子比默,更是在濱河造成了極大的恐慌幻捏,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件命咐,死亡現(xiàn)場離奇詭異篡九,居然都是意外死亡,警方通過查閱死者的電腦和手機醋奠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門榛臼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窜司,你說我怎么就攤上這事沛善。” “怎么了塞祈?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵金刁,是天一觀的道長。 經(jīng)常有香客問我议薪,道長胀葱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任笙蒙,我火速辦了婚禮,結(jié)果婚禮上庆锦,老公的妹妹穿的比我還像新娘捅位。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布艇搀。 她就那樣靜靜地躺著尿扯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焰雕。 梳的紋絲不亂的頭發(fā)上衷笋,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音矩屁,去河邊找鬼辟宗。 笑死,一個胖子當(dāng)著我的面吹牛吝秕,可吹牛的內(nèi)容都是我干的泊脐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烁峭,長吁一口氣:“原來是場噩夢啊……” “哼容客!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起约郁,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缩挑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鬓梅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體供置,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年己肮,在試婚紗的時候發(fā)現(xiàn)自己被綠了士袄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谎僻,死狀恐怖娄柳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情艘绍,我是刑警寧澤赤拒,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站诱鞠,受9級特大地震影響挎挖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜航夺,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一蕉朵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阳掐,春花似錦始衅、人聲如沸冷蚂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝙茶。三九已至,卻和暖如春诸老,著一層夾襖步出監(jiān)牢的瞬間隆夯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工别伏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹄衷,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓畸肆,卻偏偏與公主長得像宦芦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子轴脐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容