2026年10月31日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
45678
Lv6胸怀六国志等级图标等级图标等级图标
勋章勋章勋章勋章
帖子
197
回复
581
积分
74.1万
注册
2011-05-28
[休闲灌水]

我对android系统的看法

[复制链接]
查看 495 回复 3
楼主 发表于 | 只看该作者
1 人收藏

这里我发表一点关于我对android系统的看法,本质上讲android就是linux的谷歌版本,在linux运行谷歌公司开发的Dalvik虚拟机(个人觉得就和斯凯的mrp虚拟机类似),该虚拟机允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。在使用过程中,每一个linux会为安卓程序开启一个独立的虚拟机,读取应用程序中的dex字节码来运行。dalvik进程管理是依赖于linux的进程体系结构的,如要为应用程序创建一个进程,它会使用linux的fork机制来复制一个进程(复制进程往往比创建进程效率更高)。类似于java,dalvik是Android程序的虚拟机。

为什么相同配置的android系统的手机会没有ios和塞班运行流畅呢?很多人将它归结于两个系统的显示机制的问题,其实不然。一是因为android系统其实是运行dalvik虚拟机的linux系统,android的硬件利用率没有ios高,ios作为封闭式操作系统,对硬件利用率是非常高的,如网上有种说法我比较赞同,就是android是硬件兼容系统,而ios和塞班是系统兼容硬件,既ios和塞班是为特定的硬件设计特定的系统,而android是只要硬件达标就可以使用。这中间就有个硬件利用率的问题,android硬件利用率是比较低的。二是因为android虚拟机的自动回收机制,大家都知道,在android2.3之前的机子用起来都是卡卡的,这就是因为android得自动回收机制产生的,android虚拟机在运行程序的时候会随时检查内存,当检测到没有使用的资源的时候,虚拟机将会停止程序清理内存,清理完成后才会继续运行,这个时间是人类可以察觉到的几十毫秒,所以程序会出现卡顿。而2.3之后,谷歌对虚拟机进行了优化,在androidapi里添加了NDK,NDK是android的一个跨越,它使得开发人员可以通过NDK来调用c语言运行库.os文件,它的出现使得android开发人员可以通过c语言优化内存(java语言是无法访问内存的),而不必等待虚拟机的自动回收机制来回收。使用NDK的时候,C语言编写的代码将直接运行在Linux底层,脱离了虚拟机在运行,开发人员调试起来不方便,如果内存控制不当的话可能产生很多不良后果,但是它的效率更高,所以很多大型游戏需要使用NDK来开发。

登录回复
115254
Lv7可吟七步诗等级图标等级图标等级图标等级图标
勋章勋章
帖子
0
回复
4,610
积分
97万
注册
2012-07-11
1 楼

嗯嗯,虽然不是很明白,

143092
Lv8能识八方语等级图标等级图标等级图标等级图标等级图标等级图标等级图标等级图标
勋章勋章勋章勋章勋章
帖子
14
回复
1,067
积分
59.9万
注册
2013-09-15
2 楼

嗯嗯

104625
Lv5甘首五朝臣等级图标等级图标等级图标
勋章勋章勋章勋章勋章勋章勋章
帖子
10
回复
1,186
积分
4,253
注册
2012-04-20
3 楼

。。!!!

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块