会做网站怎么赚钱,自己做网站要固定ip,做的比较好的p2p网站,图文消息点击进去是自己的网站关于安卓打包生成aar#xff0c;jar方式
背景
在开发的过程中#xff0c;主项目引入三方功能的方式有很多#xff0c;主要是以下几个方面#xff1a; #xff08;1#xff09;直接引入源代码module#xff08;优点#xff1a;方便修改源码#xff0c;易于维护#…关于安卓打包生成aarjar方式
背景
在开发的过程中主项目引入三方功能的方式有很多主要是以下几个方面 1直接引入源代码module优点方便修改源码易于维护迭代。缺点对于新手不友好可能会遇到依赖兼容问题需要排除并且适配 2远程依赖目前主要是用maven依赖。优点几行代码即可依赖完成。缺点库存在问题的话修改很麻烦 3直接引入jar或者aar。module编译后的产物优点可增加混淆之类的规则使代码更安全隐蔽。缺点本地修改会有难度编译有一定的难度
本文就是讲述如何使用androidstudio打包生成aarjar。
环境
win10 jdk 11 jdk 8 as 4.0 gradle 7.0
编码
首要要搞懂aar包和jar包有什么区别很简单来说aar包是在jar包上增加了资源例如layout,res。 如果你开发的是一个纯业务类型的库可以打jar包。如果涉及到界面等逻辑就需要打aar包了。
一生成aar包 首先要有个androidstudio中的module。然后clean projectbuild project即可生成。具体目录就是在module对于的build项目下查找即可看到结构如下图 那么又是如何生成release的aar包呢 只需要点击右侧边栏的gradle-对应模块-other-assembleRelease等待编译完成即可编译后内容如下图 上述就是一些关于model如何生成一个aar包的操作。
二生成jar包 对于生成一个jar包比aar包要复杂一点。需要在模块目录的build.gradle文件加入以下代码
task makeJar(type: Copy) {//删除存在的delete build/libs/ztuiqueue.jar//设置拷贝的文件from(build/intermediates/aar_main_jar/release/)//打进jar包后的文件目录into(output/libs/)//将classes.jar放入build/libs/目录下 //include ,exclude参数来设置过滤 //我们只关心classes.jar这个文件include(classes.jar)//重命名rename(classes.jar, ztuiqueue.jar)
}
makeJar.dependsOn(build)其中函数from中的路径是随着gradle的版本不一样二变化的。需要在build目录下进行查找。 上述代码的意思仅仅是把jar包复制出来其实原jar包的目录是在比较深的层级的。
三代码混淆 对于完成了一二两步的朋友现在已经接近尾声了。最后就是一个代码混淆的问题。如果不涉及混淆请忽略该步骤。 对于module中的打包aar/jar代码混淆需要在build.gradle文件中buildTypes路径下加入以下代码即可 buildTypes {release {minifyEnabled true/*模块混淆*/consumerProguardFiles proguard-rules-libxui-queue.pro/*打包aar,jar混淆*/proguardFiles getDefaultProguardFile(proguard-android.txt),proguard-rules-libxui-queue.pro}debug {minifyEnabled false/*模块混淆*/consumerProguardFiles proguard-rules-libxui-queue.pro/*打包aar,jar混淆*/proguardFiles getDefaultProguardFile(proguard-android.txt),proguard-rules-libxui-queue.pro}}其中很清晰明了的一句就是 /打包aar,jar混淆/ proguardFiles getDefaultProguardFile(proguard-android.txt),proguard-rules-libxui-queue.pro而“proguard-rules-libxui-queue.pro”请替换成你开发module的具体混淆文件名字即可。 上述代码的意思就是如果是正式包则开启混淆测试包则不开启。当然主项目的混淆状态也会直接影响子module的混淆状态。
注意
混淆的过程中需要遵循对应的混淆原则。否则会出现无法识别的情况。 还有对外的输出的jar包aar包也应该附带对应的混淆规则说明。
that‘s all-------------------------------------------------------------------------------