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

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

  •  2
     
  •   Biwood · 84 天前 · 8278 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言  ·  84 天前
    这个帖子不是要站队 /引战,仅仅从纯技术角度来探讨不同系统对硬件的要求,我只是感叹 Android 为什么作为虚拟机运行的时候会那么耗费性能,如果不是 Android 本身的缺陷,那是因为对 x86 平台的优化还不够吗
    第 2 条附言  ·  83 天前
    听取 @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  
       84 天前 via Android   ❤️ 7
    我在用的 android 跟你说的那个好像不是同一个东西
    ltkun
        2
    ltkun  
       84 天前 via Android
    安卓用的资源肯定要大一点的 因为为了兼容更多硬件本身就是个虚拟机 原生系统和虚拟机比较肯定原生快一点 虽然可能现在性能相差已经在几个点了 安卓卡顿更可能的是拿着千元机和万元机比较 就像 Intel 几百的 N 系列 CPU 肯定拼不过几千的 I 系列
    HiCode
        3
    HiCode  
       84 天前   ❤️ 1
    是的。
    873792861
        4
    873792861  
       84 天前 via Android
    在 X86 chromebook 倒是比 anbox 流畅很多
    asuka02
        5
    asuka02  
       84 天前
    并没有觉得现在的安卓卡顿
    geeksammao
        6
    geeksammao  
       84 天前
    首先请捋清楚两个区别:
    在 Linux 上安装 Linux/Windows 虚拟机
    在 Linux 上安装 Android 虚拟机

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

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

    我从 HTC G1 ,经历了 Android 1.0 到现在。最大感受是,Android 5 、6 开始,启用 ART ,Android 流畅性已经大幅提高了。硬件的发展确实有帮助,但系统一路以来的优化,一般用户可能不知道。楼主是想说这个吗?
    geeksammao
        17
    geeksammao  
       84 天前 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  
       84 天前
    其实没问题,就像 win10 系统的缺陷被 SSD 的发展掩盖了。
    Flourite
        19
    Flourite  
       84 天前
    应该说是 java ,java 这东西特别吃硬件资源,凡事 java 开发的东西都有这个问题
    opengps
        20
    opengps  
       83 天前
    很正常,软件在避免物理瓶颈的思路是没错的。毕竟软件改动城北要比硬件升级容易的多,软硬件互相制约的时候,往往是硬件制约软件,你看传统行业里还有电脑运行 xp 系统就明白了
    ragnaroks
        21
    ragnaroks  
       83 天前
    windows 上的 WSA 运行效率处于可接受范围,应该不是单纯的 android 问题
    dcsuibian
        22
    dcsuibian  
       83 天前
    孤岛惊魂的“优化”缺陷被硬件的发展掩盖了[狗头]
    intva
        23
    intva  
       83 天前
    驴头不对马嘴,硬解开了吗?
    fox0001
        24
    fox0001  
       83 天前 via Android
    @ragnaroks #21 WSA 应该是微软优化得比较好。我们用来代替 Android 虚拟机做开发,运行效率堪比原生
    1041412569
        25
    1041412569  
       83 天前
    @Flourite 现在的 Android 应用基本上都是用 c 写的,真没看见哪家用 java
    ho121
        26
    ho121  
       83 天前 via Android   ❤️ 1
    Linux 下的 Android 虚拟机,用 qemu 做底层的,可以利用 kvm ,一点也不慢。比如 Android Studio 的模拟器。
    nguoidiqua
        27
    nguoidiqua  
       83 天前   ❤️ 1
    没有什么性能缺陷,同样硬件装 Android Linux Windows 去跑分,有一些差别但没有根本性差距(谁高谁低还不一定)。

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

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

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

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

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

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

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

    android 卡? 我个人觉得是软件卡, 软件体现了开发者的水平和优化程度,这就是为什么原生 android 比国内的第三方 ui 更加流畅的原因。
    deorth
        32
    deorth  
       83 天前 via Android
    纯 技 术
    sommio
        33
    sommio  
       83 天前 via Android
    赞同 @jeesk 的观点,大部分安卓软件都不关心内存使用(或许可以 AOE 到大部分 Java 软件)。安卓实际上在 APP 运行之前预编译 Java 字节码,因此跟编译语言 Swift 是在同一层面上执行的,如果内存管饱的话不会有太大运行速度差异
    singerll
        34
    singerll  
       83 天前 via Android
    先不说安卓模拟器都是 x86 上硬跑 arm ,现在主流的安卓模拟器都是 win 平台的,你在 linux 上装安卓模拟器卡啥也说明不了啊
    JohnBull
        35
    JohnBull  
       83 天前
    拿跨架构的模拟器和同架构的虚拟化比较性能,还义正辞严的……
    levelworm
        36
    levelworm  
       83 天前 via Android
    @1041412569 难道现在都 native 了吗?
    Cooky
        37
    Cooky  
       83 天前
    anbox 已经过时了,现在都是 waydroid
    sommio
        38
    sommio  
       83 天前 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  
       83 天前 via iPhone
    @sommio 仅从视频里的动画效果看,19 年的 Android 10 原生就是这个效果了
    sommio
        40
    sommio  
       83 天前 via Android
    @geeksammao 看了下确实是…那就很难理解为什么其它第三方 UI 依旧用“顿一下”这种动画效果了

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

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

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

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

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