android專案打第三方jar包

2021-07-30 19:05:06 字數 1478 閱讀 5764

隨著android系統的日益發展和日漸成熟,各種平台的合作就日漸頻繁。現在主要網際網路公司,都退出了各種各樣的外掛程式功能。如第三方支付,第三方聯合登陸和微博分享等等功能。

近期由於業務的需要,公司提出將專案的功能打成jar包,提供給其它客戶呼叫。經過一段時間的調查研究和實踐,先將解決辦法總結如下。

直接將布局檔案通過**來寫,然後直接匯出src目錄檔案成jar.

將src目錄匯出成jar,然後把res和jar同時提供給第三方。

通過aapt把資源打包進jar進行呼叫。

第一種方法我們就不討論了,如果專案的介面不多而且比較簡單採用這種方法比較適合。如果比較大,資源比較多,那可以把你寫到**了.

之前我們公司一直採用的是第二種方法。這種方法簡單方便,缺點是第三方可以隨意更改你的布局檔案,導致出錯(雖然他們很少會這樣做),而且沒法發包給第三方的時候都要發很多的資源包,少發乙個都可能導致出錯,維護起來比較麻煩。

所以想著通過aapt打包資源的方式打包進jar進行發布。

首先先來了解一下概念。

android查詢資源的流程

有了這個概念後剩下的就會好理解很多。

偶然發現,在android開發時候,其實我們可以自定義資源的存放位置。怎麼弄呢?只要將上面的**放到values下面(類似strings檔案格式,但type是layout),就會有乙個r.layout.***的id指定到r/dir/***.xml,當然資源也可以這樣用,type是drawable。

而我們可以直接在工程的src專案下新建r.dir的包名,未來打jar會自動打包成目錄的。

關鍵是xml檔案,這裡我們r.dir不能再放原始檔了,需要放用aapt編譯的二進位制檔案。但是該方法也存在乙個限制,就是你的values必須是原始檔跟隨呼叫你jar的主工程編譯

接下來看具體的步驟:

1,在你的library工程src檔案下新建demo資料夾,資料夾下放入通過aapt編譯之後的二進位制res資源檔案。

2,在你的library工程vlues下新建乙個public.xml檔案如下

type="layout"

name="finalactivity">demo/activity_final.xmlitem>

resources>

3,library工程中引用資源

4,匯出jar包(只要勾選src就行了)同時把values下的public.xml提供給合作方。

5,合作方拿到jar進行載入,然後把public.xml複製到自己的values下編譯執行就可以了。

這是唯一的缺點吧,values必須在合作方的原始檔下編輯才能成功。

android混淆打包配置(忽略第三方jar

在project.properties裡加上 proguard.config proguard.cfg proguard.cfg 配置如下 optimizationpasses 5 dontusemixedcaseclassnames dontskipnonpubliclibraryclasses ...

android混淆打包配置(忽略第三方jar

在project.properties裡加上 proguard.config proguard.cfg proguard.cfg 配置如下 optimizationpasses 5 dontusemixedcaseclassnames dontskipnonpubliclibraryclasses ...

Android 增加第三方APK

一 原始碼增加 這種方法要求開發的apk必須遵循一些約定,最主要的就是字串必須在strings.xml裡定義,不能直接在應用程式裡賦字串值。二 沒有原始碼,只有編譯好的apk 有2種辦法可以新增.這種方法最簡單,但是在重新make整個專案後又必須重新複製到此目錄。2 使用build prebuilt...