上次文章android sdk開發與使用的那些事兒說到如何在aar裡整合匯入的aar,也就是二次封裝aar的問題,一帶而過,難免不過癮。在封裝這條路上也遇到了不少坑,現在將此方法詳細記錄下來。
說到二次打包aar這個需求應該算小眾了,谷歌一圈下來也找不到答案,android studio到目前也還不支援這個操作,一開始遇到這個問題的時候可以說非常蛋疼了...
aar作為乙個「特殊字尾」的壓縮包,在匯入專案中編譯的時候無非就是合併,而android studio專案有個module的說法,他們兩者都可以看做是project的library,既然android studio不能自動處理這個合併,那我們何不嘗試一下手動解決?
解壓aar檔案:
aar解壓圖.png
可以看到,aar裡包括了各種各樣的資源檔案(解壓包大致一樣,略有差異),但是有的是空資料夾,現在res,jni這些資料夾我們就熟悉了吧!如果你的aar解壓出來僅有so庫與jar包,那就不用往下看了,直接提取出來複製到專案對應目錄下編譯即可!
新建乙個module
一路next下去,包名任選(反正也是要拋棄的...)
複製classes.jar包到新建的module(示例library名為:mylibrary)的libs目錄下,如圖
複製classes.jar檔案到libs目錄下.png
展開mylibrary下的src資料夾,首先刪掉資料夾內的所有東西,接著將aar解壓資料夾中的assets、res、androidmanifest.xml等檔案(夾)複製進去,複製jni資料夾下的相關檔案到新建的jnilibs資料夾。總之,套路就是按正常的專案結構對應來放置資源。當然,以上幾個複製步驟是aar中包含該資源的情況下才需要。
引入module project.png
至此,aar匯入完畢,可以直接使用原arr中的方法,加入自己的業務邏輯再次打包成aar的需求也就迎刃而解了
以module形式手動匯入aar的方式,曲線解決了目前android studio不支援在aar基礎上二次封裝成aar這個需求。總結起來就是大膽假設小心求證,了解一些專案合併/打包的原理是很有幫助的,在這探索過程中也得到了好友的指點,在這感謝。最後希望這篇文章分享出來能有所幫助吧!
二次打包(封裝)AAR實用指南
aar解壓圖.png 可以看到,aar裡包括了各種各樣的資源檔案 解壓包大致一樣,略有差異 但是有的是空資料夾,現在res,jni這些資料夾我們就熟悉了吧!如果你的aar解壓出來僅有so庫與jar包,那就不用往下看了,直接提取出來複製到專案對應目錄下編譯即可!新建乙個module android l...
Volley二次封裝
一 簡介 volley 是 goole i o 2013上發布的網路通訊庫,使網路通訊更快 更簡單 更健壯。二。優點 三。缺點 四。使用 在專案中網路請求是乙個必須的功能,為了減少 的重複,需要對volley進行二次封裝。private static requestqueue queues over...
axios二次封裝
引入路由 import router from router index 引入vuex import store from store index 引入提示元件 import from element ui 引入api import apilist from apilist 引入qs let htt...