APK瘦身

参考文章:

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°得到的,那么你就可以移除一种图片,通过代码实现。

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/ic_arrow_expand"
    android:fromDegrees="180"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="180" 
/>

6.资源混淆工具-微信

7.Android是如何进行编译

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 出品,支持对音频的采样率,分辨率和声道数目做更改,以此达到裁剪音频的目的(采样率,分辨率和声道数目是音频文件格式的关键参数,决定着音频文件的大小)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 之前我在微信群里面有说到,随着Android开发越来越成熟,关于Android方面的技术文章越来越多,作为开...
    张明云阅读 11,592评论 6 65
  • 最近几周一直在研究如何为APK瘦身,折腾了很久,是时候写篇博客总结一下了,虽然已经准备了下周一要在客户端周会分享用...
    风清袖一阅读 4,785评论 1 10
  • 瘦身意味了什么呢?人们瘦身味了更好的身体和更匀称的身材。那么app呢?提高下载转化率,用户在无wifi情况下少用流...
    乐之飞于阅读 3,772评论 0 3
  • 多年未下雪的冬天,一场雪让杭州变成了钱塘,于是乎关于雪的话题变成热门,不论是朋友圈还...
    碧水雲天阅读 1,769评论 2 3
  • 朱会利 焦点讲师班五期 洛阳 坚持分享第797《付出即是回报》2019.1.12 冬天的早晨,走在校园的水...
    天天_27d6阅读 3,570评论 0 2

友情链接更多精彩内容