(最后附Fat jar介绍)
环境:Win7 64bit+Eclipse
将工程资源文件进行插件化打包时,遇到问题点:
1、export->JAR file无法编译libs中的jar文件到dex文件;
2、export->Fat jar打包的资源文件无法通过AssetManager进行访问;
3、以上两种方式均可进行选择性打包,apk打包无法过滤文件
解决方案:
一、针对问题1,可通过问题2中的fat jar解决,但是fat jar本身具有缺点。比较三种打包方式如下:
1、export->JAR file可以进行普通资源文件打包,适合静态jar插件,可以进行选择性打包,无法编译libs、res和manifest文件;
2、export->Fat jar适合动态jar插件,可将libs中jar一同进行编译,可以进行选择性打包,但无法编译res和manifest文件
3、apk适合动态插件调用,不仅把libs中jar进行编译,res和manifest资源文件也进行了编译,但是无法进行选择性打包。
二、针对问题3,可以通过结合fat jar和apk两种方式,优劣互补,完善插件化打包流程,可以进行java代码选择性打包。
apk文件结构如下:
其中apk的classes.dex是全部java代码(包括libs和外部library包)的编译后文件。
fat jar打包后并