Android Studio多模塊的SDK項目打包和混淆

任務遇到的難點

1.SDK項目多模塊,編譯後每個模塊自己生成了1個jar包。但是需求是隻對外發佈一個jar包,需要進行合併多個jar包。

2.生成的jar包中因爲模塊引入了百度地圖定位導致jar包內有不需要的asset文件雜項

3.多模塊的混淆問題

 

解決方案:

每個模塊在編譯之後都會在XXX/build/intermediates/bundles/release/classes.jar 路徑下生成jar包

使用如下腳本可協助你合併多個jar包 (路徑問題自己解決哈)

#!/bin/sh

#進入輸出目錄
cd output

#清空輸出目錄
rm -rf  *

#創建輸出子目錄
mkdir temp
mkdir release

#定義sdk版本號
version="1.0.0"

#定義模塊是否打包標識
is_include_wifidao=true
is_include_location=true
is_include_interactive=true
is_include_wificonnect=true
#省略其他...

#解壓所有release版本的jar包到temp目錄中
cd temp

if $is_include_wifidao; then
    jar -xvf ../../wifidao/build/intermediates/bundles/release/classes.jar
fi

if $is_include_location; then
    jar -xvf ../../location/build/intermediates/bundles/release/classes.jar
fi

if $is_include_interactive; then
    jar -xvf ../../interactive/build/intermediates/bundles/release/classes.jar
fi

if $is_include_wificonnect; then
    jar -xvf ../../wificonnect/build/intermediates/bundles/release/classes.jar
fi

#壓縮所有release版本的class文件到一個獨立的jar包中
jar -cvfM SDK_${version}_release.jar .

#拷貝文件
mv SDK_${version}_release.jar ../release

#清空temp目錄
rm -rf *




#刪除temp目錄
cd ..
rm -rf temp

 

第二個問題解決方案,將第三方庫 單獨新建一個模塊來存放,然後在引入隔絕需要打包的模塊中直接引入第三方庫。 (因爲發現AS中不會將其他模塊的東西編譯進另外一個模塊得到的啓發)

  

 

第三個問題,解決方案在合併爲一個jar包之後,利用Android SDK自帶的混淆工具將混淆配置導入,進行混淆。

 

需要注意:混淆時候記得導入依賴的第三方庫/V4包/ Android SDK/

例如:
Android SDK /usr/local/coding/env/android_sdk_linux/platforms/android-23/android.jar
V4包    /home/lin/文檔/git_repo/zhonglianSDK/output/support-v4-23.2.0-sources.jar
volley 
百度地圖定位
gson

 

點底下Load configuration就可以導入 proguard-rules.pro文件 然後根據情況修改下即可,還可以保存配置~具體用法自己可以再查哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章