当前位置:首页 > 安卓源码 > 技术博客 >

Android App开发瘦身大揭秘,让你的App瘦下来

时间:2018-01-08 17:43 来源:互联网 作者:源码搜藏 浏览: 收藏 挑错 推荐 打印

现在Android App开发,可执行文件的体积在不断的变大。第三方依赖的SDK,jar包,依赖库,为了追求良好的视觉效应的高清图片,国际化的适配等等,不断的在扩大着我们的应用体积。但是对于用户来说,他们的需求就是,功能在不见少的情况下,App的体积越小越好。

现在Android App开发,可执行文件的体积在不断的变大。第三方依赖的SDK,jar包,依赖库,为了追求良好的视觉效应的高清图片,国际化的适配等等,不断的在扩大着我们的应用体积。但是对于用户来说,他们的需求就是,功能在不见少的情况下,App的体积越小越好。

目前Android智能设备各种各样,配置也各有不同,性能相对好一点的,对于安装包的大小没什么影响,但是对于配置相对差一点的,应用体积比较大,就比较耗费内存,可能出于必要性的考虑,用户有可能就会卸载我们的APP。所以对App的瘦身,也是我们项目开发中,不能忽略的重要一部分。

再具体官方说一下瘦身的概念:Apk减小,功能不减。节省用户下载消耗的流量。

这篇文章,我们就全面到的讲一讲怎么给要上线的Android App瘦身。

首先我们先看一下APK的里面的结构,我们把.apk的后缀改为.zip就行,看下图

Android App开发瘦身大揭秘,让你的App瘦下来

这里面的所有的文件的作用简单讲一下:1. lib:lib目录下的子目录armeabi,x86存放的是项目用到的so文件。2. classes.dex:classes.dex是java源码编译后生成的java字节码文件。3. res:res目录存放资源文件。包括图片、字符串、各种xml文件等。4. assets:assets目录可以存放一些配置文件(比如webview本地资源、音频文件等)。5. resources.arsc:编译后的二进制资源文件6. META-INF:META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。7. AndroidManifest.xml:该文件是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等信息。

好了,接下来我们开始讲怎么瘦身

  1. 我们项目配图我们尽量使用一套切图就可以了。因为现在项目有可能,UI会切一套720p和1080p的图,两套图已经占了很大的内存。因为现在720和1080p视觉差异并不是特别大我们切一套图就可以了,同时UI妹纸的工作量也会减少一半。

  2. 配置gradle三个变量

    1.minifyEnable 设置为true Java编译获取class经过优化压缩进.dex。它会让整个项目没用用到的jar包打包的时候不打包到apk中。

    步骤:minifyEnabled将瘦身功能打开混淆功能,优化class文件

    2.ShrinkResources 打开设置为true

    它会对整个项目未使用的图片进行优化处理,替换成1*1的同名图片,注意事项:ShrinkResoources使用的前提是上一个minifyEnable 也必须要先打开才能使用。

    3.resConfig过滤语言包,如果仅仅是在中国使用,那么只保留中文就行,这样打包的时候其他语言就不会一块打包进去。

  3. 对libs文件夹进行优化,如果项目中,我们添加了百度地图,高德地图等第三方SDK,我们就必须添加他们的支持库,这个时候我们就要优化他的架构,只保留可以支持我们需要设备的支持库就行了,一般我们保留armabi 和 x86 架构就够了。

  4. 对图片进行压缩 APP界面的美化,图片发挥了很大的作用,所以图片的压缩对APP的瘦身也至关重要

    1.项目中尽量使用.9图片,这是一种Z支持Android设备独有的图片,他的作用是图片可以拉伸,只要设置好我们需要保留的区域就好了。

    2.使用转换工具,将png格式的图片转换为jpg格式,这样我们能省下的内存空间。

    3.使用第三方工具ImageOptim/tinypng对图片进行有损或无损压缩,压缩比例根据自己的视觉需求而定。

    4.使用webapp格式的图片,这是谷歌推崇的图片格式,目前好多大公司都采用了这种格式进行客户端的开发。据谷歌介绍使用webapp格式图片要比png能节省下45%的内存空间。

5.项目采用混合开发,使用H5界面来代替原生界面,H5界面在展示上能比原生更节省内存,和提高效率。

好了,基本上采用上面的方式就可以为我们APP的打包省下很大的一部分内存。

Android App开发瘦身大揭秘,让你的App瘦下来 转载https://www.codesocang.com/appboke/38289.html

技术博客阅读排行

最新文章