Android培训
美国上市Android培训机构

400-111-8989

热门课程

Android apk 瘦身方法,教你怎么给你开发的Android apk瘦身

  • 时间:2017-05-02
  • 发布:Android培训
  • 来源:Android教程

Android apk瘦身的意义我就不多说了,首先让我们了解一个apk的组成部分,说简单点,一个apk文件就是包含一些文件的压缩包。作为开发者,我们通过使用unzip命令解压这个apk文件一探apk的内部结构。下面的文件结构就是我们使用unzip .apk1这个命令所获得的:

Android apk 瘦身

了解完apk的组成部分后,apk瘦身我们大致可以从这几方面下手: 1 减少java代码 2 减少资源文件 3 减少native_code

所以我们得养成良好的编程习惯,删除不必要的代码和重复无用的一些资源文件,比如图片,xml等。尽可能重用一些资源。但是如果我们是接手别人项目或者之前习惯不好,而导致太过臃肿等问题,这时候我们可以借助一些工具。

使用 Proguard

Proguard 是一个很强悍的工具,它可以帮你在代码编译时对代码进行混淆,优化和压缩。它有一个专门用来减少apk文件大小的功能叫做 tree-shaking。Proguard 会遍历你的所有代码然后找出无用处的代码。所有这些不可达(或者不需要)的代码都会在生成最终的apk文件之前被清除掉。Proguard 也会重命名你的类属性,类和接口,然整个代码尽可能地保持轻量级水平。

也许现在你会认为 Proguard 是一个相当有效地工具。但是能力越大,责任也就越大。现在许多开发这认为Proguard有点让人不省心,因为它会重度依赖反射。哪些类或者属性需要被处理或者不能处理都要开发者对 Proguard 进行配置。

使用 Lint

Proguard 只会对 Java 代码起作用,那么对哪些资源文件呢?比如一张图片my_image在res/drawable文件夹中,没有被使用,Proguard 只会移除掉R类中的引用,但是图片依然还在文件夹中。

Lint 一个静态的代码分析器,你只需通过调用./gradlew lint这个简单地命令它就能帮你检查所有无用的资源文件。它在检测完之后会提供一份详细的资源文件清单,并将无用的资源列在“UnusedResources: Unused resources” 区域之下。只要你不通过反射来反问这些无用资源,你就可以放心地移除这些文件了。

Lint 会分析资源文件(比如/res文件夹下面的文件) ,但是会跳过 assets 文件 (/assets文件夹下面的文件)。事实上assets 文件是可以通过它们的文件名直接访问的,而不需要通过Java引用或者XML引用。因此,Lint 也不能判定某个 asset 文件在项目中是否有用。这全取决于开发者对这个文件夹的维护了。如果你没有使用某个asset 文件,那么你就可以直接清除这个文件。

对资源文件进行取舍:

这里主要涉及到屏幕适配的图片问题,可以根据我们产品用户的层次来进行适配,现在市场上大多数手机都是1280 * 800 以上的,我们只需适配一两套图片即可,我通常用的都是xhdpi。

上一篇:Android的UI可视化界面怎么设置布局,Android UI可视化教程
下一篇:如何开发一个Android App,Android APP 开发教程

Android eclipse开发环境配置,Windows 32位/64位系统 Android eclipse环境搭建教程

Android APP开发学习线路图,Android APP 开发要掌握这些技能

Android应用开发实战教程,开始你Android应用开发的第一步

如何为安卓开发搭建一个持续集成(CI)服务器

选择城市和中心
贵州省

广西省

海南省

台湾