1. 程式人生 > >一個完整的Android專案打包成第三方庫

一個完整的Android專案打包成第三方庫

轉,原作者部落格地址:http://www.jianshu.com/p/71058db2e429

場景:將一個完整的Android專案,包含java程式碼,以及res資原始檔,以及自身所依賴的jar包、jni等打包成一個第三方庫供別人使用。 前提需求是:不能作為library的形式;不能讓別人看到並修改程式碼;程式碼需要混淆。

當我們使用Android Studio開發的時候,這個問題變得很簡單。實際操作的時候,只要根據實際情況考慮幾個細節即可。
  • 將你的專案轉化成Android Library形式。

Android Library.png
  • 按照常規方式,對這個Library進行程式碼混淆。


    混淆.png
  • 刪除Android Manifest中的所有許可權宣告,刪除Application子節點,只保留四大元件的子節點。


Android Manifest簡化.png
  • Library用到的第三方依賴庫,不能使用在build.gradle中直接compile方式,而要轉而使用jar包的形式。


    jar包依賴.png
  • 一般來說,當你compile過一個第三方庫的時候,Android Stuido會把這個庫下載到本地,裡面就含有他的jar包,你可以直接在本地找到它,而不需要重新去網上下載。比如我依賴了Gson這個庫,我就可以在類似這個目錄找到它:


    jar地址.png
  • 編譯完成之後,你可以在這個地方找到混淆過的aar檔案。這個aar包含了當前Library的所有java程式碼及res資原始檔。這個aar就是我們需要提交給使用方的檔案。


aar包.png
  • 如何使用aar。新建一個測試專案,將aar放到lib目錄下。

lib目錄.png
  • 在測試專案的build.gradle中新增設定。

設定.png
  • 在測試專案的Android Manifest檔案中新增所有Library用到的許可權。

  • 大功告成。根據實際專案需求需要注意的是,假如原專案使用到類似推送、地圖等第三方庫需要根據包名生成appKey的情況,則專案的包名已經變為使用者的包名而不是原Library專案的包名。此處需要使用者自行設定。