APK瘦身

参考文章:

  • 给APK瘦身
  • Android安装包相关知识汇总
  • 安装包立减1M--微信Android资源混淆打包工具
    APK瘦身记,如何实现高达53%的压缩效果

1.使用Proguard

debug {    
  // 显示Log    
  buildConfigField "boolean", "LOG_DEBUG", "true"
  versionNameSuffix "-debug"          
  minifyEnabled false    
  zipAlignEnabled false    
  shrinkResources false    
  signingConfig signingConfigs.debugConfig
}
release {   
  // 不显示Log    
  buildConfigField "boolean", "LOG_DEBUG", "false"    
  //混淆开关    
  minifyEnabled true    
  //是否支持本地化整理
  pseudoLocalesEnabled true    
  //是否zip对齐    
  zipAlignEnabled true    
  //是否打开debuggable开关    
  debuggable false    
  //是否打开jniDebuggable开关    
  jniDebuggable false    
  //混淆配置文件    
  proguardFiles getDefaultProguardFile('proguard-android.txt')    
  //签名配置    
  signingConfig signingConfigs.releaseConfig
}

2.使用 Lint

Lint 一个静态的代码分析器,你只需通过调用./gradlew lint或者gradle lint

Wrote HTML report to file:///Users/bjhl/Work/Heart/app/build/outputs/lint-results.html

此文件有很多优化建议,包括无用资源、重复定义、代码优化等。

3.资源文件最少化配置

Android 开发经常会依赖各种外部开源代码库,比如Android Support Library, Google Play Services, Facebook SDK 等等。但是这些库里面并不是所有的资源文件你都会用到。比如,Google Play Services 里面会有一些为其他语种提供翻译,而你的app又不需要这个语种的翻译,而且这个库里面还包含了我的app中不支持的 mdpi 资源文件,还好从Android Gradle Plugin 0.7 开始,你可以配置你的app的build系统。这主要是通过配置resConfig和resConfigs以及默认的配置选项。下面的 DSL (Domain Specific Language)就会阻止 aapt(Android Asset Packaging Tool)打包app中不需要的资源文件。

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

一般说来Android 使用Java 代码即可以满足大部分需求,不过还是有一小部分案例需要使用一些 native code。就像之前对资源文件那样opinionated,你可以这些 native code opinionated。 在当前的Android 生态系统中,让你的app支持 armabi 和 x86 架构就够了。这里有一篇相当不错的关于如何瘦身native 代码库的文章,你可以参考参考。

5.尽可能地重用

如果系统中有两种图片,一种图片是另一种图片翻转180°得到的,那么你就可以移除一种图片,通过代码实现。



6.资源混淆工具-微信

  • github

7.Android是如何进行编译

APK瘦身_第1张图片
Paste_Image.png

6.常用工具

TinyPNG:https://tinypng.com/ ,支持对 PNG/JPEG 文件做压缩处理,效果不错。
pngquant:https://pngquant.org/ , 支持 PNG 压缩,有时候 TinyPNG 处理过的图片噪点会稍多,可以考虑用 pngquant 来处理。
ImageOptim:https://imageoptim.com/mac ,支持压缩 PNG/JPEG/GIF ,而且效果显著,可以看看这里 https://www.diycode.cc/topics/496 ,遗憾的是它只支持 Mac ,Windows 党很难过。
mozjpeg:https://imageoptim.com/mozjpeg , 用于 PNG 转 JPEG、JPEG 压缩,效果很好。
Adobe Audition CC:http://www.adobe.com/cn/products/audition.html ,Adobe 出品,支持对音频的采样率,分辨率和声道数目做更改,以此达到裁剪音频的目的(采样率,分辨率和声道数目是音频文件格式的关键参数,决定着音频文件的大小)。

你可能感兴趣的:(APK瘦身)