zoukankan      html  css  js  c++  java
  • 如何对apk进行瘦身?

    2020,回归后第一篇博客,直接分享之前自己总结记录后的笔记,
    我们都知道apk是由:
    • asserts
    • lib
    • res
    • dex
    • META-INF
    • androidManifest
     
    apk瘦身:
    1、控制raw中资源的大,优化asset下的资源文件,能不放在客户端的资源就不放在客户端,assets目录允许下面有多级子目录,而raw下不允许存在目录结构,assets中的文件不会产生R文件映射,但raw会
    2、删除无用字体,对于有些只会用在logo中的字体,将字体文件进行删减处理
    3、减少icon-font的使用,利用svg进行代替
    4、动态下载资源,减少layout文件,复用资源文件
    5、压缩资源文件:在需要的地方解压文件
    6、配置abiFilters:一个硬件设备对应一个架构(mips、arm或者x86),只保留与设备架构相关的库文件夹(主流的架构都是arm的,mips属于小众,默认也是支持arms的so的,但x86不支持)
    7、优化resuoures.arsc:该文件不能被压缩,每次读取前系统必须进行解压的操作,这就会有一些性能和内存的开销,所以删除无用的资源映射
    8、开启代码混淆,使用微信资源压缩打包工具
    9、优化图片资源:压缩图片,并使用webp格式
    10、打包时剔除无用资源
    11、删除无用的语言,国内的app用中文就够了
    13、统一应用风格,减少shape文件,使用toolbar,减少menu等布局文件
    14、开启去除无用资源,在build.gradle中使用shrinkResources去除无用资源
    15、避免重复库,清理第三方库和冗余代码
     
    具体的操作步骤:
    一:监控与上个版本的变化
    1、每个dex方法数的变更情况
    2、每个模块线性内存的变化情况
    3、没有alpha通道的png图,先压缩成png8,或者可压缩成webp减少体积
    4、超过一定数值的大文件,特别是图片资源可采用有损压缩
    5、安装包的大小,文件数变化
    6、新增文件,减少文件,文件大小发生变化的情况
    二:删除无用资源
    三:语言包动态加载
    四:资源混淆
    之前总结的tips,直接给的结论, 但可能存在错误的地方,希望不吝指出,后续会不断完善。
     

  • 相关阅读:
    jenkins+svn+Ant+tomcat+非maven项目构建
    阿里云服务器CentOS6.9安装jenkins
    jenkins构建项目时报错缺少com.sun.image.codec.jpeg包解决方案
    不间断会话服务:screen
    数据库备份与还原:mysqldump,source
    多表更新:update,join
    删除数据高级用法:delete,truncate
    远程传输文件命令:scp
    远程控制服务:配置sshd服务,密钥验证登陆
    绑定多块网卡:负载均衡
  • 原文地址:https://www.cnblogs.com/yuanting/p/13519340.html
Copyright © 2011-2022 走看看