百科问答小站 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驱动的人最常见动作就是不停重启机器吧。




  

相关话题

  为何抵触爬虫? 
  如何反驳“代码混淆只是降低了可读性,安全性并没有得到实质提升”的观点? 
  数学/算法:正方形内有5个点,为什么最近点对的距离小于边长? 
  如果一定要在C++和JAVA中选择,是C++还是java? 
  “C++”读作「C 加加」,为什么“C#”不能读作「C 井」呢? 
  Windows 辨别文件为什么一定要扩展名?感觉 Linux 上要求就没有这么高? 
  用数据线连接手机和电脑后,可以在手机上访问电脑硬盘中的文件吗? 
  既然有些人喜欢开挂,为啥不开发一款网游,提供编程接口,允许玩家自行用各种软件,同时允许计算机参与计算? 
  JSON「最后不能加逗号」是不是错误设计? 
  为什么技术主管跟我说程序员学算法不是最重要的,从工作项目中学习实际才是最重要的? 

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





© 2025-04-24 - tinynew.org. All Rights Reserved.
© 2025-04-24 - tinynew.org. 保留所有权利