Android apk瘦身

作者: 选一个昵称这么难 | 来源:发表于2017-09-06 13:53 被阅读215次

1.打包之后的apk包含哪些文件

  • classes.dex:是java源码编译后生成的java字节码文件
  • resources.arsc:编译后的布局文件
  • AndroidManifest.xml
  • assets:目录可以存放一些配置文件
  • lib目录下的子目录armeabi存放的是一些so文件或者jar包
  • META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全
  • res:apk图片资源
    2.apk打包的过程
    打包流程
    流程:
    ① 清单文件(Manifest),资源文件(Resource),资产文件(Assets) 通过aapt工具生成打包之后的资源文件和索引文件(R),其中打包之后的资源文件就是解压一个APK看到的resources.arsc文件.
    ② 源代码和Lib文件由javac编译成.class文件,再由dx工具编译成.dex文件
    ③ 然后再由apkbuilder –u工具生成没有签名的apk文件
    ④ 最后又jarsigner加入签名
    3.下面开始进入正题
    方法一:开启minifyEnabled
    这个操作在app的gradle里面配置
buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

默认配置是false,改成true即可,就是为了开启proguard
proguard的作用除了混淆,还能删除无用的类和方法,已达到瘦身的目的
方法二:开启shrinkResources

release {
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

该功能是去除项目中临时展示的图片,比如在布局文件中某个imageview设置的src
方法三:压缩图片
就是想办法使项目中使用图片变小些,可以参考一下几种方法:
(1)TinyPNG 使用一种智能有损压缩技术(通过降低图片中的颜色数量,来减少存储图片所需要的数据)来降低 PNG 图片的大小。这样的压缩对图片的效果影响是很小的,但是可以大大降低图片的大小,并且还能保持 PNG 的 透明度
因为 TinyPNG 将 PNG 图片压缩成 8 位的 PNG(而不是24位),所以它的压缩比例非常高,至少都有 50% 以上的压缩比例,有些甚至可以达到70%,并且压缩之后的图片和原图人眼基本看不出区别。
参考网站:http://tinypng.com/
(2)对于非透明的大图,使用jpg比png大小更有优势.
(3)使用webp格式的图片,从Android 4.0+开始原生支持,但是不支持包含透明度,直到Android 4.2.1+才支持显示含透明度的webp,使用的时候要特别注意
了解webp, 请点击:
http://isux.tencent.com/introduction-of-webp.html

方法四:尽量使用代码生成图片
比如可以用shape文件代替图片

方法五:apk包打好以后,可以删除res目录下drawable-ldrtl文件夹
drawable-ldrtl是layout-direction-right-to-left的缩写,意味着布局方式从右到左,主要是为了适配阿拉伯语用。这应该是API17,即Android4.2上新出的功能

附录:
辅助分析工具

  • nimbledroid:能够得知app内存使用,网络使用,磁盘输入/输出,文件大小等一些NimbleDroid认为至关重要的数据;

相关文章

  • app性能优化

    Android冷启动时间优化 Android开发——避免内存泄露 APK瘦身实践 APK瘦身记,如何实现高达53%...

  • apk瘦身

    Android性能优化之APK瘦身详解(瘦身73%) - 简书

  • Android Apk包瘦身

    目录 1、Android 编译打包流程2、Apk包瘦身 1、Android 编译打包流程及APK构成 1.1、An...

  • android文章精选 - 收藏集 - 掘金

    Android APK 瘦身 - JOOX Music 项目实战 - Android - 掘金导语 JOOX Mu...

  • android apk 瘦身整理

    android apk 瘦身整理 @(android)[图片, resource.aresc, 代码库优化 , 代...

  • 【转】APK瘦身实践

    本文转自:Apk瘦身实践作者:杰风居 转载序:Android开发中,apk瘦身还是很有必要,尤其现在的APP动辄十...

  • Android apk 瘦身

    背景 在开发的过程中,发现应用程序apk大小越来越大,相对于它能提供的功能而言,它是在不应该拥有那么大的体积,没干...

  • Android apk瘦身

    1.打包之后的apk包含哪些文件 classes.dex:是java源码编译后生成的java字节码文件 resou...

  • Android apk 瘦身

    apk瘦身的意义我就不多说了,首先让我们了解一个apk的组成部分,说简单点,一个apk文件就是包含一些文件的压缩包...

  • Android APK瘦身

    背景 公司项目目前处于收尾阶段,对APP的更改在于一些细节和逻辑的调试。因此准备对APK进行瘦身。 瘦身前 在未进...

网友评论

    本文标题:Android apk瘦身

    本文链接:https://www.haomeiwen.com/subject/njamjxtx.html