本文重點(diǎn)描述內(nèi)容
注:本項(xiàng)目基于 Android Studio 講解泞莉,IntelliJ IDEA 類同
- 修改 aar 代碼層業(yè)務(wù)邏輯
- 修改 aar layout 布局文件
- 重新打包 aar
修改 aar 需要用到的工具(就一個(gè)工具,使用方式非常簡(jiǎn)單船殉,別擔(dān)心)
注:(下面工具鲫趁,點(diǎn)擊名稱可進(jìn)入下載鏈接,如果鏈接失效利虫,請(qǐng)百度搜索下載)
- Bandizip挨厚,一款非常好用的解壓縮工具,安裝的時(shí)候糠惫,請(qǐng)記住安裝目錄疫剃,后面可能會(huì)用到。如果有其他解壓縮工具也可以使用硼讽。
修改 aar 代碼層業(yè)務(wù)邏輯
- 代碼定位:
1.1 方式一:在開發(fā)工具中巢价,根據(jù)代碼跳轉(zhuǎn)到 aar 中你想修改的類
1.2 方式二:在 Android Studio 中,將目錄結(jié)構(gòu)從Android
改為Project
固阁,然后在External Libraries
中找到對(duì)應(yīng)的 aar 和 想要修改的類壤躲,如下圖
image.png
image.png - 找到 aar 中想要修改的類,并在你的項(xiàng)目中建立一個(gè)同包名备燃,同類名的類碉克。
例如:你想要修改 aar 中的com.test.modify
包名下類名為A
的類,則你需要在你的項(xiàng)目中新建一個(gè)包com.test.modify
赚爵,然后再建一個(gè)類名為A
的類棉胀。 - 將 aar 中類
A
的內(nèi)容全都復(fù)制到你新建的類A
中(注:有些內(nèi)容是編譯器反編譯生成的,不符合代碼開發(fā)規(guī)范冀膝,會(huì)報(bào)錯(cuò)唁奢,需要你自行修改),并在類A
中窝剖,編寫你想實(shí)現(xiàn)的邏輯代碼麻掸。 - 修改完成后,clean 項(xiàng)目赐纱,在重新build 項(xiàng)目脊奋,編輯器會(huì)報(bào)錯(cuò)
Program type already present
或More than one file was found with OS independent path
等包重復(fù)或沖突等問題,不用理會(huì)疙描。 - 進(jìn)入項(xiàng)目文件夾诚隙,
項(xiàng)目根目錄/build/intermediates/javac/debug/對(duì)應(yīng)包名
(不同的 Android Studio 版本路徑可能不同,需要自行查找)起胰,將你修改的類名開頭.class
文件全都復(fù)制久又,如下圖(注:必須從文件夾路徑查看,不要從Android Studio 下查找該路徑復(fù)制類,因?yàn)閺?Androi Studio 路徑下查看地消,內(nèi)部類文件未顯示)
image.png
image.png - 接下來會(huì)根據(jù)
Bandizip
解壓縮工具講解炉峰,請(qǐng)根據(jù)圖片進(jìn)行操作:
6.1 在文件夾中右鍵選中aar
包,選擇打開方式脉执,選擇Bandizip
(如果沒有疼阔,則從更多應(yīng)用里選擇,然后從剛才安裝的 Bandizip目錄找到 Bandizip.exe 即可 )半夷,如下圖
image.png
6.2 在打開的窗口中婆廊,按下圖進(jìn)行操作
image.png
6.3 找到修改的類的包名,將步驟 5 修改生成的 .class 類文件(包含內(nèi)部類文件)復(fù)制進(jìn)去
image.png
image.png
image.png
image.png
6.3 然后將 aar 包重新導(dǎo)入項(xiàng)目(導(dǎo)入之前玻熙,先將原先的 aar 刪除否彩,clean 后再build,然后導(dǎo)入新的 aar 包嗦随,再 build ,不然項(xiàng)目會(huì)使用舊的 aar 包)
6.4 至此敬尺,aar 修改業(yè)務(wù)代碼步驟結(jié)束枚尼。
修改 aar layout 布局文件
- 有的時(shí)候,需要修改 aar 中某個(gè)布局文件砂吞,例如:想在 aar 中的
activity_layout_login
布局文件增加一個(gè)Button
按鈕署恍。 - 接下來會(huì)根據(jù)
Bandizip
解壓縮工具講解,請(qǐng)根據(jù)圖片進(jìn)行操作
2.1 在文件夾中右鍵選中aar
包蜻直,選擇打開方式盯质,選擇Bandizip
(如果沒有,則從更多應(yīng)用里選擇概而,然后從剛才安裝的 Bandizip目錄找到 Bandizip.exe 即可 )呼巷,如下圖
image.png
2.2 點(diǎn)擊編輯,修改布局文件赎瑰,新增或修改資源 id 后王悍,請(qǐng)記住 id 名稱,后面會(huì)用到餐曼,保存關(guān)閉(也可以在 Android Studio 中編輯并預(yù)覽压储,然后將內(nèi)容復(fù)制到這個(gè)布局文件中)。
image.png
image.png
2.3 修改aar
包中的R.txt
源譬,(一定要修改集惋,不然在項(xiàng)目中無法使用剛才新增或修改的資源 id),右鍵R.txt
踩娘,選擇編輯刮刑,并保存退出,如下圖:
image.png
image.png
image.png
2.4 然后將 aar 包重新導(dǎo)入項(xiàng)目,就可引入新的資源(導(dǎo)入之前为朋,先將原先的 aar 刪除臂拓,clean 后再build,然后導(dǎo)入新的 aar 包习寸,再 build 胶惰,不然項(xiàng)目會(huì)使用舊的 aar 包)
2.5 至此,aar 修改業(yè)務(wù)代碼步驟結(jié)束霞溪。