Android面试题——掘金-性能优化之APK瘦身(4.5)
一 概述
1 | APK 瘦身相关常见面试题及详解 |
二 面试题解答(仅供参考)
2.1 APK 包体为什么会过大?有哪些主要构成?
1 | APK 主要由以下几部分组成: |
2.2 APK 瘦身有哪些常见手段?
优化维度 | 优化方法 |
---|---|
图片资源 | 压缩、WebP 格式替代 PNG、按需加载 |
代码(Dex) | ProGuard / R8 混淆、移除无用类和方法 |
so 文件 | ABI 拆分(只打包 arm64-v8a 等)、删无用架构 |
多语言资源 | resConfigs 精简多余语言 |
不必要资源 | res 删无用布局、图片、drawable |
第三方库 | 精简依赖,按需引入,使用 lighter 替代库 |
多 APK / App Bundle | 按需生成变种包,瘦身效果显著 |
2.3 如何使用 ProGuard / R8 对 APK 瘦身?
1 | 1.R8 是 Android 默认的混淆器兼压缩器。 |
2.4 如何移除无用资源?
1 | -使用 shrinkResources true(需配合混淆)。 |
2.5 如何使用 WebP 格式优化图片资源?
1 | WebP 图片在不影响质量的情况下大幅压缩体积(较 PNG 小 25~50%)。 |
2.6 如何使用 resConfigs
精简多语言资源?
1 | 在 build.gradle 中配置,只保留简体中文和英文资源 |
2.7 多架构 so 文件如何优化?
1 | 1.使用 ndk.abiFilters 指定只打包某些架构 |
2.8 什么是 App Bundle?为什么它更推荐?
1 | -App Bundle 是 Google 推出的动态 APK 生成方案(.aab 格式); |
2.9 APK 文件大小怎么分析?
1 | -使用 Android Studio → Build → Analyze APK |
2.10 如何避免第三方库拖大包体?
1 | -尽量使用轻量库(如 Retrofit + OkHttp 替代某些 SDK)。 |
2.11 APK 瘦身面试技巧(项目经验回答模板)
1 | 我们项目曾通过 ProGuard + App Bundle 的方式进行 APK 瘦身,从原来的 45MB 降到约 18MB。 |
三 参考
- 掘金—知识库的大纲