本文来自CSDN博客,转载请标明出处:http://blog.chinaunix.net/u3/90973/showart_1976114.html
昨天在MSN上和一个朋友交流。他们公司原来在做基于GTK的Linux手机框架。交谈后,才知道他们公司已经不做GTK,改做Android方案了。我们谈了一会儿,这个朋友比较看好Android。最后我说:“Android很可能用Linux打败Linux手机。在Android出现后,恐怕很多人都会失去继续做GTK方案的决心”。
1 Android
1.1 简介
Android是是OHA组织发布的手机软件栈,包括操作系统、中间件和主要的应用。OHA是Google主导的一个行业联盟。因为Google的名气太大了,我们通常也把Android说成是Google的方案。把基于Android的手机说成是gphone,把HTC的第一款使用Android 的手机说成是G1。
Android采用了Linux内核,但它没用任何Linux的GUI方案。它的应用框架和GUI库都用Java语言实现。 Android内部有一个叫作Dalvik的Java虚拟机,Java程序由这个虚拟机解释运行。 Android平台的应用程序必须用Java语言开发。
1.2 讨论
我在 旧文 中谈到Android的两个问题:
Google目前只开放了SDK,即应用软件的开发接口,没有开放中间件的源代码。
Android的设计很漂亮,但是否实用还有待实践检验。
第一个问题已经不存在了,因为Android在10月份已经开放了所有的源代码,我自己也 编译过。关于第二个问题,我主要是怀疑java的效率不适合嵌入式环境。但据使用过G1的朋友说,速度可以接受。
有的网友说基于Android的开发成本很高,例如没有输入法框架。但听朋友说Android计划在明年一月份推出输入法框架。做scim的苏哲现在应该在Google吧,不过他应该不会做Android。虽然软件计划一般都会推迟,但Google还是有一定可靠度的。
2 Linux手机
虽然Linux手机的市场份额还少到可以忽略,但Linux手机的平台、联盟、框架却很多。有位CSDN的 网友曾经说过要比较7个Linux手机平台的异同点。这个朋友说的7家是:Maemo、Limo、GPE、Android、ALP、LiPS、OMA。 LiPS已经不干了。Maemo目前还是MID方案。GPE是PDA环境。我没看过 OMA发布过什么方案。 ALP最近有三星取消一款使用该平台手机的 传闻。
其实除了这几家,做Linux的公司或组织应该还有很多。还不时听到新的方案,例如 Jalimo,与Android类似在Linux内核上做Java框架。国内也有不少公司做过QT或GTK的方案,只是比较低调,连开放SDK的都很少。其实,iphone应该也是Linux的近亲。iphone的Mac OS X也是类Unix的系统。但我想Apple不会认这门亲戚。
Linux手机的GUI方案主要有GTK和QT。QT的Qtopia Phone Edition(QPE)原来是商业软件,从4.3版开始用GPL开源。Openmoko平台的ASU方案就集成了QT。 GTK一直是由开源组织维护的开源软件,比QT开放,所以很多平台选择了GTK。
Android算Linux手机吗?从开发技术来看,我认为它不算。我认为在技术上iphone比Android更接近Linux手机。
3 Openmoko
Openmoko是最早的开源手机方案,目前也还是开放最彻底的方案。软件到硬件、电路图到结构图全部开放。 Openmoko目前主要有三套软件方案: OM-2007.2、ASU和FSO。这3个方案我都在freerunner上用过,从普通用户角度来看,这3个方案的发布版本都不像正常的手机。
当然这也不能怪Openmoko。因为Openmoko本来就是给开发者学习、试验的。至于freerunner要面向普通用户的说法,我觉得只是一个笑话。千万不要把半成品给普通用户看到,否则它就没有必要成为成品了。
有时我觉得Openmoko的开发者还是在按照PC软件的思路开发,而不是做手机。例如Openmoko的所有方案中没有一款会提示用户没插入 SIM卡,只说找不到网络。我在gsmd(后台通信模块)中看到一个分析AT命令的缓冲区长度被定义为64K(MLPARSE_BUF_SIZE),而且这个缓冲区在开机分配后就不会被释放的。这样太浪费了。我曾经在一个总共只有64K内存的系统中实现过与gsmd类似的功能。这是个转发系统,如果不用考虑转发系统的缓存,其实32K就够了。
3.1 OM-2007.2
OM-2007.2是一套基于GTK的方案,也是Openmoko最初的方案。我觉得除了界面操作不便、功能少、有时接不到电话外,还是做得不错的。但是Openmoko没有坚持完善这套方案,而是又搞了ASU。
OM-2007.2后台通信模块是gsmd。后台通信模块就是通过AT命令与GSM模块通信的软件模块,系统其它模块通过后台通信模块使用GSM模块提供的通信功能。 gsmd通过socket向其它进程提供服务。 Ryan Paul 说GTK的局限性和gsmd的不完善使得Openmoko改用QT方案。我觉得这个理由不充分,gsmd是个很小的模块(12323行代码),完善它应该不算太困难。至于GTK的局限性,从很多优秀的基于GTK的项目来看,即使有什么局限性,也不是来自GTK本身。
3.2 ASU
ASU也被称作OM-2008.8。Openmoko最新的Makefile默认将openmoko-asu-image作为构建目标。 ASU是April Software Update或者August Software Update的缩写。计划在4月发布,后来在8月发布。
ASU的后台通信模块改用了QPE的通信组件。除了QT外,ASU还集成了Enlightenment的E17桌面环境的一些组件。 Enlightenment也是一个Linux桌面环境,它有一个叫作EFL的GUI库。 EFL是Enlightenment Foundation Libraries的缩写。
ASU声称同时支持GTK、QT和EFL的开发。但在OM-2007.2上开发的应用,如果使用了Openmoko的框架或者gsmd,在ASU就不能运行了。
3.3 FSO
FSO是FreeSmartphone.Org With FSO的缩写。 FSO是一个不包含UI的手机框架。它封装了所有与UI无关的手机功能,并通过D-Bus总线提供调用接口。
FSO并不限于Openmoko,它的 目标 是制定一个开放、统一、独立于UI的手机中间件规范。我很欣赏这种专注做好一件事情的做法。 FSO有清晰的 开发计划,规划了每个milestone要实现哪些功能。目前已经发布到milestone4。
FSO版本的Openmoko映像包含一个叫作zhone的参考UI。zhone使用了一个叫作Illume的窗口管理器。 Illume是Enlightenment的一个组件。
上面两张图片选自Openmoko的wiki。其实,目前最新的FSO milestone4中,zhone还没有实现拨号功能。
4 框架
在FSO推荐阅读的一篇 文章中有这么一段话:
When someone uses a framework - or, for that matter, a programming language - what they are really doing is delegating decision-making to someone who they think will have better judgement.
我们在使用一个框架的时候,是委托框架的设计者帮我们做出决定。我们相信这个设计者更了解框架涉及的领域,能够做出更好的决定。一个好的框架应该告诉用户怎样做,而不是给用户太多的选择,让用户无所适从。
文章的作者认为同时向用户提供两种脚本语言不是一个特性,而是一个错误。如果同时提供4种脚本语言,那就是一场噩梦了。 Openmoko有3套不成熟的软件方案,其中的ASU向我们提供了GTK、QT和EFL三种应用程序开发方式。这是特性、错误、还是噩梦呢?其实只是不得已吧。
我们对框架的最基本要求就是:一致和自洽。进一步的要求包括文档完善、易于学习。
相对于Openmoko,Android提供了一个相对稳定、文档完善的框架。如果你是应用开发者,你会选择Android还是Openmoko呢?
其实,拿Openmoko和Android比较很可能是不合适的。如果Openmoko的目标只是为开发者和学生提供一个学习、研究Linux手机的软硬件平台,那么Openmoko做得够好了。很多人正在将Android移植到Openmoko的硬件平台。
5 Android影响了谁?
在相对长的时间内,Andoid和WM、Symbian和iphone不会产生直接的冲突。WM、Symbian和iphone都有自己的消费群体。但Android会直接影响其它Linux手机方案。
因为Android是个完全开源的方案。而开源、开放正是其它Linux手机方案的主要特色。 Android采用java,肯定会付出一定的性能损失,但却换来了一致、简单的编程接口,降低了应用开发难度。相对于Android,GTK应用的开发难度要大得多。
Android将在两个方面打击其它Linux手机方案:
Android会分化Linux手机系统的开发者。
Linux手机系统的开发是很困难的。网上有段比较搞笑的 评论:
“去年在北京各个手机设计公司拜访了一大圈,包括德信,联想,cect,还有一大堆小一点的公司。一谈到linux上做手机,cto们都老泪纵横,有个大公司的cto拉着我的手,捶着胸口说:70个人,8个月,8个月啊,那么点功能都没有做出来。搞得我后来吹手里的android平台底气都不足了。”
在Android完全开源后,还有多少公司和开源开发者会坚持艰难、前途未卜的Linux手机开发呢?
Android会吸引大量应用开发者。
其实各种Linux联盟、论坛的最终目标就是制定一个统一的Linux手机应用软件平台。在Android提供了这样一个平台后,其它组织就在一定程度上失去了原本的使命感。应用开发者会自发地选择易于学习、影响力大的平台。一个平台在聚集了更多的开发者后就会更加强大,再吸引更多的开发者。我们能设想出一个在上手度和影响力上超过Android的Linux平台吗?
6 结束语
Android和linux手机平台的矛盾并没有什么正邪之分,只是技术实现的此消彼长。技术上的激烈竞争有利于消费者和技术进步,但对于涉身其中的开发者多少有点残酷。
我在一篇旧文中说:“在移动状态下,人类通过手机这个终端接入信息社会这个巨大的网络;信息社会通过手机这个平台将内容发布给人类”。其实,Google关注的是信息的接入平台,而不是手机的设计、制造。这也是Google为什么会把方案完全开放的原因。但Google的强势介入确实对原有的生态环境带来一定的影响。
因为Goolg图谋的是信息平台,所以Android的很多应用都对带宽有较高要求。虽然WiFi能起到一些补充作用,但目前的网络环境暂时还不适合Android手机的大量普及。所以,其它Linux手机方案还有一定的发展时间和空间。我希望在这段时间里能出现一个一致、自洽、文档完善、易于学习的开源Linux手机方案。
昨天晚上陪儿子看了一会儿《霍尔的移动城堡》,小姑娘苏菲因为帮助霍尔而被荒野女巫诅咒,成了苏菲婆婆。我想如果我也被诅咒而失去大量时光,在剩下的时间里我会做什么呢?答案很简单,还是抓紧时间做自己必须做和喜欢做的事情吧。
本文来自CSDN博客,转载请标明出处:http://blog.chinaunix.net/u3/90973/showart_1976114.html
分享到:
相关推荐
Android,作为全球最广泛使用的移动操作系统,由谷歌公司在2008年推出,自那时起,它已经深深地改变了我们的生活。Android系统基于Java、C和C++语言编写,其核心组件运行在Linux内核之上,这使得它具备了出色的稳定...
Android作为全球最流行的移动操作系统之一,其开放性和广泛的设备支持使得开发者有机会创造出各种各样的应用,满足用户的多样化需求。本项目针对这一背景,设计并实现了基于Android系统的记事本应用,旨在提升记事...
随着技术的发展,智能手机已成为人们日常生活中不可或缺的一部分,它们不仅具备基本的通话功能,还拥有强大的计算能力和多种内置传感器,为开发人员提供了无限的可能性。从2008年开始,Android系统便开始支持多种...
### 在Android上使用ZXing识别条形码/二维码 #### ZXing简介与应用背景 ZXing(发音为 "zexing",源自 "Ze Xen...这项技术不仅能够简化用户的日常生活操作,也为开发者提供了更多的可能性去探索和创造新的应用场景。
选择此课题的意义在于,随着社会进步和科技发展,智能手机已成为日常生活不可或缺的一部分,特别是Android系统因其开放性和性价比在市场中占据主导地位。然而,当前市面上大多数学习类应用主要针对学生,面向课堂的...
**正文** Neurosky Android SDK 是一个专门为Neurosky MindWave移动脑波感应耳机设计的软件开发工具包,它允许...通过深入理解并实践这个SDK,开发者能够创造出富有创新和个性化的应用,将脑波技术融入到日常生活中。
《基于Android的移动应用app安全卫士源码详解》 在当今信息化社会,智能手机已经成为我们生活中不可或缺的一部分。Android系统作为全球最...这对于我们提升自身技术水平,为用户创造更安全的移动体验具有重要意义。
【基于Android移动电子商务系统的研究与设计】 随着移动通信技术的飞速发展,电子商务已经不再局限于传统的互联网环境,而是转向了更为便捷、灵活的移动电子商务模式。这种模式突破了时间和地域的束缚,允许用户...
这些功能的集成,使得"Project-AndroidStudio"成为一个功能完备的移动摄影解决方案,无论是在日常生活中记录美好瞬间,还是在社交媒体上分享个性化的照片,都能满足用户的需求。 总的来说,"Project-AndroidStudio...
在当今信息化社会,移动设备已经成为我们生活中不可或缺的一部分,而Android作为全球最受欢迎的智能手机操作系统之一,其安全性问题也日益引起人们的关注。"基于Android的移动应用安全卫士源码"提供了一个宝贵的资源...
随着信息技术的高速发展,移动设备已经渗透到人们的日常生活,成为不可或缺的一部分。为了满足不同用户的需求,各种应用于移动设备的软件应运而生。移动学习作为一种新兴的学习方式,逐渐受到人们的关注。在众多的...
在当今数字化时代,移动设备已经成为人们生活中不可或缺的一部分,而Android操作系统作为全球最广泛使用的移动操作系统之一,其背后的技术框架和设计哲学吸引了无数开发者和科技爱好者的关注。本文将深入探讨Android...
【基于Android平台移动导游应用】 随着智能手机用户数量的迅速增长,尤其是在2015年至2020年间,从19.1亿增加至预计的61亿,移动技术领域的发展变得至关重要。在印度尼西亚,智能手机用户在全球排名第七,它们在...
随着互联网技术的飞速发展,移动应用程序已经成为人们生活中不可或缺的一部分。在这个领域,Android平台因其开源、灵活的特点占据了主导地位,吸引了大量的开发者和用户。然而,面对日益激烈的市场竞争,开发者必须...
其企业理念强调创新和价值创造,这对于实习生来说是一个良好的学习和成长环境。 3. **软件工程实践**:公司拥有完整的价值链和细致的软件服务,这展示了软件开发的实际流程,包括需求分析、设计、编码、测试和维护...
在当前的数字化时代,移动设备已经渗透到我们生活的方方面面,Android作为全球最广泛使用的移动操作系统,为开发者提供了广阔的创新空间。结合云计算技术,Android平台能够实现更高效、更智能的应用开发,大大提升...
在今天的移动设备时代,移动应用程序已经成为人们生活中不可或缺的一部分。基于 Android 平台的移动图书馆客户端设计与开发正是满足这种需求的解决方案。该系统的设计目的是让人们能够在基于 Google Android 平台的...
随着信息技术的飞速发展,Android移动终端在各个领域的应用日益广泛,其中在智能图书馆中的应用更是展现出巨大的潜力。智能图书馆是信息化时代图书馆服务的升级版,它结合了移动终端技术,实现了图书资源的数字化、...
**正文** 在移动应用开发领域,地图服务是一个不可或缺的部分,特别是在...通过熟练掌握并运用这个SDK,开发者可以创造出功能强大、用户体验优秀的地图应用,满足用户在导航、出行、生活服务等多个场景下的需求。