最近闲了没事自己做了个小 app,记笔记用的。打包 release 后大小 2.1mb ,我如何让它更小? 2.1mb 继续压缩到 500kb 可以实现吗?
app 项目链接: https://quick.geshkii.xyz
各位有什么指导或意见尽管跟我说,我洗耳恭听。
谢谢!
1
Nangle 2021-04-16 20:53:17 +08:00
代码精简优化,所用函数和方法尽可能用执行效率高的替代。
|
2
kwanzaa 2021-04-16 21:24:56 +08:00
|
3
kifile 2021-04-16 22:13:24 +08:00
减小或压缩图片,三方包能少就少
|
4
RikkaW 2021-04-16 22:30:06 +08:00
不使用 appcompat (
|
5
sankemao 2021-04-16 22:32:40 +08:00
富文本是怎么做的
|
6
yitingbai 2021-04-16 22:42:05 +08:00 4
简单反编译看了一下, 首先大量的 png 图片资源是完全可以去掉的, 其次引用的库还可以减少, 比如不要使用 kotlin, 不要使用 androidx 或 appcompat 的界面库, 直接继承 Activity, 做到 500kb 完全是可能的, 举个例子, via 浏览器最新版 800 多 k, 我刚刚编译了一个 demo, 去掉了我说的这些, 只有 90k, 所以只要保证你的代码不超过 400k 就好了, 400k 的 java 代码, 发挥空间还是蛮大的
|
7
Kirakbit OP @sankemao 富文本我用的是日本一个程序员写的 richtexteditor, 这是那个项目地址: https://github.com/wasabeef/richeditor-android
|
9
Kirakbit OP @yitingbai 我用 lint 分析之后发现确实如你所说这样( png 占了很大空间),那我移除 png 是直接可以在项目目录里删除吗?我下次要制作 image asset 的时候怎么让 android studio 只生成 xml 文件,不生成 png ?
谢谢你! |
12
fox0001 2021-04-17 15:56:29 +08:00 via Android
记得 Android 2.x 那时,绝大部分 apk 都是 kb 级别,多么美好的远古时代…
|
14
HarryQu 2021-04-17 22:13:52 +08:00
说点我的一些看法:
1. 你的 App 中适配了多种像素密度的手机,例如 hdpi 、xxhdpi 、xxhdpi 、xxxhdpi 。目前,多数用户的手机像素密度为 xxhdpi,以我的 App 为例,可以只保留 drawable-xxhdpi 文件夹即可(类似 iOS 中的 3 倍图)。 2. 可以将 png 图片转换为 webp 格式,当然这一步不是必须的,因为我看你的 App 中,多数图片都不是很大。AndroidStudio 中右键即可以转换。如果将来有将来有大 png 图片的话,可以在 https://tinypng.com/ 网站上进行压缩。 3. 如上面哥们所言,考虑移除 androidx 或 appcompat 的界面库。这一步可以大幅减少你的 App 体积。但是如果你依赖的第三方库依赖这些库的话,就比较难办了。 4. 同目前市面上的 App 相比,2.1M 其实也不是很大,可以暂时将精力放在其他方面。当然优化是一个永恒的话题,但也没必要过度优化。 |
15
Kirakbit OP @HarryQu
我现阶段的做法是把 png 图片完全移除用 xml,我不知道这样做的坏处是什么,但是现阶段可以编译。移除 androidx 我现在在做,但移除 png 已经带来明显的体积减小了。 同时,我赞同你说的过度优化问题。的确,我现在应该把重心放在增加新功能上。 谢谢! |
16
kingiis 2021-04-19 15:01:20 +08:00
最快的方式
1.图片全用 webp ,给你个 png 你拉到项目里 全选 右键 转一下就好 2.少复制代码 使用两次以上的代码就直接 扔一个工具类里去 其他的都是 kb 级别的可以忽视 |
18
nicocho 2021-04-20 13:53:08 +08:00
前几天研究了下,拼多多 apk 只有 30 多 M, 安装后是 120 多 m 。
一个 dex 压缩前是 10m,压缩后大概不到 3m, 够厉害的 估计都是单独用了 7z 的 |