关闭
搜索
搜索
本版
帖子
用户
热搜:
程序员
简洁模式
高级模式
用户组: 游客
消息
提醒
新听众
我关注的
帖子
道具
勋章
任务
设置
退出
请
登录
后使用快捷导航
没有帐号?
立即注册
设为首页
收藏本站
开启辅助访问
切换到窄版
登录
or
立即注册
快捷导航
搜索
首页
论坛
BBS
MCU单片机技术
程序员交流
为什么Android不可以绕开虚拟机直接运行?
[复制链接]
作者:
冰雪一刀007
版块:
›
嵌入式操作系统
›
linux
发布时间:
2021-1-24 16:46:01
1096
0
返回列表
冰雪一刀007
当前离线
注册会员
注册会员, 积分 116, 距离下一级还需 84 积分
注册会员
注册会员, 积分 116, 距离下一级还需 84 积分
积分
116
发消息
楼主
电梯直达
冰雪一刀007
发表于 2021-1-24 16:46:01
|
只看该作者
|
倒序浏览
|
阅读模式
安卓是谷歌将它从开源linux上改造而来,依旧保持开源特性。为了应用开发者更多地开发安卓程序,自然也就保留了linux上的虚拟机机制。同时,安卓的目标是手机等移动终端,这些设备的处理器五花百门,而且开源安卓也会被各种深入定制,这同样导致了安卓依然沿用了虚拟机机制来保持高兼容性。当然,这些华为研发了方舟编译器,让系统直接运行机器码,以此来消除虚拟机带来的弊端。
安卓系统最早并不是谷歌研发出来的,而是一家名叫Android的初创公司研发的。这家公司成立22个月后,就把原始Android雏形系统以4千万美元的价格卖给了谷歌。这个雏形原本就基于linux系统研发而来,自然里面也还是沿用了linux的虚拟机机制。
谷歌拿到系统后,自己继续研发Android系统,在2007年还集合了84家当时一流的硬件厂商组成研发联盟。整个研发依然还是基于linux开源系统,但它解决了商业化的一个大难题。那就是,linux是开源系统,是有GPL开源协议的。很多硬件厂家为了适配该系统,必须将在上面研发的驱动程序公开,一旦公开驱动程序代码就相当于公开了自己的硬件设计。而谷歌研发的Android系统解决了这个问题,它将驱动程序放置到了userspace里面,并让它可以通过l内核访问硬件。同时,公开接口就可以让硬件厂商编写驱动程序。硬件厂商只需要提供驱动程序即可,不需要公开源代码了。
这么多硬件厂商一起研发,自然就会面临一个问题就是每个厂商的硬件都不同。这对Android生态发展来说是个必须解决的兼容性问题。最好的办法依然是沿用linux的虚拟机机制,这样Android的软件作者就无需针对不同硬件重新开发软件。只需要一次开发就可以在安卓系统上的虚拟机中运行。
安卓的虚拟机机制在很大程度上解决了兼容性的问题,但是这种边解释边执行的方式,也降低了软件的运行效率。这些年,华为在这方面的研发上花了大功夫,成功研制出了“方舟”编译器。该编译器就是为了解决这个问题而诞生的。如果软件作者采用方舟编译器重新编译自己的程序。它的软件就可以以机器码的形式在安卓系统上高效运行,并且方舟编译器还会对程序进行优化。按照华为方面的数据显示,使用华为方舟编译器编译后的程序,操作流畅度提升24%,系统响应速度提升44%,第三方应用操作流畅度提升60%!
Android没有绕开虚拟机直接运行,是因为从它研发之初为了保持高兼容性,不得不沿用了虚拟机的机制。但在这些年,华为研发了“方舟”编译器,就是为了解决这个问题。通过方舟编译器编译后的程序可以直接以机器码的形式在安卓系统上运行,效率大大提高。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
收藏
0
相关帖子
•
超详细的PyCharm教程,必须收藏!
•
说说鸿蒙操作系统
•
Linux操作系统应用试题
•
缅怀那些年盗版XP系统:不仅埋葬了我的青春,还弄坏了我的电脑
•
INTEWELL案例为智慧风电保驾护航
•
怎样参与鸿蒙?
•
风河正在引领RTOS进入“现代化”创新期
•
Android面试必备:System、App、Activity启动过程
•
麒麟操作系统什么来头?为什么可随中国航天“上天”
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
表情
@朋友
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表