V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Biwood
V2EX  ›  Android

有没有发现 Android 系统的性能缺陷被硬件的发展给掩盖了

  •  2
     
  •   Biwood · 2022-11-12 15:36:08 +08:00 · 12315 次点击
    这是一个创建于 502 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Android 系统从发布之初就一直面临着卡顿问题,虽说现在芯片升级很多代了,Android 系统本身也升级了很多版本,卡顿情况相比以前少了一些,但是哪怕是各个厂家的旗舰机型,也还是无法完全规避,这应该是 Android 系统的天生缺陷吧。

    我自己曾经在 Linux 笔记本上折腾过各种虚拟机,机器配置是十代 i7 + 32GB 内存。在 Linux 上安装 Linux 虚拟机(包含桌面 GUI ),运行基本都很流畅。在 Linux 上安装 Windows 7 和 Windows 10 ,正常使用也没什么大问题。但是在 Linux 安装 Android 虚拟机(用的是最新版的Anbox),在什么都没安装的情况下,卡顿到到几乎不能用。这是否说明 Android 本身就是一个非常吃硬件性能的系统,它在移动端的性能缺陷完全靠硬件的堆叠来掩藏?

    然后我了解到谷歌搞了个新系统叫 Google Fuchsia,几乎是把 Linux 内核给重构了一遍,这玩意儿将来应该会取代 Android 吧。

    第 1 条附言  ·  2022-11-12 16:23:08 +08:00
    这个帖子不是要站队 /引战,仅仅从纯技术角度来探讨不同系统对硬件的要求,我只是感叹 Android 为什么作为虚拟机运行的时候会那么耗费性能,如果不是 Android 本身的缺陷,那是因为对 x86 平台的优化还不够吗
    第 2 条附言  ·  2022-11-12 20:53:08 +08:00
    听取 @ho121 的建议,我直接在 Linux 安装了 Android Studio ,直接运行内置的 Android 模拟器。我一般把运行内存都分配到 4G 左右,默认是最新的 Android 13 ,最开始试了几次,都是进去之后一会儿就卡死了。后来我新建了一个 Android12 的虚拟机,内存默认 1.5G 改不了,运行了一段时间,竟然还挺流畅的。然后我试着安装一些常用 App ,结果遇到了无法安装的问题,因为模拟的是 x86 平台,这些应用估计是没做适配。不过最后这个 Android12 的机子也卡死了。好几次死机都是在我启动 Chrome 之后,也有操作中途突然卡死的情况。

    所以综合来看,Android 对 x86 的兼容性问题才是更严重的问题。
    69 条回复    2022-11-23 13:58:26 +08:00
    felixcode
        1
    felixcode  
       2022-11-12 15:45:33 +08:00 via Android   ❤️ 7
    我在用的 android 跟你说的那个好像不是同一个东西
    ltkun
        2
    ltkun  
       2022-11-12 15:52:15 +08:00 via Android
    安卓用的资源肯定要大一点的 因为为了兼容更多硬件本身就是个虚拟机 原生系统和虚拟机比较肯定原生快一点 虽然可能现在性能相差已经在几个点了 安卓卡顿更可能的是拿着千元机和万元机比较 就像 Intel 几百的 N 系列 CPU 肯定拼不过几千的 I 系列
    HiCode
        3
    HiCode  
       2022-11-12 15:52:44 +08:00   ❤️ 1
    是的。
    873792861
        4
    873792861  
       2022-11-12 15:52:49 +08:00 via Android
    在 X86 chromebook 倒是比 anbox 流畅很多
    asuka02
        5
    asuka02  
       2022-11-12 15:56:14 +08:00
    并没有觉得现在的安卓卡顿
    geeksammao
        6
    geeksammao  
       2022-11-12 15:58:28 +08:00
    首先请捋清楚两个区别:
    在 Linux 上安装 Linux/Windows 虚拟机
    在 Linux 上安装 Android 虚拟机

    这俩玩意的性能差别是 Android 系统性能差的原因吗?
    如果真对 Android 系统性能感兴趣,简单的方法是用硬件性能相似的 iPhone 和 Android 手机对比, 想触及本质就去阅读 Android 源码。
    quan01994
        7
    quan01994  
       2022-11-12 15:59:36 +08:00
    Fuchsia 还在开发吗,最近都没听到过声音了。。
    kidlj
        8
    kidlj  
       2022-11-12 16:01:42 +08:00
    倒没觉得 Android 有多卡,就过渡动画差 iOS 太远了,一种薄薄的塑料感,而 iOS 的动画更流畅,体验不到撕裂的感觉,就好比果冻。
    geeksammao
        9
    geeksammao  
       2022-11-12 16:03:08 +08:00   ❤️ 8
    @geeksammao 如果 op 用“自己十代 i7 + 32G 笔记本安装 Android 虚拟机卡顿到几乎不能用”,得出结论 Android 系统性能缺陷非常大。那市面上那些“还算能用”的千元 Android 机,是否硬件性能可以比肩甚至超过你的十代 i7 + 32G 了。
    cxtrinityy
        10
    cxtrinityy  
       2022-11-12 16:10:01 +08:00 via Android   ❤️ 8
    Fuchsia 这瓜都画了几年了🙃
    Android 卡顿说实话跟 app 优化太烂脱不了关系,我 pixel 2 用到现在,平时微信刷网页 tg 油管啥的说实话都不觉得怎么卡,但是支付宝啊,淘宝啊,百度贴吧啊,各种网银啊一开就卡,所以与其说有硬件发展掩盖了系统缺陷,不如说硬件发展掩盖了程序员质量缺陷
    Biwood
        11
    Biwood  
    OP
       2022-11-12 16:16:22 +08:00
    @felixcode
    @asuka02
    当然,日常使用方面各大厂家已经优化的足够好了,一般不会卡顿,但是在略微长时间或者极端一点的使用情况下还是会有点吃力。我这里主要是把 Android 作为一个跨平台的系统跟桌面版系统做对比,毕竟 Android 除了用在手机上,在嵌入式方面的应用也挺广泛的。

    @kidlj
    苹果的系统毕竟从一开始就把 GUI 体验放到第一位,这点不奇怪,Android 作为开源系统,可能就不会向 iOS 那样考虑的那么精细了,只能靠各个手机厂家自己进行二次优化。某种程度上来说,这也是开源与闭源各自的优势和短板吧。
    Zeonjl
        12
    Zeonjl  
       2022-11-12 16:18:01 +08:00 via iPhone
    是的,卡顿是日常,
    bthulu
        13
    bthulu  
       2022-11-12 16:18:03 +08:00
    难道不是安卓性能缺陷倒逼芯片厂商发展硬件吗?
    都像 Intel 一样原地踏步难道就好了?
    janus77
        14
    janus77  
       2022-11-12 16:24:06 +08:00   ❤️ 1
    本来就是这样,硬件和软件是相互扶持的,最终结果是收割了消费者。参考 pc 游戏和 pc 配件
    binbin0915
        15
    binbin0915  
       2022-11-12 16:25:13 +08:00   ❤️ 1
    相同价位 再来讨论...
    fox0001
        16
    fox0001  
       2022-11-12 16:37:28 +08:00 via Android
    楼主说 Android 卡顿,但是举模拟器的例子,肯定挨骂[狗头]

    我从 HTC G1 ,经历了 Android 1.0 到现在。最大感受是,Android 5 、6 开始,启用 ART ,Android 流畅性已经大幅提高了。硬件的发展确实有帮助,但系统一路以来的优化,一般用户可能不知道。楼主是想说这个吗?
    geeksammao
        17
    geeksammao  
       2022-11-12 16:44:09 +08:00 via iPhone
    @Biwood Android 手机早就没有出 x86 的硬件了,你在笔记本上跑的 Android 虚拟机性能损耗比 Linux/Windows 虚拟机大了数量级。Android 跨平台也基本是针对的 arm ,x86 几乎从来不是它的目标。
    早期的 Android 本身性能缺陷非常明显,近 10 年来谷歌已经尽可能去优化了这些问题,但还是有一些难以优化的点。一方面因为 Android 从设计之初就不像 iOS 是专门作为高端手机系统设计的,等谷歌开始重视时有些设计已经不好改了;另一方面因为 Android 运行的硬件差异实在太大,从低端到高端、各个厂商生产的都有,难以像 iOS 一样只运行自家高端硬件从而做到极致优化。
    不过虽然如此,我认为在硬件性能接近的情况下,单论系统性能 Android 和 iOS 相差已经很小了。更大的问题是 Android 生态问题导致应用质量差不少,以及同年的 Android 硬件性能往往比 iPhone 差了太多。
    DOLLOR
        18
    DOLLOR  
       2022-11-12 16:45:23 +08:00
    其实没问题,就像 win10 系统的缺陷被 SSD 的发展掩盖了。
    Flourite
        19
    Flourite  
       2022-11-12 17:16:09 +08:00
    应该说是 java ,java 这东西特别吃硬件资源,凡事 java 开发的东西都有这个问题
    opengps
        20
    opengps  
       2022-11-12 17:39:13 +08:00
    很正常,软件在避免物理瓶颈的思路是没错的。毕竟软件改动城北要比硬件升级容易的多,软硬件互相制约的时候,往往是硬件制约软件,你看传统行业里还有电脑运行 xp 系统就明白了
    ragnaroks
        21
    ragnaroks  
       2022-11-12 17:39:13 +08:00
    windows 上的 WSA 运行效率处于可接受范围,应该不是单纯的 android 问题
    dcsuibian
        22
    dcsuibian  
       2022-11-12 17:42:22 +08:00
    孤岛惊魂的“优化”缺陷被硬件的发展掩盖了[狗头]
    intva
        23
    intva  
       2022-11-12 17:43:57 +08:00
    驴头不对马嘴,硬解开了吗?
    fox0001
        24
    fox0001  
       2022-11-12 17:44:56 +08:00 via Android
    @ragnaroks #21 WSA 应该是微软优化得比较好。我们用来代替 Android 虚拟机做开发,运行效率堪比原生
    1041412569
        25
    1041412569  
       2022-11-12 17:45:13 +08:00
    @Flourite 现在的 Android 应用基本上都是用 c 写的,真没看见哪家用 java
    ho121
        26
    ho121  
       2022-11-12 17:46:36 +08:00 via Android   ❤️ 1
    Linux 下的 Android 虚拟机,用 qemu 做底层的,可以利用 kvm ,一点也不慢。比如 Android Studio 的模拟器。
    nguoidiqua
        27
    nguoidiqua  
       2022-11-12 18:15:05 +08:00   ❤️ 1
    没有什么性能缺陷,同样硬件装 Android Linux Windows 去跑分,有一些差别但没有根本性差距(谁高谁低还不一定)。

    不过同样性能下,Android iOS 这些手机系统确实会更卡一些,因为手机系统的日常负载要比电脑系统更高。

    对比下 Android iOS UI 的精度和 Windows Linux 上面 UI 的精度,还有动画往往也更多更精细,同样性能下自然更卡。

    手机系统是需要带动的传感器要比电脑之类多得多,它后台运行的服务要比电脑系统多得多。

    还有个原因是感受的问题,电脑系统上面卡一下和手机系统上面卡一下感知差别很大。

    另外,Android 还有个问题,就是突然后台有个 APP 唤醒了好几个关联 APP ,这种情况难免会卡顿。

    -----------------------------------------------------------------------------------

    还有你上面说的 Anbox 之类,这个和虚拟机装 Linux Windows 对比可能不是和合适(也许是 Anbox 的问题),可以用虚拟机安装 X86 Android 试试。
    daveh
        28
    daveh  
       2022-11-12 18:15:07 +08:00 via iPhone
    @felixcode 确实,今天去实体店体验了一下传说中某 M 系列高端手机,几款不同样机都一样表现,打开 /切换 app 什么的感觉总要顿一下才出来,动画也比较生硬,设置 app 划上划下不跟手,给人感觉是操作了一个远程运行的手机,只是显示在本机,有点用电脑远程桌面的感觉。
    还有 V 站经常有人吹的什么 Android 左划全局返回键,不在最左边划根本划不出来,偶尔即使划出来了,也是顿一下才有响应,跟 iOS 那种跟手的左划返回差太多。
    WebKit
        29
    WebKit  
       2022-11-12 18:19:08 +08:00
    Android 这几年的性能提升非常大。另外同时代的 Android 旗舰手机的 CPU 性能大概相当于 2 年前的 iPhone CPU 性能。所以硬件差距还是非常大的。
    kokutou
        30
    kokutou  
       2022-11-12 18:30:06 +08:00 via Android
    x86 模拟 arm 。。。
    而且不像 x86 模拟 x86 那么多年了,还有专用指令集。。。
    jeesk
        31
    jeesk  
       2022-11-12 18:57:08 +08:00
    卡, 要看你怎么用了。ios 开发对内存的限制非常严格, 导致内存占用过高就会崩溃, 但是 android 的内存限制就没有 ios 严格。 所以说 ios 开发的应用更加适合不折腾的处理,如果要折腾还是得安卓。

    android 卡? 我个人觉得是软件卡, 软件体现了开发者的水平和优化程度,这就是为什么原生 android 比国内的第三方 ui 更加流畅的原因。
    deorth
        32
    deorth  
       2022-11-12 19:04:33 +08:00 via Android
    纯 技 术
    sommio
        33
    sommio  
       2022-11-12 19:24:39 +08:00 via Android
    赞同 @jeesk 的观点,大部分安卓软件都不关心内存使用(或许可以 AOE 到大部分 Java 软件)。安卓实际上在 APP 运行之前预编译 Java 字节码,因此跟编译语言 Swift 是在同一层面上执行的,如果内存管饱的话不会有太大运行速度差异
    singerll
        34
    singerll  
       2022-11-12 19:29:12 +08:00 via Android
    先不说安卓模拟器都是 x86 上硬跑 arm ,现在主流的安卓模拟器都是 win 平台的,你在 linux 上装安卓模拟器卡啥也说明不了啊
    JohnBull
        35
    JohnBull  
       2022-11-12 19:34:25 +08:00
    拿跨架构的模拟器和同架构的虚拟化比较性能,还义正辞严的……
    levelworm
        36
    levelworm  
       2022-11-12 19:46:26 +08:00 via Android
    @1041412569 难道现在都 native 了吗?
    Cooky
        37
    Cooky  
       2022-11-12 19:49:13 +08:00
    anbox 已经过时了,现在都是 waydroid
    sommio
        38
    sommio  
       2022-11-12 19:54:54 +08:00 via Android   ❤️ 2
    @kidlj 喜欢 iOS 动画或许可以试下跑 HarmonyOS UI 的手机[1],相比其它 UI 不会有“顿一下”的感觉,如果华为肯贡献相关代码就好了(

    [Animation comparison:
    Mate 50 Pro, S22 Ultra, iPhone 14 Pro]( https://twitter.com/UniverseIce/status/1574041039567876096)
    geeksammao
        39
    geeksammao  
       2022-11-12 20:14:04 +08:00 via iPhone
    @sommio 仅从视频里的动画效果看,19 年的 Android 10 原生就是这个效果了
    sommio
        40
    sommio  
       2022-11-12 20:26:34 +08:00 via Android
    @geeksammao 看了下确实是…那就很难理解为什么其它第三方 UI 依旧用“顿一下”这种动画效果了

    [Google Pixel 7 Pro vs iPhone 14 Pro Max - Speed Test 1:30](
    )
    ww2000e
        41
    ww2000e  
       2022-11-12 20:34:50 +08:00
    10 年前我也这样想,整个系统基于 jvm ,效率太差,后来和 ios 比比,待机时间和速度,也就那回事
    0x6c696e71696e67
        42
    0x6c696e71696e67  
       2022-11-12 21:03:13 +08:00
    安卓的动画掉帧被 120hz 拯救了,锁 60 真的没法用,动态刷新率又因某些应用只能 60 ,只能锁 120 来用
    geeksammao
        43
    geeksammao  
       2022-11-12 21:21:31 +08:00 via iPhone
    @0x6c696e71696e67 动画掉帧是连 60 都达不到或者稳不住,那说明渲染性能就跟不上,屏幕刷新率 240 也没用。120 是让以前不够精细的动画更精细,以及新机器渲染性能更强带来的协同效应,纯刷新率 120 没有配套的渲染能力是没效果的。
    charlieethan
        44
    charlieethan  
       2022-11-12 21:24:52 +08:00
    我觉得 Android 的性能应该和 iOS 不相上下,但是由于安卓应用开发混乱,又没有一个统一的应用审核标准,再者安卓系统下的硬件众多,而 iOS 的应用都会针对机型做单独优化,导致实际使用时安卓体验不如 iOS ,目前这是无解的事
    ourstars
        45
    ourstars  
       2022-11-12 22:19:14 +08:00
    性能现在应该还是提升上来了,但是安卓的动画还是没有 iOS 精致(可能是因为各家厂商自己做自己的)
    jsjjdzg
        46
    jsjjdzg  
       2022-11-12 22:42:12 +08:00
    我觉的还是 硬件发展遮掩了很多安卓稀烂的开发
    ltkun
        47
    ltkun  
       2022-11-12 22:50:17 +08:00 via Android
    Android 对于 x86 需要有 x86 架构的 app 不信你运行个 iOS 的 app 看看行不行 对于附言 2
    jfdnet
        48
    jfdnet  
       2022-11-12 22:58:26 +08:00   ❤️ 1
    @1041412569 张嘴就来,用 C 开发安卓应用... ... android SDK 都是用 java 实现的。

    @Biwood
    然后楼主没有一句话涉及到技术问题,然后他希望 “纯技术角度来探讨”

    真是个无语的帖子。
    blueaurora
        49
    blueaurora  
       2022-11-12 22:58:39 +08:00
    Android 的虚拟机优化确实不怎么样。X86 支持是市场问题,X86 在移动端和车机系统上,都应该很难发展起来了吧。2014 年 intel 布道时我就玩过 X86 的 android , 作为应用来讲,android X86 没有市场,就没有支持的必要
    exploreexe
        50
    exploreexe  
       2022-11-12 22:58:56 +08:00
    都十几年了,你现在才意识到么。。。
    vision1900
        51
    vision1900  
       2022-11-12 23:10:54 +08:00
    kwh
        52
    kwh  
       2022-11-13 01:04:25 +08:00
    华为鸿蒙,我觉得还是很精致了,但是我没用过苹果,不清楚苹果 UI 与鸿蒙 UI 的区别。
    但是比小米 UI 好多了,小米 UI 能明显感到粗线条。而且软件也有问题,比如应用商店,某一行应用说明文字,只显示一半,另一半被遮住了。
    1002xin
        53
    1002xin  
       2022-11-13 01:10:17 +08:00
    没错
    kwanzaa
        54
    kwanzaa  
       2022-11-13 05:24:00 +08:00
    @quan01994 最近 Google 要把一批硬件更新到 Fuchsia 。
    loading
        55
    loading  
       2022-11-13 09:04:02 +08:00
    Windows:?? ?
    makelove
        56
    makelove  
       2022-11-13 09:04:49 +08:00
    竟然拿虚拟机说事,在虚拟机内的 Android 驱动完全发挥不了硬件机能了吧,这和成熟的 windows/linux 完全不一样,虚拟 android 用的人也少估计也没什么人会大力弄这个

    即使 linux 显卡驱动没弄好照样卡成 ppt
    Syiize
        57
    Syiize  
       2022-11-13 09:44:40 +08:00 via Android
    有没有一种可能,就是某些 app 做的太烂太吃性能才导致 Android 卡的。
    lirunext
        58
    lirunext  
       2022-11-13 09:49:34 +08:00
    楼主感兴趣的话可以检查下 VT-d 有没有打开,在 VT-d 启用的前提下用主流的安卓模拟器(如雷 D 模拟器、X 讯手游助手),再看看卡不卡,按道理十代 i7 不至于卡的
    everain
        59
    everain  
       2022-11-13 10:50:14 +08:00 via Android
    同年代顶级安卓手机的性能也比不过苹果机…顶多在内存容量上占上风…
    jeesk
        60
    jeesk  
       2022-11-13 10:50:37 +08:00
    @Syiize 普通场景下差距不大, 海量场景下 ios 更加扛不住。 可以试一试 10w 张照片在 ios 下面和 android 系统下面, 看看谁能抗住。
    SekiBetu
        61
    SekiBetu  
       2022-11-13 16:33:32 +08:00
    虚拟机是转译的,速度当然不快
    lookStupiToForce
        62
    lookStupiToForce  
       2022-11-14 18:31:33 +08:00
    op 这问题提的.....
    那我用苹果自家的 rosseta 2 运行 steam 支持 mac 的游戏也一样有卡顿 /掉帧 /画面错乱呢(典型比如 m2 air 玩咩咩启示录)
    你如果在提此问题之前就能看出来我上面这种说法有多少问题,那么为什么对安卓就这么大意见
    Biwood
        63
    Biwood  
    OP
       2022-11-14 18:51:06 +08:00 via Android
    @lookStupiToForce 为什么你们会觉得是“有这么大意见”,哪怕我的论断不准确,那也是逻辑问题, 不涉及任何主观情感因素,要知道我从 Android 2.1 时代起就一直拿 Android 当主力机,虽然两年前入了苹果,现在也是两个都用了,不存在要给哪个站队的问题

    你如果有认真看附言就知道我纯粹是对这个技术性问题的好奇,非得给我带入“Android 好还是 iOS 好”这种无聊的争吵里面,我自始至终都懒得参与这种小孩子似的斗嘴
    lookStupiToForce
        64
    lookStupiToForce  
       2022-11-14 18:54:27 +08:00
    @Biwood #61 我还真不信 android 2.1 时代就拿来当主力机的人会用不出 android 上的改变,除非你一直拿百元机千元机当主力机那当我没说
    Biwood
        65
    Biwood  
    OP
       2022-11-14 19:07:55 +08:00 via Android
    @lookStupiToForce 那么建议把我帖子第一段以及 11 楼的回复重读一边,另,我是从 HTC 的旗舰一直用到三星的 S7 Edge 之后的旗舰包括现在正在打字的 S22+
    lookStupiToForce
        66
    lookStupiToForce  
       2022-11-14 19:09:27 +08:00
    @Biwood #63 sadly
    我这种闲人一般回复别人前都是通读过的
    看来没法好好沟通了
    祝好
    fyacc
        67
    fyacc  
       2022-11-14 23:30:41 +08:00 via Android
    其实目前的 android 主流版本性能还不错的,有一些其他问题需要完善或者解决。用 pc(x86)来模拟 android(arm)是有很大的性能和稳定性损失的,有点像用筷子夹着勺子去喝汤感觉。现在有个现象不太好的是我们常用的一些 app 做的不是很好,如果 lz 试试 whasapp,tele 之类的 app 替代,感受一些这些做的相对还不错的 app ,卸载那些优化不好的 app ,会发现体验好很多。
    Anonywp
        68
    Anonywp  
       2022-11-18 17:18:29 +08:00
    倒不如说各大流氓厂商倒逼硬件升级,毕竟一个 QQ 都能占一个多 G 内存
    whoamiatvip
        69
    whoamiatvip  
       2022-11-23 13:58:26 +08:00
    说 Android 卡,你要分清自己在说什么。举个例子,16 年的时候,大家都在研究怎么进程保活,这你让 google 怎么办?能不卡吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4815 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 09:56 · PVG 17:56 · LAX 02:56 · JFK 05:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.