APK瘦身

作者: gadfly_only | 来源:发表于2016-06-24 13:53 被阅读190次

    参考文章:

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

    相关文章

      网友评论

          本文标题:APK瘦身

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