Android Studio多模块的SDK项目打包和混淆
2016-09-06 00:00
666 查看
摘要: 多模块SDK项目
任务遇到的难点
1.SDK项目多模块,编译后每个模块自己生成了1个jar包。但是需求是只对外发布一个jar包,需要进行合并多个jar包。
2.生成的jar包中因为模块引入了百度地图定位导致jar包内有不需要的asset文件杂项
3.多模块的混淆问题
解决方案:
每个模块在编译之后都会在XXX/build/intermediates/bundles/release/classes.jar 路径下生成jar包
使用如下脚本可协助你合并多个jar包 (路径问题自己解决哈)
第二个问题解决方案,将第三方库 单独新建一个模块来存放,然后在引入隔绝需要打包的模块中直接引入第三方库。 (因为发现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文件 然后根据情况修改下即可,还可以保存配置~具体用法自己可以再查哈
任务遇到的难点
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文件 然后根据情况修改下即可,还可以保存配置~具体用法自己可以再查哈
相关文章推荐
- android studio 将引用第三方jar和.so的项目打包jar并混淆
- android studio 将引用第三方jar和.so的项目打包jar并混淆
- Android Studio打包混淆带资源的SDK
- Android Studio打包cocos creator项目出现java.lang.UnsatisfiedLinkError:SDKWrapper.nativeLoadAllPlugins:()
- webpack3实战(5)打包一个多页、jQuery、图片转base64、压缩混淆、异步模块加载的项目
- Android Studio 项目混淆打包时,报错Caused by: java.lang.NoSuchMethodError: android.util.Xml.newPullParser
- Android Studio 下打包混淆apk报错:Error:Execution failed for task ':app:proguardRelease'
- android studio...混淆打包全揭秘
- android项目混淆打包注意事项
- 【Unity】安卓项目使用带有资源Jar包SDK的打包方法
- Android Studio上如何混淆打包apk
- Android studio打包APK混淆配置
- 在Android Studio更改现有项目里的SDK版本
- 【Android Studio】代码混淆与多渠道打包
- VS2010项目打包发布和代码混淆的一起操作
- [Android Studio 权威教程]离线配置SDK,创建第一个AS项目
- Ant混淆打包生成SDK的JAR包
- Android项目打包开启proguard的混淆优化带来的问题
- android项目混淆打包注意事项
- Ant 多渠道 自动打包 混淆代码 引入第三方项目