首页>
知识库>
详情

盛大资深软件工程师谈Android开发经验

2020-07-24 来源:CloudBest 阅读量: 0
关键词:

    Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用程序组成,是首个真正为移动终端打造的开放并且完整的移动平台。2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Google手机,即T-MobileG1,从那个时候起,Android的时代就真正的来临了。

  从Android1.0至今经历了多次的版本更新,其中重要的变更是1.5、2.0和2.2。而其他的版本更新相对而言并不是那么重要。另外,由于每次更新都会多少改动包括Dalvik在内的底层模块,同时牵扯到SDK,导致了一些程序需要跟着Android版本进行变动。对于相对较为保守的开发人员而言,快速的版本更新将给他们带来越来越大的限制。在这种情况下,Android开源的意义就显得不是那么大了。

  无论如何,由于Android与Google服务的紧密捆绑,这款操作系统拥有了得天独厚的优势。通过Google强有力的支持,很多事情在Android上都会变得很简单。另外需要特别提出的是,Android是一款基于互联网的操作系统,在可以连接上互联网的情况下,一款Android手机可以发挥出比其他手机更多的能力。而在没有网络的情况下,Android手机并不比其他的手机出色,尤其是娱乐性相对于iPhone可以说是逊色不少。

  作为开发人员,应当在学习并深入了解Android之后,在自己的软件中,将Android的优势发挥出来,同时通过一些手段去弥补Android本身的缺陷或不足。下面来看一下Android拥有的特点吧:

  • 与硬件交互非常方便,包括摄像头、GPS等,都可以简单的操作。
  • 拥有自己的运行时和虚拟机,优秀的内存管理能力。
  • 提供丰富的界面控件供开发者使用,允许可视化开发,并保证Android平台下的应用程序界面一致。
  • 提供轻量级的进程间通信机制。
  • 支持无界面的后台服务类应用程序。
  • 支持高效、快速的数据存取方式。

  在这些特性的支持下,试图在Android下开发一个应用不会太过困难。事实上,一个稍有Java经验的开发人员,都可以快速的上手进行Android的开发。而开发的核心,一直以来也是围绕着Android手机几个大的特点来进行的,其中就包括了触摸屏、摄像头、GPS模块、互联网功能、语音输入、Google账户等。需要说的是,如果一位J2ME工程师想转行做Android,那么他将付出的代价比J2SE或J2EE工程师要大得多。毕竟Android所支持的是基本完整的J2SE的子集,反过来再看J2ME就会觉得它的功能太弱了。

  除了Java外,还有许多语言支持Android的开发,比较为人所熟知的有Scala,而作为Android本身的底层语言,C/C++的作用也完全不可忽视。而目前的开源社区内,已经有一些牛人在尝试让更多的语言可以开发Android应用。比较有代表性的可能是KoushikDutta,他已经解决了在Mono平台下,让Dalvik调用Mono代码的问题。或许在不久的将来,.NET下的所有语言,都有可能借助Mono跑在Android上,这是一件值得让人期待的事情。

  语言已不是问题,那还有什么会成为问题?也许很多人会说经验。诚然,经验决定了一位开发人员能否快速地、流畅地完成开发工作,也决定了软件的鲁棒性,Bug的数量、等级和修正问题的返工次数。不过我认为,这些都不重要,哪怕是一个Android行业的新人,一边查询文档一边做开发,虽然效率会很低,但是一样能把项目做完。在Android下,开发技术几乎是没有瓶颈的。那么瓶颈在哪里呢?事实上,在用过很多软件后,就会发现,有很多软件并不好用。很多用户不愿意用某个软件,也并不是因为软件没有技术含量或是满足不了需求,原因很简单,就是不好用。

  用户体验是凌驾于技术之上的,可以说,优秀的用户体验将可以起到事半功倍的效果,在一堆同类的软件中,下载量最大的,一定是让用户用着感觉最舒服的,哪怕它的功能并不比其他的产品出色,甚至略差一些。我见过很多开发人员,他们视技术为己任,一心只钻研技术,认为技术出色的软件,会受到用户的好评,甚至在一个手机游戏中,加入各种华丽炫目的3D效果。这些固然都不错,但是真正的用户却不会喜爱它们。在移动应用中,简洁明快才是用户希望看到的。试想一下,当用户在手机上玩一个RPG游戏,并被华丽的3D效果充斥了整个界面,那么他将完全无法着手进行下一个动作。诚然,华丽的画面是很容易吸引人,但是在这种华丽的背后,却会直接把用户和开发者自己领入一条深渊,再也无法回头,最终的结果就是,用户完全舍弃该款游戏,开发者或运营商也完全赚不到钱。

  在移动平台开发的过程中,用户体验已经成为首要大事,只有聚焦在用户的设计,才有可能被用户所接受。下面来看一些典型的例子。

  深入Android热点1上图是经典的WindowsMobile6.1的界面,从WindowsMobile推出的那天起,这个界面就一直被宣传成内容充实,包含常用所有功能的入口,非常贴合用户的实际需求。也许在当时,这样的界面确实能满足一定的需求,但是到了现在,这样的设计只能说是远离用户。每一项的高度都过小,因此需要使用笔来点击,或是使用指甲。位于右下角的三个图标,或许用指甲都很难点到,使用笔即多占用用户的一只手,体验是直线下降的。在用户希望连耳朵都解放的现在,多占用一只手是什么概念,这就意味着用户乘车时没有办法握紧扶手,或者没有办法拎着自己的包。另外,在手机操作时,拥有一只空闲着的手,就能有更多机会处理突发事件,占用用户的两只手实在是不应该的。可以说WindowsMobile的用户体验是非常差劲的,幸好微软在新的WindowsPhone7中,对界面做了巨大的改进,没有再犯过去的错误。