现在大部分 Android 应用都占用相当大的存储空间。
例如:微信刚安装不久就占用接近 1G 的空间(主要并不是聊天记录); Bilibili 刚安装完就占用超过 400M 空间。
这些空间大小甚至能超过 PC 上同类应用的体积。
不是开发者,希望大家科普一下占用的空间主要用于存储什么数据,是否有可能优化存储空间的使用。
谢谢大家。
1
kaedea 2020-01-24 16:58:06 +08:00 via Android
不加体积哪来的 KPI ?
|
2
gam2046 2020-01-24 16:58:21 +08:00
没反编译看过微信,但是根据我自己的开发经验主要来自于资源文件以及 abi 相关的文件,尤其是微信这类应用,出于安全目的,许多业务逻辑并不能使用 Java 编写,而 armeabi-v7a 与 arm64-v8a 这两种常见的 abi,就需要占用双份空间,在安装时,系统会再次根据设备 abi 复制一份 abi 文件到 /data/下,因此相同功能的 abi 就至少需要占用三份空间。
|
3
little_cup 2020-01-24 17:15:58 +08:00 6
原因有很多,试举几例:
1. 就国内环境而言,由于缺少强制性的兼容标准,任何本该系统提供的基础设施都可能存在埋雷,需要 app 打包自带。 如图片 /文件选择,MIUI 等曾阉割系统文档框架; WebView,也有无数用户没事干去禁用 /卸载系统组件。 2. 公司业务逻辑架构本身导致了资源文件重复。如同样用途的图标,可能 native、html 页面各存放一套。如果设计是跟随业务的话,每个业务组可能都维护了独立(但实际上大同小异)的设计资源。 3. 各种跨平台技术框架本身也会撑大体积。 4. 有时,由于运营上线需求急迫或运营团队自主操作发布,也会导致的体积浪费。如淘宝和微信的缓存中都曾出现过 . DS_Store 文件 楼上说的 abi 反倒不是主要问题,国内大部分 app 都只提供了 armeabi-v7a,v8a 可以向下兼容运行,mips、x86 等的手机均已放弃。而在强制要求 64 位支持的 Google Play 市场提供了另行的 aab 支持格式。 |
4
mayx 2020-01-24 17:25:04 +08:00 via Android
难道不是 art 的原因吗?
|
5
Tyuans 2020-01-24 18:01:08 +08:00
看不起我苹果?我 ios 这些国产软件哪个小了?
|
6
ChangQin 2020-01-24 18:05:13 +08:00
因为手机空间大了啊,256 起步了,app 也跟着大(狗头)
|
7
HuHui 2020-01-24 19:07:06 +08:00 via Android
空间换时间
|
8
nsynet 2020-01-24 19:57:09 +08:00
应该说国内的 app 比较大吧,你看 youtube 等大厂的 app,都十几兆左右.
|
9
DOLLOR 2020-01-24 20:06:18 +08:00 via Android
Andy gives, Bill takes away.
|
10
iamwho 2020-01-24 20:30:10 +08:00
“这个游戏才 500MB,肯定没有那些七八 GB 的游戏好玩。”
我连这种话都听到过。 |
11
azh7138m 2020-01-24 20:55:24 +08:00 via Android
iOS B 站也 450+M 啊
|
12
Bwoywan 2020-01-24 21:46:17 +08:00 via Android
果然 ROM 魔改严重,不得不自己带整个轮子?
YouTube 等是因为有 gsm ? 就我的主观感受来说,国产很少调用 webview 的 |
14
wclebb 2020-01-24 22:43:33 +08:00 via iPhone
在 iOS 设置上看:244.9MB
在 安卓 设置上看:385MB 不奇怪为什么。 |
15
linghutf 2020-01-25 00:02:49 +08:00 via Android
只要能完成任务,不出问题 ,不管效率怎么样。这就是现状。当年人们偏爱都自由,变成了放任。
|
16
WebKit 2020-01-25 00:58:22 +08:00 via Android
@nsynet YouTube 我手机上也是 268M 啊,他说的是 art 安装后的体积,不是 app 下载时候的体积
|
17
HongJay 2020-01-25 01:06:56 +08:00
都是缓存
|
18
mxalbert1996 2020-01-25 16:39:11 +08:00 via Android
国内应用商店不支持 aab,资源每种 dpi/api 一份,jni 库也每个架构一份,能不大么
|