您的位置:网站首页 > 源码环境 > 正文

来看看Android打包的那些事

类别:源码环境 日期:2018-12-30 13:16:39 人气: 来源:

  通过代码混淆不仅能够提高APK的反编译,还能较小APK大小;混淆可以删除注释和无用的代码;可以将Java文件,变量,方法名登改为短名,这样就可以缩减字符所占的空间,但并不是所有的文件都可以混淆;比如res下的文件,文件res下的资源文件在R.java 文件中都会有对应的ID,如果直接将文件名改了,资源和ID就不对应了。导致程序崩溃。

  debug {//为了方便调试微信支付、登陆、分享等把deug签名配置成了Release版的签名

  proguard-rules.pro是我们自定义的混淆规则,位于app根目录下,默认为空,需要我们自己添加规则。这里贴出一根模板:

  # 移除Log类打印各个等级日志的代码,打正式包的时候可以做为禁log使用,这里可以作为log打印的功能使用

  打正式包的时候了混淆,打包结束后会在appbuildoutputsmappingrelease目录成一个mapping.txt文件,是代码混淆前后的名字对应关系。

  提到,res下的资源文件不能混淆,如果我们可以将res下的资源文件名也改成短名,并且ID对应关系也改成对应的;这样就可以实现资源文件的“混淆了”,apk解压后会有一个resources.arsc文件:资源索引表,资源的描述文件,用来描述具有ID值的资源的对应关系。所以我们把res下的文件改成短名后,还需要更改resources.arsc中的对应关系。这里使用的是微信开源的资源混淆工具

  2.可以在app下的build.gradle中直接配置混淆,为了更直观一些,这里在工程的根目录中单独建立了一个gradle文件:and_res_guard.gradle内容如下:

  keepRoot =lse// 打开这个开关,会keep住所有资源的原始径,只混淆资源的名字

  我们APP每次迭代需要记录APP的版本信息和对应的变化信息,以某一特定的格式记录,方便以后对比管理。我们可以写一个gradle脚本来自动实现。

  打正式包结束后会在app的根目录成一个releaseInfo.xml文件,内容格式如下:

  渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等,我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计。

  环太平洋 彩蛋本文由来源于财鼎国际(www.hengpunai.cn)

0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: