发布网友 发布时间:2022-04-24 12:43
共5个回答
热心网友 时间:2023-10-13 05:20
尽管Android旗舰手机在核心硬件搭配方面已经不比iPhone差了,甚至在很多数据上面还要强于iPhone,尤其是在处理器核心数量、运行内存大小都要好过iPhone,不过Android手机还是没能改变用了一段时间之后就会很卡的常态,这到底是什么原因呢?原生Android当然会好很多,当然Android本身还是存在一些问题的,Android选择Java作为核心开发语言,而Java本身是一个虚拟机语言,加上Java语言确实也比较臃肿,加上Java语言的一些机制导致了Android的卡顿。
Android诞生之初,Google设计了Dalvik虚拟机,应用运行的时候Dalvik虚拟机会加载。文件并且解析成机器码供Android系统调度。到了Android2.2版本的时候,这是一个Android最早比较成熟的版本,Google正式引入了JIT即时编译机制,Dalvik使用过JIT进行编译,将代码翻译成精简的native code来执行,效率有了3-6倍4的提升。
不过这都没有解决根本问题,到了Android4.4的时候是一次比较大的提升,Google全新开发了虚拟机运行环境,这时候ART登上Android发展的重要舞台,这时候也引入了新的编译策略AOT,这时候ART和Dalvik共存了一段时间,到了Android5.0之后ART完全取代Dalvik,AOT成为了唯一的编译模式,AOT是静态编译,应用安装的时候就已经完成了编译,相对于JIT每次运行的时候编译的动态编译方式要更快。ART还改进了Android应用的垃圾回收机制,只需要一次回收暂停,优化了垃圾回收的效率,并且能够及时进行垃圾回收,减少了后台内存消耗和碎片化问题。
Android7.0之后JIT又回归了,Android又回到了AOT/JIT混合编译的时代,当然优点也有,不过这也侧面反映了一个问题,Google并不能从根本上解决Android存在的问题,因此Google不得不寻求Java的替代方案比如Kotlin,比如推进自家的Flutter框架,甚至尝试推出Fuchsia来取代Android,现在Google也是骑虎难下。
另外一个主要的原因就是到了国内,应用生态极其混乱,国内的应用开发商极其不规矩,让Android生态受到了影响。原生Android当然会流畅很多,在国外Google Play的管理还是比较严格,Android本身也比较纯净,没有乱七八糟的东西加进去,自然会干净很多,这一点大家去尝试一下一加手机的氢OS就会有比较明显的感觉,一加的系统比较接近原生,体验就非常好。
Android的问题是多方面,有本身技术选型的问题,也有生态管理上的问题,这两个问题非常棘手,不然这问题不早就解决了么,就看Google未来的长期战略是怎么规划的吧,是开发生态逐步规范化还是直接替代Android,就看Google自己的选择了。
热心网友 时间:2023-10-13 05:20
原生Android当然会好很多,当然Android本身还是存在一些问题的,Android选择Java作为核心开发语言,而Java本身是一个虚拟机语言,加上Java语言确实也比较臃肿,加上Java语言的一些机制导致了Android的卡顿。
热心网友 时间:2023-10-13 05:20
处理器影响运行速度程度当之无愧的排第一,处理器的好坏很大程度上影响一只手机的处理速度,就好比汽车的发动机,性能决定速度。
热心网友 时间:2023-10-13 05:21
因为机器人语言,Java本身是一个虚拟机语言,加上Java语言确实也比较臃肿,加上Java语言的一些机制导致了Android的卡顿。
热心网友 时间:2023-10-13 05:22
Android选择Java作为核心开发语言,Java语言的一些机制导致了Android的卡顿。