android 应用 32 位和 64 位有什么实质上的区别? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eyeshuaji
V2EX    Android

android 应用 32 位和 64 位有什么实质上的区别?

  •  1
     
  •   eyeshuaji 2022-08-17 17:34:19 +08:00 14635 次点击
    这是一个创建于 1155 天前的主题,其中的信息可能已经有所发展或是发生改变。
    来点干货,“更省电更流畅”这些太笼统了
  • 干货
  • 笼统
    a href="/tag/省电" class="tag">
  • 省电
  • Android
    22 条回复    2022-09-22 20:00:34 +08:00
    a1105288116
        1
    a1105288116  
       2022-08-17 18:04:00 +08:00
    编译器不一样?
    lakehylia
        2
    lakehylia  
       2022-08-17 18:08:17 +08:00
    现在手机 CPU 基本都是 64 位的了,64 位的 CPU 是兼容 32 位的应用的。64 位的 CPU 兼容 32 位的应用一般是通过虚拟机实现,64 位的 CPU 运行 64 位的应用,就可以直接跑。
    yukiww233
        3
    yukiww233  
       2022-08-17 18:12:00 +08:00
    podel
        4
    podel  
       2022-08-17 18:14:12 +08:00
    主要还是很多 android 程序本质上使用了外部的 C/C++编译的裤。调用了这些功能。
    这些外部库是 32/64 位的 ARM 二进制 不是很兼容。
    feather12315
        5
    feather12315  
       2022-08-17 18:16:42 +08:00 via Android
    最直观的:地址空间大小不同。
    这里的地址空间不仅仅是 RAM ,还包括设备空间
    efcndi
        7
    efcndi  
       2022-08-17 18:33:21 +08:00
    Windows 应用 32 位和 64 位有什么实质上的区别?
    moen
        8
    moen  
       2022-08-17 18:38:09 +08:00
    体验上的实质区别得在新的硬件上才体现得比较明显,因为 Android 的 64 位迁移已经是要靠硬件来强制推动,之前靠软件层面的推动都不怎么有效

    去年的一些三丛集 ARMv9 架构 CPU 只有大核保留兼容 32 位的指令集,这意味着 32 位的应用全程只能运行在大核上,利用不了超大核的性能以及小核的低功耗,相比 64 位的应用会显得性能不佳且耗电
    而 ARM 最新发布的公版 CPU 其大核也砍掉了 32 位指令集的兼容,这种情况下的区别就更明显了32 位应用根本无法运行
    AoEiuV020CN
        9
    AoEiuV020CN  
       2022-08-17 18:47:03 +08:00 via Android
    没感觉的,Windows32 位 64 位共存都多少年了,也没人拒绝 32 位,单从使用体验甚至无法判断是不是 32 位,
    ryanbuu
        10
    ryanbuu  
       2022-08-17 18:49:16 +08:00 via iPhone
    long 的长度不一样 [狗头]
    meteora0tkvo
        11
    meteora0tkvo  
       2022-08-17 18:51:46 +08:00 via Android
    @lakehylia 64 位原生支持 32 位啊,只不过 CPU 通信带宽被浪费一半了
    taobibi
        12
    taobibi  
       2022-08-17 19:43:13 +08:00   1
    你还别说,我打算实际测试一下,我还有能勉强开机的 nvidia tegra 4 设备,tegra 4 应该是 32 位 cpu 的性能绝唱了。测试一下纯 32 位性能和现在 64 位兼容 32 位的这种性能提升
    geekvcn
        13
    geekvcn  
       2022-08-17 20:55:35 +08:00 via iPhone
    没区别,内存寻址空间不同,不兼容 32 位可以减少软件维护成本和硬件晶体管数量。32 位软件同样的功能,在不需要超过 4G 内存的时候,占用内存反而更少。另外现在安卓应用大多数基于 WebView ,也就是 WebView 升级到 64 位罢了。32 位跑 int64 和双精度浮点,需要两个时钟周期,64 位只需要一个。所以为了性能,一般 32 位软件都用 int32 ,更容易数据溢出
    JensenQian
        14
    JensenQian  
       2022-08-17 22:16:20 +08:00
    以后安卓应该 32 位会逐渐消失了
    骁龙 8,8+,天玑 9000 这三安卓最新的顶级 soc 都是只有 3 个大核 A710 支持 32 位,arm 还说为了国内客户需求保留的
    JensenQian
        15
    JensenQian  
       2022-08-17 22:24:28 +08:00
    @JensenQian #14 还有国内四大手机厂商,华米 ov 的应用商店也不让 32 位的包上去了
    硬件还有软件上 32 位都会逐渐消失了
    刚看了下我手机上 32 位的还有一个中行 app 和 tim 是 32 位的了
    beginor
        16
    beginor  
       2022-08-17 23:40:30 +08:00 via Android
    64 位可以使用更大的内存,怎么样,很快手机内存也得卷上 32G 了
    WebKit
        17
    WebKit  
       2022-08-18 01:15:33 +08:00 via Android
    @z836454898 最新的骁龙 8 已经不支持 32 位了。运行 32 位应用是通过模拟进行的
    WebKit
        18
    WebKit  
       2022-08-18 01:16:41 +08:00 via Android
    @geekvcn 大多数基于 webview ?你从从哪里得出这个结论的。目前原生还是多于 H5 的
    XXWHCA
        19
    XXWHCA  
       2022-08-18 10:17:22 +08:00
    对纯 JAVA 应用来说没有区别,因为全部运行在 ART 虚拟机内,区别也是虚拟机指令集性能的差异。
    对于 Native 应用(涉及到 JNI ,NDK )来说会有一定影响,总体来说 arm64 会比 arm v7a 性能更好,但是一般无法更好来对比,因为硬件的发展导致新架构就算以兼容模式运行老架构代码,性能上也有很大的提升。还有性能上的影响很大一部分和代码编写有关,好的代码在老架构也是很高效的。
    XXWHCA
        20
    XXWHCA  
       2022-08-18 10:31:48 +08:00
    实际上省电是多方面导致的。最关键的是架构升级带来的指令集性能提升,然后就是硬件制造工艺的提升,这两部分就可以大大提升芯片性能并降低发热量;然后还有一部分软件方面的调教,通过控制芯片供电、频率等方式来降低功耗。
    实际上 cpu 的消耗的电量可以说全部用来发热了,性能的提升会缩短运行代码的时间,运行时间越短发热也就越小,从而更省电。
    但是这只是大部分场景下,还有一些特殊情况,比如芯片都有侧重点,比如最常见的 CPU 和 GPU ,如果使用 CPU 进行图像渲染,显然会很低效,所以 CPU 进行逻辑运算浮点运算等,GPU 进行图像运算,只有各司其职才可以更加高效。
    eyeshuaji
        21
    eyeshuaji  
    OP
       2022-08-18 12:12:36 +08:00
    小白了解了,谢谢大佬们解答
    SekiBetu
        22
    SekiBetu  
       2022-09-22 20:00:34 +08:00
    吃内存更多,可以一次性处理的数据更多
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5331 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 07:03 PVG 15:03 LAX 00:03 JFK 03:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86