如何减少APK包的大小

最近开发完公司的项目,和IOS的哥们一起上线,发现IOS的包大小近20M,而Android的安装包仅9M,过大的下载包可能会降低新用户的下载兴趣,所以适当减少安装包的大小还是很重要的。

1.使用ProGuard混淆

ProGuard包括以下4个功能:
压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。
优化(Optimize):对字节码进行优化,移除无用的指令。
混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名。
预检(Preveirfy)。

混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(破解)。

2.开启shrinkResources

移除无用的资源,但是可能会造成:specified for property 'resourceFile' does not exist. 慎用!

3.使用resConfigs "zh"

删除无用的语言资源。google给我们的apk提供了国际化支持,如适应不同语言的字符串资源等等,但是在很多情况下我们只需要一些指定语言的资源就可以了,这个时候我们可以使用resConfigs方法来配置。

4.对于非透明大图,png转化为jpg格式

5.使用shape文件代替一些背景图片

6.切图最多使用两套,使用主流分辨率

7.限制app支持的cpu架构的数目


让你的app支持 armabi 和 x86 架构就够了。如果你的项目有sina分享或者百度地图SDK,他们有7中CPU架构的so库,如果全部放到项目中,就只能呵呵了。


另外,Android Studio在2.2以后提供了一个Apk分析器,能够查看Apk文件的组成部分一起各自大小所占的比重,有兴趣的同学可以研究一下。使用方法:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.将此文件夹上传到网站根目录 2.打开自己站点网址,如:example.com,或loaclhost 3.第一次安装时打开网址:example.com/admin.php和example.com/mobile/admin.php登记管理员信息,因为移动版实则是另一套Glype程序,所以需要登记两次管理员信息,且互相独立 4.开始自由网上冲浪 注意事项: 1.PC/移动端调转依据Apache的.htaccess文件进行判别,安装时注意确认.htaccess已覆盖。 2..htaccess文件需要依据自己网站进行修改: RewriteEngine on # Uncomment the following lines to force HTTPS # WordPress Defaults RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos|UCBrowser|QQBrowser|wap|Nokia|Lumia|Windows Phone|Windows 10 Mobile|Windows Mobile" [NC] RewriteRule ^$ http://cc.bigxd.com/mobile/ [R=301,L] 最后一行,cc.bigxd.com换成自己站点的网址 3.如果无法支持Apache的Rewrite功能,如使用的是IIS服务,请参照修改相应规则 4.实在无法通过服务器配置实现PC/移动版调转,请将/themes/default下的main-back.php编辑修改 在第8行开始的JS代码中: var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire"); var browser = navigator.userAgent.toLowerCase(); var isMobile = false; for (var i=0; i<mobileAgent.length; i++){ if (browser.indexOf(mobileAgent[i])!=-1){ isMobile = true; //alert(mobileAgent[i]); location.href = '手机网址'; break; } } 修改手机网址为自己的站点手机站目录,如http://example.com/mobile 然后将main-back.php文件名修改为main.php文件,替换原来的main.php文件 5.使用页面JS代码实现的跳转效率较低,需要的时间更长,故默认不使用JS代码来实现跳转 6.移动版的Google搜索失效,这是Glype程序本身与google适配的问题,暂未解决 7.要实现国外代理时一定要确定自己的服务器在境外,且服务器能够访问相应网站 8:已做好全站前台,后台汉化,但访问部分源网站时由于源网站默认的不是UTF编码,使得Glype的工具栏文字乱码,不影响使用,页面编码正常 本代码由戏子醉友情提供,相关支持请在博客留言: http://www.bigxd.com http://cc.bigxd.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值