本文重點描述內容
注:本項目基于 Android Studio 講解,IntelliJ IDEA 類同
- 修改 aar 代碼層業(yè)務邏輯
- 修改 aar layout 布局文件
- 重新打包 aar
修改 aar 需要用到的工具(就一個工具,使用方式非常簡單,別擔心)
注:(下面工具,點擊名稱可進入下載鏈接,如果鏈接失效,請百度搜索下載)
- Bandizip,一款非常好用的解壓縮工具,安裝的時候,請記住安裝目錄,后面可能會用到。如果有其他解壓縮工具也可以使用。
修改 aar 代碼層業(yè)務邏輯
- 代碼定位:
1.1 方式一:在開發(fā)工具中,根據代碼跳轉到 aar 中你想修改的類
1.2 方式二:在 Android Studio 中,將目錄結構從Android改為Project,然后在External Libraries中找到對應的 aar 和 想要修改的類,如下圖
image.png
image.png - 找到 aar 中想要修改的類,并在你的項目中建立一個同包名,同類名的類。
例如:你想要修改 aar 中的com.test.modify包名下類名為A的類,則你需要在你的項目中新建一個包com.test.modify,然后再建一個類名為A的類。 - 將 aar 中類
A的內容全都復制到你新建的類A中(注:有些內容是編譯器反編譯生成的,不符合代碼開發(fā)規(guī)范,會報錯,需要你自行修改),并在類A中,編寫你想實現(xiàn)的邏輯代碼。 - 修改完成后,clean 項目,在重新build 項目,編輯器會報錯
Program type already present或More than one file was found with OS independent path等包重復或沖突等問題,不用理會。 - 進入項目文件夾,
項目根目錄/build/intermediates/javac/debug/對應包名(不同的 Android Studio 版本路徑可能不同,需要自行查找),將你修改的類名開頭.class文件全都復制,如下圖(注:必須從文件夾路徑查看,不要從Android Studio 下查找該路徑復制類,因為從 Androi Studio 路徑下查看,內部類文件未顯示)
image.png
image.png - 接下來會根據
Bandizip解壓縮工具講解,請根據圖片進行操作:
6.1 在文件夾中右鍵選中aar包,選擇打開方式,選擇Bandizip(如果沒有,則從更多應用里選擇,然后從剛才安裝的 Bandizip目錄找到 Bandizip.exe 即可 ),如下圖
image.png
6.2 在打開的窗口中,按下圖進行操作
image.png
6.3 找到修改的類的包名,將步驟 5 修改生成的 .class 類文件(包含內部類文件)復制進去
image.png
image.png
image.png
image.png
6.3 然后將 aar 包重新導入項目(導入之前,先將原先的 aar 刪除,clean 后再build,然后導入新的 aar 包,再 build ,不然項目會使用舊的 aar 包)
6.4 至此,aar 修改業(yè)務代碼步驟結束。
修改 aar layout 布局文件
- 有的時候,需要修改 aar 中某個布局文件,例如:想在 aar 中的
activity_layout_login布局文件增加一個Button按鈕。 - 接下來會根據
Bandizip解壓縮工具講解,請根據圖片進行操作
2.1 在文件夾中右鍵選中aar包,選擇打開方式,選擇Bandizip(如果沒有,則從更多應用里選擇,然后從剛才安裝的 Bandizip目錄找到 Bandizip.exe 即可 ),如下圖
image.png
2.2 點擊編輯,修改布局文件,新增或修改資源 id 后,請記住 id 名稱,后面會用到,保存關閉(也可以在 Android Studio 中編輯并預覽,然后將內容復制到這個布局文件中)。
image.png
image.png
2.3 修改aar包中的R.txt,(一定要修改,不然在項目中無法使用剛才新增或修改的資源 id),右鍵R.txt,選擇編輯,并保存退出,如下圖:
image.png
image.png
image.png
2.4 然后將 aar 包重新導入項目,就可引入新的資源(導入之前,先將原先的 aar 刪除,clean 后再build,然后導入新的 aar 包,再 build ,不然項目會使用舊的 aar 包)
2.5 至此,aar 修改業(yè)務代碼步驟結束。















