百科问答小站 logo
百科问答小站 font logo



Android为什么不直接执行Linux的程序?而是自己搞一套? 第1页

  

user avatar   bluedrum 网友的相关建议: 
      

1.Android 本身运行Linux之上,同样环境可以直接运行Linux程序的。只不过Android的标准C库是重写过,所以在Linux 下编译动态链接程序无法直接运行,但静态链接程序或者是在Android的环境重编译一次后是可以运行。比如说root后手机运行嵌入式shell解释器--busybox 。就是一个标准Linux C程序,只不过重编译一下。

Android 自己也带了大量小工具,比如手机上运行 setprop ,getevent 就是命令行工具。

并且程序还能跳开Android界面直接操作显存,这样就象粗暴把屏幕冲掉一样。

2.Android 开发一整套框架的最核心的原因,在iphone当出世的年代,其它能够与其抗衡的移动设备GUI框架几乎没有。比如支持多点解摸,比较漂亮又适合移动设备界面,以及一个移动设备需要配套各种支持组件(成熟的输入法,硬件配置,移动的浏览器,稳定的电话通讯模块)。Android自己从头写一套东西。

至于说其它,使用java虚拟机,HAL版权保护之类,都是这个出发点带出来东东。

ps: 魅族的M8相当于实现Android一半的工作量。它在WinCE上几乎完整开发一整套体系。但是很可惜这个WinCE太不给力,主要对新兴硬件支持很难。还不如在Android上来改进。

ps2:Moto出一款在中国大卖的 A1200 到后升级到A1800。就比较超前的Linux手机,用的Qtopia,就是后来死在Nokia手里MeeGo 前身,也有一整套东西,但是公司实力太小了,而当时没有iphone 界面参考,大家都是很简单的图形界面,即便这样已经超前很多了。




3.至于说Android 说的自己HAL可以跳开开源协议,做自己的私有驱动,至少我看到几乎没几个产家这样做。现有HAL驱动仍是对Linux的驱动的封装,很简单Linux的驱动又多又好,更新还快,免费拿来马上就用。自己重新整个还得自己花钱请人开发,不见的比Linux做得好,而且调试相当相当相当麻烦,我相作做过Android HAL驱动的人最常见动作就是不停重启机器吧。




  

相关话题

  固态硬盘适不适合Linux呀? 
  只靠读代码 debug 不会单步调试能当编程高手吗? 
  C#里面将对象实例赋值为null会否加速GC释放资源? 
  在测试驱动开发中 如果测试写错了导致单元测试过不了怎么办?如何保证测试的正确性呢? 
  为什么有人在学习初段效率惊人,而在过了入门阶段之后兴趣与学习能力都迅速下降? 
  23岁曾放弃编码,现想重新编码,我该如何做? 
  “此应用专为旧版鸿蒙打造”是什么意思? 
  你的手机放在哪个兜里? 
  为什么服务器上没有HDMI接口? 
  Linux和Windows可以安装在任何个人电脑上,而安卓却需要为每台设备定制一个版本的原因是什么? 

前一个讨论
Evernote 5 for Mac 的使用体验如何?
下一个讨论
怎样自己写一个简单的操作系统?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利