一场关于Android的争论

来源:互联网 发布:华南热带农业大学 知乎 编辑:程序博客网 时间:2024/04/28 19:46

 周日去查找Android资料,却偶然在百度Android贴吧发现一个名为“Android只是在Linux平台上运行了一个Java虚拟机”的新贴,觉得此说法存在一定片面性,便进行了回复。没想到,随着讨论的升级,内容却越回越多,几乎不下于一篇专述Android与相关平台的博文。于是全文复制到自己博客之上,有部分说法可能存在误差,仅供读者大人参考评判。

原文地址在此:http://tieba.baidu.com/f?kz=662574456

59.151.106.* 发帖:

Android只是在Linux平台上运行了一个Java虚拟机。因此,他也只是称得上手机系统而已,并不是真正的桌面操作系统。可能正是如此,他在操作上并不能和Iphone媲美。  不过,Nokia 的Maemo系统应该能和苹果一比高下。因为Maemo是真正的桌面操作系统,Nokia只是把它移到了手机上。

笔者答:
     
准确地说,Android是一个异化的 JVM + 一个2.6以上版本的Linux,将DalvikVM封装在Linux之上,保证了系统间的通用性与可移植性(如果加入适当封装的话,甚至可能令部分程序不更改代码同时运行于PC与Android手机)。当然,DalvikVM并非标准JVM,因此在线程处理,资源回收等方面和标准的JVM还是不同的,这也决定了开发者在编码时有所差异,增加了Java程序的移植复杂度。

苹果有自己的 Mac OS内核,iPhone标准开发语言主要采用Object-C,它的硬件与软件标准高度统一,毋庸置疑,其运行效率,程序性能上肯定较使用 DalvikVM的Android为优,但是移植性,整体开发效率就低了一些,而且这些缺点也会随着硬件的不断升级而逐渐缩小(虽然不能彻底消除,但使用者将逐渐无法感知差异) ,可以说互有利弊。

Maemo 基础同样是标准Linux平台,只是Nokia花了相当心血在组件支持上加以改进,性能较优秀而已,但是推广程度却不可能同技术领先的iPhone或者开源的Android抗衡,未来的智能手机潮流,始终要在iPhone与Android中二选一。(因为楼主无视Windows CE,我就不提了,反正也不看好……)

59.151.106.* 发帖:

不要忘了,Maemo是开源的。现在塞班都要开源了。
真正的对决,是在Maemo和Android之间进行的,因为在此之前,苹果的系统早就淘汰了,除非他作出改变。另外,正是Android的操作是通过虚拟机向linux内核传递的,效率会减少。所以在操作流畅度上会比Maemo差。谷歌对android是有所保留的。

笔者答:

首先,Symbian开源也没戏,玩过Symbian程序认证的就知道为什么。其次,虽然开源平台很多,比如Maemo、Moblin等,但我们也都知道,一个产品的推广,技术只是其次(更何况,iPhone与Android技术也不次),渠道才是最重要的。Maemo的忠实用户群能够和苹果与Google 相提并论吗?不可能的。不信,你随便打开个手机论坛,看看排在智能手机区前三的是不是iPhone、Android以及Symbian,这是后台决定的……

虚拟技术是会减低响应速度,却会提高可以通用性,并且减低开发难度,极大提高应用程序数量。(事实上,Android Market的程序数量已经开始暴增了) 而且我已经说过,随着硬件的改进,这种差异性会越来越少,直到用户完全无法察觉。(Android也都出到2.0了)

另外Android完全开源,以最普及的Linux及Java技术为核心,你认为它不好,厂商可以自己改进嘛,只要能通过标准化认证即可(想起了传说中的OPhone……残念中……这是劣化……),再者Google已经声明不会生产自主品牌的手机,说Google有所保留,是不是太臆测了?

dcfhvk 发帖:

其实开不开源跟用户没多少关系,和用户关系最大的还是操作+界面+于机器的交流。开源只跟开发者有关系。封闭的苹果能有今天就是很好的说明。塞班的消失仅仅是因为他老了。目前来说android的操作是比较缓慢的,界面就看个人爱好了。
谷歌当然保留了,甚至还没有maemo开放的彻底。搜一下就知道了。

笔者答:

1、吸引开发者,就意味着吸引用户啊!试问一个不容易吸引开发者的平台,怎么可能诞生出大量吸引客户的应用呢?比如iPhone,之所以能够吸引用户,恰恰是由于它统一的硬件与软件环境,与丰厚的开发利润,吸引了大量开发者为其开发程序,获得超过10万的应用软件支持,最终
由应用吸引住用户。而作为后起之秀的Android,要想在短期内赶超iPhone,就只能依靠开源。(举个例子,若不靠开源,单凭当初Sun的财力,能将Java捧到今天的地位?这年头,有钱的靠钱场,没钱,当然就得靠人场了。)

2、不明白你在说什么{谷歌当然保留了,甚至还没有maemo开放的彻底。搜一下就知道了}……来源请求……
    
219.130.13.* 发帖:

封闭的塞班,封闭的苹果为什么能有这么多软件呢,而且他们也取得了很大的成功。
收费的windows 为什么能比Linux普及,还不是用户的选择嘛!
况且手机平台并不像PC平台。

笔者答:

Symbian 的早期成功,在于它出现的时间太早(98年就开始研制),而且由诺基亚、索尼爱立信、摩托罗拉、西门子等公司共同开发,又分别在对应的智能手机平台上普及,在同领域中,根本不存在有力的竞争对手(无视Windows CE,手机领域M$真不成),所以才能一枝独秀。

而说到苹果 iPhone,我们都知道乔布斯的另一个称呼,“苹果教主乔布斯 ”,也知道世界上有一群被戏称为“果粉”的苹果死忠派。(如果不明白怎么回事,建议去看看《硅谷海盗》这部电影)虽然在“量”上这群人没有M$的使用者多,但在“质”上,我们却不得不承认他们普遍比M$受众“精英化”,其中更不乏优秀的软件开发者。iPhone的出现,极大的刺激了这群人的开发与消费欲望。除去本就具备一批铁杆开发者的支持外,唯我独尊的苹果iPhone,还有一个最大的优点,那就是平台与硬件高度统一(知道不同硬件配置下,调试有多麻烦吗?),以及
AppStore超高的开发回报率(三七分成),这些对于普通开发者而言都是无法抗拒的诱惑,吸引到大量优秀开发者投身其中,也决定了iPhone的必然崛起。

所以我一直说,未来的智能机发展模式(我说的是模式,不排除有更好的OS问世,但目前还没有),始终要在iPhone与Android中二择其一。

PS:不要把智能机与PC分得太开,这两者间的界限会越来越小,直到分野消失。我敢这样断言,三十年后,能占领绝大多数智能机市场的人,最终也将占领绝大多数微机市场。

219.130.12.* 发帖:

上面也太抬高Android了吧,目前谷歌面临的巨大问题就是分裂,大家谁都可以用它,然后自己加些东西,删些东西。然后每家的android都是一个独立的系统,这并不太兼容。最后android会沦为山寨的专利,这是迟早的事情。
因此谷歌必须做出一些限制,以防止它分化严重。但是,只要他开源,它就有可能分化。
更严重的是,谷歌自己没有做手机硬件,她只能给厂家提供软件,不能做出带头作用。
nokia的maemo就有点不同,她开源,但是nokia是生产硬件的,这是一个很好的主导。

笔者答:

Android 不是无法硬性标准化,只是市场普及度不够,Google还没有必要过于标准化而已。譬如Java也是开源的,IBM、SUN都有自己的JDK实现,为什么大多数应用却可以相互通用呢?因为有JSR(Java Specification Requests)这个途径与 JCP(Java Community Process) 这个组织存在,以Google的财力,影响力,技术储备,搞出一个类似的组织与标准,也不是什么大事吧?事实上,你可以根据源码乱改Android,但如果你改出的代码不能够被标准化,不能够被兼容,那么将没人承认你的手机是Android手机。

再者,因为Android采用Java作为应用程序开发语言,无论厂商怎么改Linux部分,只要能让DalvikVM(没有DalvikVM,还能叫 Android吗?……)正常执行,那么所有的应用也就必然可以在你的平台上通用,这也是Java特性所决定的。就算厂商闲的没事增删几个类库,在程序中检测一下手机厂商型号,开发者也很容易做到通用,毋庸置疑,Java的优势本就在这里。

至于Maemo,现在看着就半死不活,粉丝没有苹果与Google的多,经营模式上也无甚亮点,技术上又不见根本性的创新(说破天,无非也是个Linux系统,大家都一样),固守Nokia市场或许可以,想同Android和iPhone玩?等来世吧(不客气地说,Maemo未来与Windows CE孰优孰劣都不好说)……

219.130.12.* 发帖:

仅仅只是从用户体验来说,目前我是看好maemo和苹果的,但是同样对android保持信心,因为有谷歌做后台嘛!至于粉丝到底谁多,经营模式这方面就不乱评论了。
    
笔者答:

用户体验还是用户说了算,目前在智能机领域,iPhone明显占优,其次Android发展也很快,对Maemo不看好。比如国产的M8,宁选 Windows CE以及Android,也不用Maemo,虽说国内厂商是一群只跟潮流的家伙,却从侧面证明了Maemo不是潮流……

219.130.12.* 发帖(说实话,偶不明白219.130.12.*发此贴干什么,似乎想证明Maemo也能跨平台?):
    
关于 Qt
Qt 是跨平台的应用程序和 UI 框架。使用 Qt 您只需一次性开发应用程序和用户界面,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt Development Frameworks 前身为 Trolltech,于 2008 年 6 月被诺基亚收购。有关 Qt 的更多详细信息

笔者答:

你明不明白,C/C++的“一次编写,到处编译”和Java的“一次编译,到处运行”完全是两个概念。

运行于DalvikVM之上的 apk文件,无论Android衍生出多少版本,只要DalvikVM可以正确执行,那么apk就可以正确执行,一个apk文件用到底轻而易举,不管什么厂商,什么机器,不管你是Windows也好,Linux也罢,只要你有DalvikVM,就全能运行。

而Qt则不然,比如我在Dev- C++中以Qt生成界面,再将它编译成一个exe文件。把它放在Windows中运行,能不能用呢?当然可以。但也只局限在Windows中,因为到了 Linux平台,需要二次编译。什么叫二次编译?简单点说,就是把你的c以及cpp文件,丢到编译器里再跑一次。这时生成的文件,放在Linux下能不能运行?能。但是,放回Windows却不行了。因为此时生成的机器码针对Linux,而不是Windows,反之亦然。

说白了,一旦你要多系统的使要Qt,你这辈子就和编译干上了。因为,你无法保证你针对的Linux平台所使用的api以及头文件等与你Qt中所使用的相对应。比如同样一个Qt应用,同属Linux环境,你在redhat8里可能没事,到了ubuntu9或许就玩不转了,就是这个原因。除了交给用户自己编译之外,怎样最保险呢?没办法,你在一个系统下跑,就生成一个文件,你要在六个系统下跑,那就生成六个文件……事实上,不光你用Qt开发需要编译,就连你安装Qt运行库都需要编译,否则的话,你大有可能连Qt的设计界面跑不起来。(有些Linux版本可能内置Qt环境,但你
在升级时就会发现问题了)

当然,你可以当我所说的是针对PC,到了Maemo就没问题了,因为他版本统一。

但你别忘了,Maemo是开源的,这也是你一直强调的。只要出个“变异”的Maemo,随便删改个Linux中使用的头文件,你的程序就很可能在它那里废了,这也就是你所的担心Android分裂案件的重演。不幸的是,比起以Java为基础的Android,反而是直接构建在Linux之上,以C++为主要开发语言的Maemo更容易产生此类问题才对。因为它没有虚拟机支持,所以所有的改变,都是实打实,会破坏Linux兼容性的。

你倒提醒我了,相对基于DalvikVM的Android来讲,Maemo才是真正前途堪忧的开源平台啊。

dcfhvk 发帖:

感觉qt和maemo提供的开发接口更底层一些, 效率上和自由度更大一些. android的java比较适合开发网络相关的应用,在游戏,视频这类娱乐应用上要弱不少. android目前开放了java native sdk, 不知道能访问到的linux核心底层接口的深度和广度有多少, 出于 java的安.全模型,估计是会有不少的限制的. maemo的linux开发接口对开发者来说硬件是可以完全暴露的,没有什么限制让你去挖掘硬件的能力。

笔者答:

正因为如此,也没什么办法限制Maemo的不安全性……莫非还要走回Symbian认证的老路?……额滴神啊……

209.107.217.* 发帖:

可以拭目以待啊。
moto是决心在Android上讨回丢掉的面子了。HTC的石头也不小。山寨厂家也蠢蠢欲动。还有国内的手机厂家。Android在数量上肯定不会少。Maemo目前就nokia一家在搞,不过手机老大应该也是不缺少粉丝的。
苹果则继续走着他的老路,实力也非凡。
2010年将是智能手机竞争的开始。
拭目以待。
不过,谁赢谁输现在还早。
不要急于下结论。

由于【目前的】最后一贴完全不涉及技术问题,所以笔者不再回复。

 

________________________________________________

这只是在非专业性质的百度贴吧中的一场争论,但是,其白热化程度已经如此。未来智能手机领域斗争的残酷性,凭此已能看出端倪。不过,从笔者的视野来看,有Java语言支撑的Android,一定会笑到最后。(因为——偶就是搞Java的嘛!)

原创粉丝点击