zoukankan      html  css  js  c++  java
  • Android 包体积优化

    1.精简支持语言:

    我司应用的用户几乎都是中国人,所以我们去掉了多语言的支持,只保留了中英文两种配置,甚至可以把应用中使用字符串全写在values/string.xml中,只保留英文一种。对应的配置是

    resConfigs "en", "zh-rCN"
    

    2.精简支持的cpu架构:

    目前大部分手机都支持arm-v7a,所以应用中只保留了一种架构支持,其他应用可根据实际情况,灵活选择。对应的配置是

    ndk {
        abiFilters 'armeabi-v7a'
    }
    

    3.只使用一套设计图:

    一般情况下项目中可以只保留一套设计图比如xxhdpi, 如果某些地方适配不好,单独为它添加图片

    4.proguard代码混淆

    开启代码混淆也是降低apk体积的重要手段,可以删除没有使用的代码,并且可以对代码进行压缩。

     
    5.资源动态加载

    可以将一些不必要资源放入网络中,等需要时再下载,比如:

    • emoji表情
    • 换肤资源
    • 动态添加插件化模块
    6.去除无用资源

    通过Android Studio提供的 Remove Unused Resource功能物理移除无用资源;

    gradle配置 shrinkResources 打包过程中去掉无用的资源文件。

    但是使用的时候需要谨慎,如果代码中存在getIdentifier方式获取资源文件,切记不要删除,需要写入raw/keep.xml文件中,避免被删除,特别要注意第三方库的资源文件。

    7.资源混淆工具

    腾讯的AndResGuard和字节跳动的AabResGuard

    8.其他

    • 将项目中的图片通过AndroidStudio工具转成webp格式
    • 将项目中的png图片使用tinypng进行压缩
    • 一些可以用代码实现,也可以用图片实现的,需要做一下权衡。能用shape就绝不用图片,对于纯色或渐变的图片,能用shape渲染的就优先使用shape。
    • 尽量少使用gif图,gif体积较大
    • 尽量避免使用Lottie,它会在asset中引入json文件



    作者:yi_zhe
    链接:https://www.jianshu.com/p/c76a032b0f4c
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    WINCE/WM5.0如何让安装完后自动运行程序
    Android 图片透明度处理代码
    windows mobile UI 自定义开始菜单图标
    Windows mobile 6捕获键盘操作
    HTTP的post和get总结
    提供一个Windows mobile Native UI 程序,循序渐进开发,并附有代码!
    Windows Mobile 中ComboBox【下拉列表】的使用
    注册表修改今日桌面左右软键的功能
    .net compact framework 注册表操作
    两种实现Toast 的例子(图片&文字)
  • 原文地址:https://www.cnblogs.com/wytiger/p/12951501.html
Copyright © 2011-2022 走看看