美文网首页
Android资源压缩总结

Android资源压缩总结

作者: Allenlll | 来源:发表于2019-01-03 17:58 被阅读10次
    • 在buildTypes中开启资源混淆和图片资源压缩
        buildTypes {
            release {
                signingConfig signingConfigs.release
                //开启资源混淆
                minifyEnabled true
                //压缩无用资源
                shrinkResources true
                //zipAlign优化
                zipAlignEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
                applyBuildConfigField("release",buildTypes.release)
            }
        }
    
    • 使用AndroidStudio的Lint工具
      路径Analize--inspectCode,检查无用代码
    • 只保留中文资源
      一些第三方包中有其它语言资源
       android{
            defaultConfig{
                resConfigs 'zh'
            }
        }
    
    • redex
      faceBook提供的字节码优化工具,可以使包更小,速度更快,但安装比较麻烦
      命令行:redex path/to/your.apk -o path/to/output.apk
      地址:官方地址
    • 设计阶段对图片进行压缩
      tynypng等
      jpg代码png,webp代替gif,webp支持透明度,qulity=75比较好
    • 使用vectorDrawable
      vectorDrawable是矢量图svg的压缩版,只采用了path标签
      vectorDrawable占用空间小,缩放不失帧,有转化工具可以把svg文件转化为vectorDrawable的path字符串,可以对Path应用属性动画,实现一些复杂路径的动画
      配置:
     android{
            defaultConfig{
                vectorDrawables.useSupportLibrary = true
            }
        }
    
        dependencies{
            //解决兼容性问题
            compile 'com.android.support:appcompat-v7:25.3.1'
        }
    

    -AndResGuard
    微信开源组件,可以对资源进行混淆,效果类型java的Proguard,缩短路径,降低可读性,压缩资源。

    • 删除不必要的so文件
      只使用armeabi中的so
      android{
            defaultConfig{
                ndk{
                    abiFilters 'armeabi'
                }
            }
        }
    
    • 使用provide编译release中不需要的库
      在debug时使用反射初始化,以免在release时不能编译通过
    • 清理第三方库中重复的代码

    相关文章

      网友评论

          本文标题:Android资源压缩总结

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