V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
neteroster
V2EX  ›  问与答

为什么现在 Android 应用体积那么大?

  •  1
     
  •   neteroster · 2020-01-24 16:47:11 +08:00 · 5491 次点击
    这是一个创建于 1800 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在大部分 Android 应用都占用相当大的存储空间。

    例如:微信刚安装不久就占用接近 1G 的空间(主要并不是聊天记录); Bilibili 刚安装完就占用超过 400M 空间。

    这些空间大小甚至能超过 PC 上同类应用的体积。

    不是开发者,希望大家科普一下占用的空间主要用于存储什么数据,是否有可能优化存储空间的使用。

    谢谢大家。

    19 条回复    2020-01-26 14:49:41 +08:00
    kaedea
        1
    kaedea  
       2020-01-24 16:58:06 +08:00 via Android
    不加体积哪来的 KPI ?
    gam2046
        2
    gam2046  
       2020-01-24 16:58:21 +08:00
    没反编译看过微信,但是根据我自己的开发经验主要来自于资源文件以及 abi 相关的文件,尤其是微信这类应用,出于安全目的,许多业务逻辑并不能使用 Java 编写,而 armeabi-v7a 与 arm64-v8a 这两种常见的 abi,就需要占用双份空间,在安装时,系统会再次根据设备 abi 复制一份 abi 文件到 /data/下,因此相同功能的 abi 就至少需要占用三份空间。
    little_cup
        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 支持格式。
    mayx
        4
    mayx  
       2020-01-24 17:25:04 +08:00 via Android
    难道不是 art 的原因吗?
    Tyuans
        5
    Tyuans  
       2020-01-24 18:01:08 +08:00
    看不起我苹果?我 ios 这些国产软件哪个小了?
    ChangQin
        6
    ChangQin  
       2020-01-24 18:05:13 +08:00
    因为手机空间大了啊,256 起步了,app 也跟着大(狗头)
    HuHui
        7
    HuHui  
       2020-01-24 19:07:06 +08:00 via Android
    空间换时间
    nsynet
        8
    nsynet  
       2020-01-24 19:57:09 +08:00
    应该说国内的 app 比较大吧,你看 youtube 等大厂的 app,都十几兆左右.
    DOLLOR
        9
    DOLLOR  
       2020-01-24 20:06:18 +08:00 via Android
    Andy gives, Bill takes away.
    iamwho
        10
    iamwho  
       2020-01-24 20:30:10 +08:00
    “这个游戏才 500MB,肯定没有那些七八 GB 的游戏好玩。”

    我连这种话都听到过。
    azh7138m
        11
    azh7138m  
       2020-01-24 20:55:24 +08:00 via Android
    iOS B 站也 450+M 啊
    Bwoywan
        12
    Bwoywan  
       2020-01-24 21:46:17 +08:00 via Android
    果然 ROM 魔改严重,不得不自己带整个轮子?
    YouTube 等是因为有 gsm ?
    就我的主观感受来说,国产很少调用 webview 的
    gcyrn
        13
    gcyrn  
       2020-01-24 22:30:27 +08:00 via Android
    @nsynet YouTube 应用 100MB 数据 100mb
    wclebb
        14
    wclebb  
       2020-01-24 22:43:33 +08:00 via iPhone
    在 iOS 设置上看:244.9MB
    在 安卓 设置上看:385MB

    不奇怪为什么。
    linghutf
        15
    linghutf  
       2020-01-25 00:02:49 +08:00 via Android
    只要能完成任务,不出问题 ,不管效率怎么样。这就是现状。当年人们偏爱都自由,变成了放任。
    WebKit
        16
    WebKit  
       2020-01-25 00:58:22 +08:00 via Android
    @nsynet YouTube 我手机上也是 268M 啊,他说的是 art 安装后的体积,不是 app 下载时候的体积
    HongJay
        17
    HongJay  
       2020-01-25 01:06:56 +08:00
    都是缓存
    mxalbert1996
        18
    mxalbert1996  
       2020-01-25 16:39:11 +08:00 via Android
    国内应用商店不支持 aab,资源每种 dpi/api 一份,jni 库也每个架构一份,能不大么
    johnnyR
        19
    johnnyR  
       2020-01-26 14:49:41 +08:00
    @Bwoywan 多的呢,QQ 看看,什么个性装扮,头像,会员都是
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 19:00 · PVG 03:00 · LAX 11:00 · JFK 14:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.