减小apk体积二

Android Studio如何减小APK体积 阅读详情

主流apk大小


一   开启minifyEnabled代码混淆

除了能对代码优化混淆,还能对字节码文件进行优化,缩减体积,一般能减小500k左右

Proguard示例代码

-optimizationpasses 5          # 指定代码的压缩级别
-dontusemixedcaseclassnames   # 是否使用大小写混合
-dontpreverify           # 混淆时是否做预校验
-verbose                # 混淆时是否记录日志

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  # 混淆时所采用的算法

-keep public class * extends android.app.Activity      # 保持哪些类不被混淆
-keep public class * extends android.app.Application   # 保持哪些类不被混淆
-keep public class * extends android.app.Service       # 保持哪些类不被混淆
-keep public class * extends android.content.BroadcastReceiver  # 保持哪些类不被混淆
-keep public class * extends android.content.ContentProvider    # 保持哪些类不被混淆
-keep public class * extends android.app.backup.BackupAgentHelper # 保持哪些类不被混淆
-keep public class * extends android.preference.Preference        # 保持哪些类不被混淆
-keep public class com.android.vending.licensing.ILicensingService    # 保持哪些类不被混淆

-keepclasseswithmembernames class * {  # 保持 native 方法不被混淆
    native <methods>;
}
-keepclasseswithmembers class * {   # 保持自定义控件类不被混淆
    public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {# 保持自定义控件类不被混淆
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆
    public void *(android.view.View);
}
-keepclassmembers enum * {     # 保持枚举 enum 类不被混淆
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆
    public static final android.os.Parcelable$Creator *;
}

-keepattributes Signature #过滤泛型

-ignorewarnings #忽略警告

#zxing
-dontwarn com.google.zxing.**
-keep class com.google.zxing.** { *;}

#gson
-dontwarn com.google.gson.**
-keep class com.google.gson.** { *;}


二  开启 shrinkResources 

能够删除无用资源,一些临时占位的图片


这样开启上面二个功能就好了

三 使用tinypng有损压缩

png无损,jpg有损;jpg会有一定的压缩,占体积小;


启动页,引导页,大背景,此类图片大概130kb左右,可以使用jpg替代;


同一张图片,jpg比png大概小40%左右,瘦身大概300kb左右;

四 so库的合理建议

每每集成三方看见一大丢的so库感觉无法抉择

只能是参考别人的

armeabi
默认选项
支持所有 ARM* 设备
armeabi-v7a 
支持基于 ARM* v7 的设备
支持硬件 FPU 指令
支持硬件浮点运算x86
x86  
支持基于硬件的浮点运算的 IA-32 指令集
mips
支持二进制接口

根据so库功能决定;根据自身应用想达到的兼容效果决定
瘦身效果明显,可能瘦身0-10m左右
分析了几个大型应用,armeabi必须包含,x86选择性包含,其他指令集极少包含

微薄 armeabi
qq armeabi
微信 armeabi
uc浏览器 armeabi armeabi-v7a
美团 armeabi
天猫 armeabi
58同城 armeabi
今日头条 armeabi armeabi-v7a

这么牛逼的公司都选择armeabi ,你懂的

五 切图分辨率




六 对assets目录优化


assets目录下的db文件,静态文本都可以通过gzip之类的压缩
瘦身效果视静态文件大小,瘦身大概0-3m


七 选择性使用webp图片


参考网站

http://isux.tencent.com/introduction-of-webp.html


八 使用微信ResProguard方案


参考网站

http://blog.youkuaiyun.com/rzleilei/article/details/52205545


九 小细节处理 瘦身效果有限


1.一些纯色背景,边框使用shape文件替换

2.使用矢量图

Vector图像刚发布的时候,是只支持Android 5.0+的,对于Android pre-L的系统来说,并不能使用,所以,可以说那时候的Vector并没有什么卵用。
从AppCompat 23.2之后,Google对p-View的Android系统也进行了兼容,也就是说,Vector可以使用于Android 2.1以上的所有系统,只需要引用com.android.support:appcompat-v7:23.2.0以上的版本就可以了,这时候,Vector应该算是迎来了它的春天。
简单来说,一些矢量图可以用代码完成;
看具体情况,大概10kb左右;

瘦身无极限



APK体积优化(附Android Studio操作指引) 目录 1. 压缩APK体积的意义 2. APK的构成与打包 3. res资源的压缩和优化 3.1 删除没有被引用的资源 3.2 使用WebP压缩图片 3.3 使用TinyPNG压缩图片 4. 删除多余的代码(未被引用的类/方法/变量) 4.1 代码混淆 4.2 利用Lint查找无用代码 5. Zip格式优化 6. classes.dex优化 7. lib优化 8. 参考资... 阅读详情

相关推荐

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

果果爱腰果的博客 850

Android优化——proguard之缩减体积

文章目录Android Proguard代码压缩(code shrinking)原理测试自定义保留类资源压缩(Resource Shrinking)自定义保留资源严格引用检查资源压缩测试移除重复资源合并(merge)重复资源 Android Proguard 为了尽可能减小应用的大小,应该启用缩减功能来移除不使用的代码和资源。启用缩减功能后,您还会受益于两项功能,一项是混淆处理功能,该功能会缩短应用的类和成员的名称;另一项是优化功能,该功能会采用更积极的策略来进一步减小应用的大小。 代码压缩(code

Zen@sz 博客 1021

Windows系统离线搭建PyTorch深度学习环境全攻略(CUDA+cudnn实战)

本文提供了一份在Windows系统下离线搭建PyTorch深度学习环境的完整实战指南。文章详细讲解了如何在没有网络连接的情况下,正确安装和配置CUDA、cudnn以及PyTorch,并构建独立的Python虚拟环境。重点强调了版本依赖关系的重要性,并提供了从驱动准备到环境验证的每一步操作,旨在帮助用户高效、稳定地部署可复用的GPU深度学习开发环境。

table的专栏 579

最佳实践 —— 详细谈谈如何减小APK体积

转载请注明出处: http://www.cnblogs.com/soaringEveryday/p/5254520.html 随着Android移动开发的需求越来越复杂,我们不可避免的遇到发布出去的apk体积越来越大的问题,目前超过10MB、20MB的apk已经是很常见的事情了,但是依然能够看到一些apk的体积控制的很小。apk体积增大源于: 新需求不断的提出 需要支持高分辨率的屏...

weixin_30314793的博客 880

scrapy - 美团民宿 实战练习

目录结构 items.py import scrapy # 民俗名称,地区,价格,房间类型及数量,床的数量,可住几人 class MeituanItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() title = scrapy.Field() place = scrapy.Field() price = scrapy.F...

小刘的博客 2664

基于KiCad的STM32最小系统设计实战案例(含PCB布线)

手把手带你用KiCad完成STM32最小系统设计,涵盖原理图绘制、封装匹配、规则约束设置及关键信号PCB布线技巧;全程基于开源EDA工具KiCad,强调实操细节与常见坑点规避。

weixin_42452483的博客 357

Android优化篇之APK体积优化

在平常开发过程中,随着应用功能不断增加和版本功能迭代,APK的体积大小在不知不觉中不断增大,而APK体积大小会影响用户首次下载安装应用或更新应用的时长和流量消耗。因此,如何有效合理的优化APK的体积也是在平常开发中需要留意的。 一、合理选择图片类型 在APP中图片就占据了很大的一部分体积,所以图片的优化是我们必须要关注的点。 平常使用到的图片类型主要有jpg、png、webp、svg等。 jpg是有损压缩格式,使用的一种失真压缩标准方法,24 bit真彩色,内容比GIF丰富,不支持动画、不支持透明色。

犀利的小牛 2566

DM9000有线网卡驱动编写

DM9000有线网卡驱动编写 1.DM9000简介   DM9000 是一款完全集成的、性价比高、引脚数少、带有通用处理器接口的单芯片快速以太网控制器。 自 带一个 10/100M PHY 和 4K 双字的 SRAM ,DM9000A 为适应各种处理器提供了 8 位、16 位数据接口访问 内部存储器,DM9000 拥有自动协商功能,DM9000 特性如下:   1.集成自适应 10/100M 收发器。   2.内置 16k 字节的 SRAM。   3.支持硬件帧校验。   4.兼容 3.3V 和 5.0V

weixin_44453694的博客 4672

Android Apk体积优化

Android Apk体积优化原文地址:How you can decrease application size by 60% (In only 5 minutes)?看到这个标题,你可能很感兴趣,当我看到这个标题的时候,我也很感兴趣。其实也就是减小应用体积的一些技巧,网络上也有不少体积优化的相关文章,这里的这些技巧简单易用,可能你会用到。1. 越小越好当App应用做得比较大的时候,应用大小这个事

Wman 3295

芯片设计数字后仿与SDF文件:原理、流程与实战调试指南

在数字芯片设计流程中,时序验证是确保芯片功能正确与性能达标的核心环节。其原理在于通过精确的物理延迟模型,模拟信号在真实硅片上的传播行为,从而暴露理想仿真中无法发现的时序问题。这项技术的核心价值在于它是连接前端逻辑设计与后端物理实现的桥梁,能有效发现建立时间/保持时间违例、时钟偏斜、竞争冒险等关键风险,是保障芯片一次流片成功的关键步骤。其典型应用场景包括高性能计算单元、复杂SoC以及低功耗设计中的状态切换验证。本文聚焦于数字后仿真的具体实施,深入解析SDF文件的结构与反标机制,并提供从环境搭建、波形分析到与静

weixin_34279184的博客 382

从SAR信号到洪涝地图:基于Sentinel-1数据的水体快速提取实战

本文详细介绍了如何利用Sentinel-1 SAR数据快速提取水体信息并生成洪涝地图的实战方法。通过预处理五部曲和SDWI指数计算,结合具体案例展示了SAR技术在洪涝灾害应急监测中的高效性和准确性,为救援决策提供关键支持。

weixin_29201313的博客 463

微信Android资源混淆打包工具,如何让应用安装包立减1M

微信中的资源混淆工具主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了安装包体积,同时也增加了逼格,提升了反破解难度。本文主要是对此做一个简单分析。

腾讯Bugly的专栏 3557

DW1000开发笔记(一)DW1000芯片概览

一、DW1000介绍 DW1000(官方网站)是一个完全集成的低功耗射频收发器,遵循IEEE 802.15.4-2011 超宽带标准。它可以被用于双向测距或者TDOA定位系统中,精度为10cm。它使用了从3.5Ghz-6.5Ghz的6个射频频段,支持100kbps、850kbps、6.8Mbps的数据速率,并且可以在多径环境下进行处理,所以可在高反射的环境下应用。 DW1000内部最高层次的概览图如下: 二、DW1000的引脚和接口 DW1000芯片使用QFN-48封装,引脚图如下: DW1000内部

Mculover666的博客(嵌入式) 1万+

减小apk体积之减小图片的大小

在我的一个安卓项目中apk肯定是有不少图片资源,减少图片的大小就直接的减少了apk不少大小,今天推荐2个方式来减少图片的大小 一、将图片进行压缩: 对于设计师给过来的图片,往往是没有太多做压缩处理,导致APK体积很大。我们可以通 过第三方工具做图片压缩处理,这个声称无损清晰度的压缩网站确实可以让我们的图片变 小不少:https://tinypng.com

qq_30587885的博客 582

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

react-native优化--压缩apk安装包大小

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33672109的博客 2316

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ReactNative之关于Android的CPU架构

          好久没写博客了,现在来写一下关于cpu架构的问题.React Native支持的是abiFilters“armeabi-v7a”,“x86”,俩种cpu架构。这个时候我们需要引入第三方地图,有很多需要到所以库。这个时候我们需要的x86和armeabi-V7A俩个架构下面都把所以库复制一次。那么你的APK会贼大。然后如果使库没有少添加一个平台......那么后果是运行到这一款手机...

fox_wei的博客 852

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android .so文件

比如说我要更新高德地图, 然后我又不想把高德地图里面的所有手机系统的so包都拷进去来兼容, 只拷armeabi这个文件想压缩一下项目,但是报错的可能性非常大,想要兼容其他什么64位,32位,可以用以下两种方法配置。 第一种方法就是在app目录下的build.gradle里配置 android { ... defaultConfig { ...

myou00的博客 239

Android代码混淆后查看日志

Android中可以通过混淆减少apk的大小,提高apk反编译的难度。 但是在混淆过后会遇到一个问题,就是日志,比如说错误日志的函数会变成abcd. 怎么解决这个问题呢 通过mapping文件 mapping文件是混淆后的代码跟正常代码的一个映射文件 通过这个文件可以把混淆后的代码转换成正常的代码展示 mapping文件在minifyEnabled 为false的时候,是不会产生的。当我们设置了minifyEnabled 为true,也就是开启混淆之后,默认是会在app下的build/outpus/mapp

肖旺银的博客 3515

android 减小apk大小,Android Studio如何减小APK体积

最近在用AndroidStudio开发一个小计算器,代码加起来还不到200行。但是遇到一个问题,导出的APK文件大小竟然达到了1034K。这不科学,于是就自己动手精简APK。下面我们大家一起学习怎么缩小一个APK的大小,以hello world为例。新建工程,最低版本支持2.3.3,其他默认。工程目录是这样的:我们直接签名导出APK,看看大小如何,1M啊!( ⊙ o ⊙ ) 什么鬼:怎么可能呢是吧...

weixin_29216049的博客 2172

android studio 减小APK体积

我整理的一些关于【IDE】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnN如何在 Android Studio 中减小 APK 体积 作为一名 Android 开发者,了解如何有效地减少 APK 的体积是非常重要的。APK 的体积不仅影响用户下载应用的时间,也直接...

weixin_42299169的博客 501

【转】最佳实践 —— 详细谈谈如何减小APK体积

本篇文章转载自http://www.cnblogs.com/soaringEveryday/p/5254520.html 作者写的很详细 格式略有调整以下正文转载请注明出处: http://www.cnblogs.com/soaringEveryday/p/5254520.html随着Android移动开发的需求越来越复杂,我们不可避免的遇到发布出去的apk体积越来越大的问题,目前超过10MB、20

benxhin优快云的博客 587

革命性减小APK体积:ExoPlayer动态功能模块集成指南

你还在为视频应用APK体积过大导致用户下载转化率低而发愁吗?本文将带你探索如何通过ExoPlayer的动态功能模块,按需加载解码器组件,将APK体积减少30%以上,同时保持完整的媒体播放能力。读完本文你将掌握:动态模块配置方法、解码器按需加载实现、体积优化数据对比以及常见问题解决方案。 ## 为什么需要动态功能模块 移动应用用户对安装包大小极其敏感,每增加1MB都可能导致下载转化率下降2%。传...

gitblog_00580的博客 1036

Android APK 包体积优化方案

Android APK 包体积优化方案

qq_16318175的博客 920

Android APK体积优化指南:清理项目,打造更小的APK、更快的构建速度和更好的开发体验

在任何软件项目中,开发是一个持续的过程,随着时间的推移,代码库会变得越来越复杂。这种复杂性可能导致构建时间变慢、APK体积变大,以及开发体验变得不那么高效。在本指南中,我们将介绍一些保持您的Android项目清洁高效的实践方法。

虎哥LoveDroid 4103

Android开发——减小APK大小

0.前言APK的大小对APP的加载速度,使用内存大小和消耗功率多少有一定影响。如何减小APK的大小对于Android开发者是一个永恒的话题。那么首先就来了解一下APK的组成结构。1.APK的组成结构META-INF:包含CERT.SF和CERT.RSA签名文件,和MANIFEST.MF清单文件。assets:包含APP的assets资源,代码中可以通过AssetManager对象访问。res:包...

关于Android开发的一些技术点总结 ╮( ̄▽ ̄”)╭ 1万+
上一篇: 减小APK体积
下一篇: https 证书验证 okhttp https设置
okmin3
博客等级 码龄10年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值