首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

减小APK大小-仅为某些平台构建so文件

减小APK大小是在移动应用开发中常遇到的问题之一。为了减小APK大小,可以采取以下几种方法:

  1. 代码优化:通过优化代码结构和算法,减少冗余代码和不必要的计算,以减小APK的体积。此外,可以使用代码混淆工具来压缩和加密代码,减小代码的体积。
  2. 资源压缩:对于图片、音频、视频等资源文件,可以使用压缩算法进行压缩,减小文件的体积。同时,可以根据不同的屏幕密度和设备类型提供不同的资源文件,避免不必要的资源加载。
  3. 动态加载:将一些较大的资源文件或功能模块设计为动态加载的方式,在应用启动时不加载这些资源,而是在需要使用时再进行下载和加载。这样可以减小APK的体积,并且提高应用的启动速度。
  4. 使用分包:将应用的功能模块拆分为多个独立的模块,按需下载和安装。这样可以减小单个模块的体积,提高应用的灵活性和可扩展性。
  5. 使用资源压缩工具:可以使用一些专门的资源压缩工具,如Tencent Aapt2、AndResGuard等,对APK中的资源文件进行压缩和优化,减小APK的体积。
  6. 使用瘦身工具:可以使用一些专门的APK瘦身工具,如Tencent VAS、AndResGuard等,对APK进行自动化的瘦身处理,去除无用的代码和资源,减小APK的体积。
  7. 使用动态库:将一些常用的功能模块设计为动态库(so文件),在应用安装时只需安装一次,多个应用可以共享使用,减小APK的体积。

总结起来,减小APK大小的方法包括代码优化、资源压缩、动态加载、使用分包、使用资源压缩工具、使用瘦身工具和使用动态库等。通过综合运用这些方法,可以有效地减小APK的体积,提升应用的性能和用户体验。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动应用分发服务:https://cloud.tencent.com/product/tcapk
  • 腾讯云移动应用安全服务:https://cloud.tencent.com/product/tas
  • 腾讯云移动应用测试服务:https://cloud.tencent.com/product/tmts
  • 腾讯云移动应用性能监控服务:https://cloud.tencent.com/product/tapm
  • 腾讯云移动应用加固服务:https://cloud.tencent.com/product/tapp
  • 腾讯云移动应用质量分析服务:https://cloud.tencent.com/product/tqa
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

APK瘦身-是时候给App进行减负了!

前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装。前一段时间我司某一App进行APK的瘦身,最终也达到了减小10M的目标,现做一个简单的总结记录。....so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库等。...由此,如果我们想减小lib目录的大小,无非就如下一些常见的策略。 ? so裁剪、删除 对App引入的so文件进行确认哪些是不需要的,哪些是可以进行裁剪压缩的,哪些是可以避免引入的。...动图功能,然后减少Fresco库的依赖,同样可以减小so大小。...所以可以有选择地保留某些架构的so,从而降低lib文件夹的大小

1.1K30

10 个优化技巧,减少 Docker 镜像大小

2:使用 Docker Squash 减小镜像大小 Docker 在构建镜像时创建了很多层。压缩有助于在逻辑层中组织镜像。我们可以控制镜像的结构,而不是让镜像具有多个不必要的层。...python:3.9 的大小约为 1.3 GB,而 python:3.9-slim 的大小仅为 1 GB 左右。 您可以使用 alpine 版本进一步减少镜像。...4:使用多阶段构建减小大小 为了显着减小大小,我们可以使用 docker 多阶段构建的概念。这里我们使用不同的 images/Dockerfile 来构建和打包应用代码。...7:使用 .dockerignore 文件 如果您不想将某些文件复制到 docker 镜像,那么使用 .dockerignore 文件可以为您节省一些空间。...包含一个 .dockerignore 文件减小 docker 镜像大小是一个很好的做法。 .dockerignore 文件示例。

68231

10 个优化技巧,减少 Docker 镜像大小

2:使用 Docker Squash 减小镜像大小 Docker 在构建镜像时创建了很多层。压缩有助于在逻辑层中组织镜像。我们可以控制镜像的结构,而不是让镜像具有多个不必要的层。...python:3.9 的大小约为 1.3 GB,而 python:3.9-slim 的大小仅为 1 GB 左右。 您可以使用 alpine 版本进一步减少镜像。...4:使用多阶段构建减小大小 为了显着减小大小,我们可以使用 docker 多阶段构建的概念。这里我们使用不同的 images/Dockerfile 来构建和打包应用代码。...7:使用 .dockerignore 文件 如果您不想将某些文件复制到 docker 镜像,那么使用 .dockerignore 文件可以为您节省一些空间。...包含一个 .dockerignore 文件减小 docker 镜像大小是一个很好的做法。 .dockerignore 文件示例。

4.4K20

你必须要懂的APK瘦身知识

从公司层面来讲,流量就是钱,减少APP的大小就显得尤为重要。从开发者层面上来讲,你掌握了这个手艺也会略显逼格满满。 废话不多说了,开始正题。 1.APK结构的那些事 知己知彼,方能百战不殆。...另外,我们通过APK Analyser 可以分析 APK ? 2.减小 classes.dex classes.dex 包含了所有 Java 代码。...它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...压缩效率极高,仅为PNG格式的12%。惊喜不惊喜。。。 使用矢量图形 您可以使用矢量图形来创建与分辨率无关的图标和其他可伸缩媒体。使用这些图形可以大大减少您的APK足迹。...构建不会将该文件打包到 APK 之中。 <?xml version="1.0" encoding="utf-8"?

73530

关于Android开发你必须要懂的APK瘦身知识

另外,我们通过APK Analyser 可以分析 APK 02 减小 classes.dex classes.dex 包含了所有 Java 代码。...它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...看下图: 压缩效率极高,仅为PNG格式的12%。惊喜不惊喜。。。 使用矢量图形 您可以使用矢量图形来创建与分辨率无关的图标和其他可伸缩媒体。使用这些图形可以大大减少您的APK足迹。...构建不会将该文件打包到 APK 之中。 <?xml version="1.0" encoding="utf-8"?...有些SO库可以采用网络下载,把负担放到用户安装完应用之后。对于哪些SO文件可以放到网络中加载,还需要看具体业务情况。 题外话,如果运行时找不到SO的话,会导致应用崩溃。

1.1K40

成功逆袭:越来越胖怎么能忍,我的APK瘦身之路!

本文主要是介绍APK瘦身中用到的一些方法。 APK分析 既然是要优化APK大小,那首先就得看下APK文件的构成。...Android Studio在2.2版本添加 APK Analyzer功能,可以直接打开apk文件,如下图所示 ? APK文件主要有如下几部分组成: ?...如果你只想打包某一种屏幕密度的资源,可以使用分包策略,添加如下density配置可以只支持打包xhdpi资源(如果出现某些资源xhdpi没有,而其他文件夹包含的情况也不用担心,gradle会保留相应资源...资源混淆 开源解决方案AndResGuard可以看下,通过使用段路径和压缩可以减小apk,需要注意的是你的项目中某些资源需要keep,减少了1.5M。...2、使用ReDex优化,这是Facebook开源的一个减小安卓app大小以提高性能的工具,集成的话有风险需要多测试,教程。 3、减少java隐藏开销,比如一些自动生成的函数等。

65620

安卓应用告别APK格式

为了进一步降低 APK 大小,我们正计划推出基于纹理压缩格式、图形 API 和新平台功能的分发方案。 动态功能 APK 包含用户首次安装应用时不需要的应用功能代码和资源。...安装早于 Android Lollipop 版本的设备也可以享受安装文件体积缩小的福利,但其 APK 中将包含所有语言。 在如今,很显然构建一个统一的臃肿的 APK 的做法已经过时了。...例如,将 arm64-v8a 的 SOAPK 中去除,只留下 armeabi-v7a 的 SO。但这种做法使得64位 CPU 的手机无法发挥出其64位的运算优势,降低程序运行速度。...当用户下载应用程序安装包时,Google Play 会自动识别用户的语言和 CPU 架构,自动将对应平台 SO 和资源的 APK 下发给用户。...一些开发者甚至可以将他们的 APK 大小减半,而一些知名 app 使用 App Bundle 减小应用体积的数据也有放出来。

1.4K40

Android性能优化(十)之App瘦身攻略

这样就能清楚的看出来资源混淆能减小Apk的原因: resources.arsc变小; 文件信息变小,采用了超短路径,res/drawable-xhdpi/icon.png被修改为R/s/f.png。...在生成SO文件时,需要考虑适配市面上不同手机CPU架构,而生成支持不同平台SO文件进行兼容。...理论上对应CPU架构的So的执行效率是最高的,但是这样会导致在libs目录下放置各个架构平台So文件Apk文件大小自然也就更大了。...那么我们自然想到缩减Libs的目录,一般情况(注意限定)下留下armeabi目录即可,armeabi目录下的So可以兼容别的平台So,但是性能会有所损耗,失去对特定平台的优化。...既缩减了Apk的体积,也不影响性能敏感模块的执行。 ? 移除特定平台So的方式,这样打包就只保存armeabi里的So

1.6K30

Matrix-ApkChecker的实际应用

9项针对特定问题的扫描: 1、ShowFilesSizeTask: 按文件大小排序列出Apk 中包含的文件 (TaskTypeID:3) 可以设置文件大小最小阀值、升降序规则、以及指定固定的文件后缀...3、MultiLibCheckTask: 检查是否包含多个ABI版本的动态库 (TaskTypeID:7) so 文件大小会在Apk文件大小中占较大的比例,每个ABI支持一个或多个CPU指令集,可以根据实际需要...值,我们可以利用结果数据计算出可以通过删除重复文件减小的空间大小 ?...9、UnStrippedSoCheckTask: 搜索apk中未经裁剪的动态库文件 (TaskTypeId:14) so 文件大小会在Apk文件大小中占较大的比例,经过裁剪后,文件大小减小很多。...当RD同学进行过包大小优化后,虽然通过历史趋势图看到了Apk文件整体大小的变化,但是具体删除、修改了哪些内容,QA同学并不知道。通过人工对比优化前后两份测试报告的结果,很麻烦,效率很低。

1K20

再谈Android动态链接库

所谓ABI,是指定义的二进制文件(尤其是.so文件)如何使用指令集,内存对齐到可用的系统函数库,如何运行在相应的系统平台上。...如果项目用到了NDK,Android apk文件将会到位于lib/ABI文件下读取相关.so文件。Android包管理器在安装APK文件时,会自动选择对应系统环境下预编译好的.so文件。...但你不应该从你的应用程序中读取它,因为Android包管理器安装APK时,会自动选择APK包中为对应系统ABI预编译好的.so文件。...体积 现在的apk动辄几十M或者更大,apk大小的精简成为了开发过程中的重要一环。...如果将7种CPU的ABI文件都打包到应用中将是灾难性的,所以,移除不必要的so减小大小是一个不错的选择。

2.4K70

京东金融Android瘦身探索与实践

2.2 SDK大小分析 通过自研的能效提升平台Pandora[7],可以直观地看到SDK的大小,如图4所示: 图4.SDK大小排序(包含版本号) 图5.SDK中包含的SO库列表及大小 根据SDK分析后结合业务...,包括文件名、原始大小、压缩后大小等指标: 图6.APK文件信息大小 对以上日志信息进行逐行解析,根据解混淆后的文件名路径、文件类型进行归类统计,即可得出Apk的总览信息,包括各类型文件的数量、总大小...,经过拆解发现其中的SO库占比很大,因此可以考虑采用动态下载的方式进行改造,进而实现减小体积。...4.2 管控流程 图17.管控流程 根据增加内容、删除内容、增大内容、减小内容、重复文件、代码治理等资源文件的变动情况结合治理管控规范等进行治理,打包构建完成会跟历史版本就行差量对比,获取变化的内容来评估是否具有优化空间...线上管控平台搭建: 前期采用线下的管控治理,实施起来有点耗时,后续会完善线上管控平台的搭建,与整个App发布构建平台进行融合,形成流水线的机制,做好管控。

42210

浅谈extractNativeLibs

,说明当该值设置为false时,apk在安装后不会将lib中的SO文件提取到安装目录,这样的好处在于同样的SO文件不会出现两份,节约空间。   ...第二句和第三句,如果设置为false,apk中的SO文件在打包时将会以未压缩的形式出现,这样系统在加载APK的同时也会将SO文件映射到内存中而无需进行解压缩,提高加载速度;同时由于SO文件未被压缩所以会导致安装包的尺寸会变大...我们建议以未压缩的形式打包原生库,因为这会减小应用安装大小,缩减应用下载大小,并缩短用户的应用加载时间。...不过,如果您希望 Android Gradle 插件在构建应用时打包压缩后的原生库,请在应用的 build.gradle 文件中将 useLegacyPackaging 设置为 true: android...extractNativeLibs对逆向的影响 PatchSo   在逆向中很常用的一个技巧就是对apk安装后的so文件进行patch然后替换原来的so文件,这样可以绕过签名校验。

4.6K31

Android APP 终极瘦身指南

前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装;虽然说APK瘦身对于Android对应用可分配内存的限制影响不大,但是还是有一些影响的。...建议实际工作的配置是只保留armable、armable-x86下的so文件,算是一个折中的方案。...通过查看exploded-aar目录和External Libraries或者反编译生成的APK,尽量避免重复库的大小减小APP大小。...第18条:使用更小的库 同样功能的库在大小上是不同的,甚至会悬殊很大。 如果并无对某个库特别需求而又对APP大小有严格要求的话,比较这些相同功能第三方库的大小,选择更小的库会减小APP大小。...总结 App瘦身是一个长期的过程,建议可以进行每个版本对APK大小进行监控,列出增加和减小的点,做到持续的统计和追踪,从而给公司带来效益。

2.6K10

教程 | 如何用TensorFlow在安卓设备上实现深度学习推断

目前我只使用权重量化来减小模型大小,因为根据 Mac 上的测试结果,完整 8 位转换没有提供额外的好处,比如缩短推断时间。...这个示例中的 gradle 文件帮助我们构建和编译安卓的 TF 库。但是,这个预构建的 TF 库可能不包括模型所有必要的 ops。...我们需要想清楚 WaveNet 中需要的全部 ops,并将它们编译成适合安卓 apk 的.so 文件。...文件: bazel-bin/tensorflow/contrib/android/libtensorflow_inference.so 除了 .so 文件之外,我们还需要一个 JAR 文件。...推断时间在两个平台上都略有增加,而不是减少,因为权重量化有助于缩小文件大小,但不太能优化推断时间或耗电情况。 ? 表 1. 权重量化前后的推断时间。

1.8K50

重磅实战:如何用TensorFlow在安卓设备上实现深度学习,附Demo和源码

目前我只使用权重量化来减小模型大小,因为根据 Mac 上的测试结果,完整 8 位转换没有提供额外的好处,比如缩短推断时间。...这个示例中的 gradle 文件帮助我们构建和编译安卓的 TF 库。但是,这个预构建的 TF 库可能不包括模型所有必要的 ops。...我们需要想清楚 WaveNet 中需要的全部 ops,并将它们编译成适合安卓 apk 的.so 文件。...文件: bazel-bin/tensorflow/contrib/android/libtensorflow_inference.so 除了 .so 文件之外,我们还需要一个 JAR 文件。...推断时间在两个平台上都略有增加,而不是减少,因为权重量化有助于缩小文件大小,但不太能优化推断时间或耗电情况。 ? 表 1. 权重量化前后的推断时间。

2.3K30

Android对so体积优化的探索与实践

总第513篇 2022年 第030篇 减小应用安装包的体积,对提升用户体验和下载转化率都大有益处。本文将结合美团平台的实践经验,分享 so 体积优化的思路、收益,以及工程实践中的注意事项。...该 section 仅指示运行时需要的内存大小,不会占用 so 文件的体积。 .rodata:存放的是一些只读常量。...gnu.version_r 描述了该 so 依赖的所有符号的版本,也供 .gnu.version 索引。因为不同的符号可能具有相同的版本,所以采用这种索引结构,可以减小 so 文件大小。...以一个测试 so 为例,其最终 so 大小为14 KB,但是对应的带调试信息和符号表的 so 大小为 136 KB。...为了降低配置成本、加快优化方案的推进速度、保证配置的有效性和正确性,我们在构建平台上统一支持了 so 的优化(支持使用任意构建工具的项目)。业务只需进行简单的配置即可开启 so 的体积优化。

2.4K31

腾讯会议SDK接入包大小优化实践

Android端接入指引Android TencentMeetingSDK默认包含armeabi-v7a和arm64-v8a这两种架构so,对于绝大多数android机型,现在已经支持运行64位应用,...因此我们可以根据自身情况,通过gradle脚本来配置构建出只包含64位架构soapk减小apk的体积,具体配置如下:android { ......打包架构armeabi-v7a和arm64-v8a双架构arm64-v8a体积减少demo apk大小159.2MB98.9MB↓60.3MBWindows端接入指引tbs打包优化:打包可选择对Release...zip大小261MB155MB106MBMac端接入指引Mac TencentMeetingSDK是一个双架构的framework,默认包含x86和arm64两种架构,可以在x86和arm64下运行。...mac_build_framework放在同级目录,双击运行mac_build_framework,等待即可,无报错情况下会在当前目录下的Build/Products/Release/framework下生成x86和arm64两个平台的架构包效果对比以

52040

Android APK 瘦身 - JOOX Music项目实战

而且,有时候我们可以通过减少第三方的SDK升级或JAR更换来减小APK大小,毕竟一般来说,SDK只会越来越大(毕竟加了新特性),如果我们能确定当前版本的JAR包或者SDK继续使用下去没问题的话可以选择不用替换...可以去官方那了解更多: https://www.guardsquare.com/en/proguard f) 这里总结一下如何从代码方面减小APK大小: 删除无用的代码,无用的JAR包,无用的so库 对于使用到的第三方库...原包VS PNG压缩+WebP化后的包 发现了吗,我们对PNG图片进行压缩后,虽然res文件大小整体小了2.2M,但是打包出来后APK只小了350k,而对部分图片WebP化后res文件夹小了1.8M...通过本文可以看见,转换成WebP之后的图片不仅占用的空间小,最主要的是生成的APK减小了很多。通过本次减包,在图片方面JOOX大约减5M左右的APK大小,效果不是一般的好哦。...第二点: JOOX在持续集成平台上集成了大文件监控报警机制,如果在提交SVN之后编译出来的包大小相对于上一个包的大小超出了相应的阈值,将会进行报警以及生成相应的BUG单给对应的开发人员进行提醒,开发人员在收到

1.2K60

5天内用户数破亿、增速碾压ChatGPT,Twitter劲敌Threads是如何构建的?

那么,这样一款现象级应用程序是如何构建的? 1 Threads 是如何构建的?...近日,国外工具分析平台 Emerge Tools 率先对 Threads App 进行了拆解分析,分别揭晓了 Android 版 Threads 以及 iOS 版 Threads 是如何构建的。...拆解 Android、iOS 版 Threads Android 版 Threads 方面,跟其他 Meta 应用一样,Threads 也提供通用 APK 文件。...其中附带一个元数据文件: arm64-v8a/librtc.so 11336240 bda527a307edd868700fccfab15481f403d3f39363289d5d6a717579f284bed7...跟整个 dex 大小相比,dex 的组装部分相对较小(约 130 KB),所以也许能更高效地使用 Compose 并 / 或共享 Instagram 代码、控制实际代码量。

21130
领券