软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

当前位置: 第八基地首页 > 移动开发 >
Android 的快速增长让一些开发人员担忧
发布于:第八基地 来源:互联网 作者:天堂路上 时间:2011-10-25 点击:200
  

  Google的开源操作系统Android在发布一年后终于引发轰动。经历了初期的慢热,现在该系统至少已被12款手机所采用,更多的手机即将到来。

  这对Android支持者来说是好消息?不一定,有些开发者这么认为。他们说一系列问题使得管理Android程序成为了一场噩梦:一堆手机上运行着3个版本的系统(Android1.5/1.6/2.0)以及自制固件,各机型的硬件也有诸多差异。

  对于用户来说,这意味着网络商店里的程序可能会充满bug,在特定机型上无法顺畅工作,带来糟糕的使用体验。由于不清楚后端复杂性的日益增长,用户很可能会在网络商店里对程序本身作出负面评论——而这对小型软件来说很可能是致命的。

  “我们发现自己正在把精力花在保证每个程序兼容不同版本的系统和硬件机型之上,而不是改进程序。我们并不是在抱怨Android系统的增长,但如果你是一家小公司或是刚刚入门、希望学习Android开发的新人,我可以想象你的头都快烦爆了,这确实很恼人。”Froogloid公司创始人ChrisFagan说道,该公司专注于Android程序开发。

  这和90年代Java的问题相似。Java起初以能够让程序运行于任何电脑为卖点(“写一个程序,哪儿都能运行”writeonce,runanywhere),但开发者们发现Java虚拟机在不同硬件上的变化太多,让Java的许诺实际上变成了(“写一个程序,哪儿都要debug”writeonce,debugeverywhere)。虽然Java仍被使用——特别是在移动领域,有大量的游戏和软件由Java写成——但它远不像当初宣称的那般跨平台。

  移动程序分析公司Flurry的商业开发副总裁SeanGalligan说,Fagan对于Android分裂的担忧正引起很多其他开发者的共鸣。他说:“毫无疑问,我们已经开始听到开发者们表达自己的忧虑,Android增长速度非常快,激动人心,但这也意味着更大的工作量,特别是对中小开发者而言”。

  自第一款Android手机HTCT-MobileG1面世以来,已有不少手机生产商跳上Android的大船。HTC一家就有五款Android机型,摩托罗拉等公司也已全面转向Android平台。在过去两个月里,摩托罗拉发布了两款Android手机——Cliq和Droid。此外,厂商们为了有别于彼此,正自制各种用户界面,例如HTCSense、摩托罗拉Blur、索爱RachaelUI。

  Android手机在硬件上也有很大的区别,比如拍照闪光灯和实体按键的有无。

  Fagan说:“有可能你打造的程序完美运行于官方的三个固件之上,但在运营商定制ROM上就完全崩溃。因此我们发现自己不得不让程序兼容多种固件、多种ROM以及多种采用不同硬件的产品。”

  这和iPhone平台由天壤之别。Apple严格控制iPhone新机型及其所用操作系统的版本数量。自2007年第一款iPhone发布以来,总共仅有三款机型。此外,所有这三个机型都可以升级到同一个版本的操作系统。

  Apple通过iPhone开创AppStore程序商店理念。Android也提供了自己的程序商店——Market,发布第三方程序。与AppleAppStore不同的是,开发者在AndroidMarket发布程序时不需要经过审核流程。AndroidMarket目前有大约一万个程序,而AppleAppStore则有十万个。

  对于开发者而言,Apple的独裁政策或许很令人沮丧,但这些可以通过收益获得补偿。

  “Apple保持着严密控制,这有一个很大的好处——iPhone开发者用不着担心分裂,为iPhone开发程序要容易得多。”Fognl公司所有者KellySchrock说,该公司在AndroidMarket上已有三个程序。

  Android版本造成混乱

  Froogloid公司的成立时间与G1的上市几乎同时,它的三个程序a2b、KeyRing和CowPotato目前已有10万用户。但Fagan说,随着Android的增长,维护这些程序正成为一大挑战。

  Android手机的多样化导致了一些未曾预料的结果。

  一个例子,SprintHTCHero没有开启GPS设置。a2b程序在运行时可以触发它,但Froogloid很快发现Hero的命令和其它Android机型不一样。开启GPS设置的命令变成了开启屏幕锁设置,ChrisPick说公司不得不为在自己的程序中为这一款机型加入特定代码。(译注:AndroidMarket上有大量程序为兼容Hero进行过更新)

  Google说自己的模拟器可以让开发者们测试程序在特定机型上运行的效果。

  但它并不总是可靠,Fagan说,“换句话说,我们用模拟器就是在无的放矢,因为我们不知道它运行在手机上时究竟是什么结果。”

  ChrisPick举了另一个例子进行解释,他们的3D游戏Cowpotato在模拟器上运行得一切正常,但真正运行于摩托罗拉Droid时却崩溃了。Pick怀疑这是Droid显示驱动中的一个bug所导致的问题,写了个补丁解决了崩溃问题,但这并不是最佳的解决方案。

  Pick说:“一旦我们不得不在代码中根据不同机型写规则,就会增大代码库,加大我们的工作量,把程序变得更繁重”。

  不同的系统版本意味着功能的增减。了解这些改变并让软件向后兼容需要时间,Schrock说:“支持所有这些版本需要进行数倍的工作”。

  更大的问题是自制固件和ROM。例如Google在Android代码中提供了一个基本的主界面。但手机制造商和网络运营商总是可以修改它。有些修改很简单,比如把白色换成灰色、红色或黄色。这让手机制造商和运营商可以为自己的客户量身定制Android产品,这正是Google宣称自己“积极”支持的。

  Fagan说:“这些不是大问题。但当他们改动特定活动的控制方式时(比如用户设置和屏幕方向),就会给通过标准固件/SDK开发程序的开发者造成各种问题”。

  而自制ROM则总是需要开发者详尽核查,Pick说“Google命令所有Android发布必须基于标准版,但这在Google控制范围以外”。(译注:Google在不久前曾以自制ROM非法使用Gmail等版权程序为借口向最具影响力的自制ROM——CyanogenMod发难,要求作者Cyanogen停止开发。但Cyanogen去掉了自制ROM中内置的版权程序,通过在官方ROM基础上进行刷机的方法绕过了法律问题。)

对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈