中国移动开发者社区专访:学习Android的两大法宝

 [背景资料]最近Android比较火,无论是摩托罗拉搭载 Android 2.2准备咸鱼翻身,还是AndroidMarket年底将在台湾开市……这些消息足以让人们为之振奋。但当人们看到Android的外表光鲜之时,更要注意到其潜在内涵,尤其对于广大开发者,一味盲目地崇拜并扎入其中并不实为理智之举。本期,我们为您邀请到一位与代码打了15年交道的李宁,以其亲身经历和开发经验来为广大开发者提出鉴言和忠告。

15年演绎代码与操作系统之恋

   李宁1999年毕业于东北大学计算机专业,毕业后曾任东软股份项目经理,2003年考入东北大学计算机专业读研,2006年3月硕士毕业。从1995年至今15年时间里,李宁几乎一直与各种计算机语言和操作系统打交道。从最早接触的DOS 3.3到后来的Windows3.2、Windows 95、98、NT、2000乃至现在的Windows 7和Windows2008,他对于计算机的学习历程也正是经历了微软PC的鼎盛发展期和互联网的20年。

    李宁认为这一切都得益于其母亲单位里有台计算机,在上世纪90年代,在那个计算机并不普及的年代,使得他从小就有机会接触到计算机并对其情有独钟,在1995年报考大学填报志愿时选择了“计算机专业”,而在1996年他也拥有了自己的第一台计算机。

   对于开发语言,相信很多人已不再使用DOS了,而现在的孩子们也不能理解,在当时一张5寸容量仅为1.2M的软盘曾经让多少人为之痴迷。然而李宁是从DOS下的Pascal开始学习编程语言,而后是C语言。最开始接触的数据库开发工具是DOS下的FoxPro2.5,后来是Windows下的FoxPro3.0、FoxPro5.0.VB(VisualBasic)作为微软第一款具有图形界面的开发工具一经推出就曾引起不小的轰动,也为广大开发者所使用。在快毕业时,李宁开始使用SQL Server7.0,到后来的SQL Server 2008,作为上手比较容易的一种数据库,也是李宁使用时间最长的,差不多已有10年时间。

   接触Linux则纯属偶然。大概是在三、四年前,李宁的Windows操作系统的电脑突然崩溃,很多软件突然无法打开(有可能是中招了),而要重新修复系统至少需要花费一个星期时间(因为系统里安装的软件实在是太多了,有的已很难找到安装程序),不得已他安装了FedoraLinux操作系统,并在Linux下继续他的开发工作。而通过深入了解他发现,Linux在娱乐方面并不比Windows差,而单纯对于技术人员来讲,Linux也比Windows更便于编程。一台电脑安装Windows2008需占有2~3G的空间,而完全安装Linux将占用8~9G空间,而且Linux所带的工具大多都直接或间接地与开发有关,在完全安装后基本就不需要再安装开发工具,所以更加适合开发人员使用。

热恋还在Android:写心得、出书投入十二分精神

   提到移动应用开发,早在2003年李宁就尝试过使用Symbian系统开发软件,但当他开发完成准备安装在手机上才发现,塞班系统安装程序是需要购买签名,一年需要几百至上千美元费用,这对于仅作娱乐考虑的李宁来说,不太现实,移动开发也就此搁置。到了2007年Google发布Android,这在当时也没能引起他太多注意,直到2008年底,世界上第一部支持Android的手机G1推出,这才让李宁感觉到Android的猛烈攻势,于是,他开始尝试Android软件开发,虽然程序也需要签名,但比较自由,在配置文件上配置即可,不需要购买。

   关于智能手机操作系统,李宁认为目前是第二代智能操作系统时代,以塞班为首的第一代智能手机操作系统,面临着屏幕小影响软件表现、系统本身过于臃肿(Symbian的源代码超过2000万行,相当于WindowsXP的源代码量)、用户体验不足等诸多弊端,现在新出的手机屏幕分辨率多在320*480之上,Android、iPhone和WindowsPhone7都支持大分辨率,还支持传感器,如重力、光学传感等。同时传统的塞班代码积累太多,2000多万的代码量在修改和加入新功能上比较困难,不太适合开发者操作,而且在操作方式上并没有带来更好的用户体验。如果塞班不行,要有一个操作系统来取代的话,目前Android具有绝对优势。虽然Android存在版本太多的问题,但Google承诺,Android3.0之后的版本将一年升级一次,虽然这样做放缓了Android的升级速度,但却给手机硬件厂商以及开发者留有足够的时间来适应新的系统,从而也在很大程度上解决了Android版本众多的问题。据Google宣称,将禁止第三方对Android 3.0及以上版进行扩展(如HTCSense就是一种Android扩展),这样可以使Android更加统一,从而可大大提升用户体验。

中国移动开发者社区专访:学习Android的两大法宝

《Android/OPhone开发完全讲义》

中国移动开发者社区专访:学习Android的两大法宝

《人人都玩开心网:Ext JS + Android + SSH整合开发Web与移动SNS》

   李宁看到,由于Android的支持厂商众多,从低端到高端机型都有,因此,他决定从Android入手,挖掘在移动领域属于他的第一批宝藏。由于从事Android的时间比较早,也算是国内第一批Android开发人员,经历了Android的几乎所有的版本的变迁,亲身体会了Android由弱变强的过程。为了纪念首次进入移动领域以及Android,在2009年下半年开始,李宁用了四个月多的时间将他的经验写成了一本书《Android/OPhone开发完全讲义》,该书在上市近一个月以来,销售排名一直在计算机类前10的位置,取得了不错的成绩。李宁还告诉我们,这本书的版权目前已卖给台湾的一家出版社,估计二个月后将会在台湾市场销售。李宁还写了一本与Android相关的书籍:《人人都玩开心网:Ext JS +Android + SSH整合开发Web与移动SNS》。

结晶之作:“乐博Android客户端”开发、升级

中国移动开发者社区专访:学习Android的两大法宝

中国移动开发者社区专访:学习Android的两大法宝

“乐博Android客户端0.9”软件界面

中国移动开发者社区专访:学习Android的两大法宝

中国移动开发者社区专访:学习Android的两大法宝

“乐博Android客户端0.9”软件界面

中国移动开发者社区专访:学习Android的两大法宝

中国移动开发者社区专访:学习Android的两大法宝

“乐博Android客户端1.0”软件开发中

   在学习Android的过程中,写书可能只是一部分,李宁还开发了一系列软件,包括多功能日历、乐博Android客户端(用户在Android手机上管理微博)等。“乐博Android客户端”这款软件的开发,源于国内外有很多微博网站,而很多人在不同的微博都有帐号,这会在同步管理上带来麻烦。因此,乐博Android客户端就是帮助用户维护这些微博,并能实现同步发送。

    2010年初李宁完成了第一个版本0.9版的开发,目前1.0版正在开发中,1.0版将基于Android2.1开发,并完善多种功能。比如将支持超过10种微博(包括新浪、搜狐、Follow5、Twitter等),除了具有微博客户端的基本功能(发布、浏览、评论、转发微博)外,还支持同步多种微博、自动翻译(将微博内容翻译成其他语言)、图像编辑(支持多种图像效果)、辅助输入(输入表情字符、节日祝贺等)、快速发布(通过手机桌面上的功能图标可以迅速调用输入微博的界面)等功能。在未来的版本中还支持将指定的微博生成电子书、更高级的辅助输入功能。

   对于这款软件,还要提及的是其图片处理功能,因为一条微博只允许发布一张图片,而李宁通过对拍照效果进行处理,对照片的后期处理,通过软件将多张照片通过横竖合并在一张图上等特殊效果处理,从而实现一条微博可以发布多张图片的效果。相信这个功能会让很多围脖为此欢呼。

软件开发完成,李宁打算将其发布在中国移动Mobile Market应用商场,之前也发布过但因移动MM不支持联网应用而被驳回,所以希望到时可以通过审核并顺利上架。

爱要理智:爱Android更要懂Android

   我们关注李宁对Android投入的爱是否有所回报,他告诉我们并未直接带来收益,不过已经从著作及参赛奖项中获得一定回报。对于移动MM,他认为MM是目前国内最大的手机软件商店,但收费软件和免费软件的下载量差距很大,这可能是因为国人都不习惯花钱买软件所造成的,希望MM可以为开发人员提供更多的赢利机会。通过某些服务而不是卖软件来赢利,例如,开放通信接口、植入性广告、专业广告等。对于软件,产品销售是一方面,后期服务也很关键。以移动的角度看,可以进行培训,培养更多的Android人才,毕竟现在靠软件卖钱的时代已经快过去了(直接向用户收费也不符合互联网的精神),免费才是王道。而通过开发免费软件赚钱的人也不在少数,比如Foxmail作者张小龙,当Foxmail用户达到几千万时,软件也自然拥有巨大的市场价值,最终以2000万卖出;再比如来电通的作者苏志宏也是一个例子。

在这个全球热恋Android的时代,李宁不只爱着Android,更懂得Android,这对于很多痴迷着Android的开发者来说,尤为重要。李宁认为,学好Android有两大法宝:Android源代码(包括Java和C/C++的源代码)和Linux.他把新入门的新手分为二种类型,一种是技术新手,一种是Android新手。

对于技术新手,李宁奉劝他们应该先从Java学起,至少需要几个月甚至半年的熟悉这种语言,这是不可缺少的基本功练习。对于现在有的人急于求成,自认为Java不熟练但Android却很精通,李宁用“拿着驾照但却不会开车的马路杀手”来形容这部分人。

当技术新手对Java有了一定掌握,并独自编写大量的代码,对于一般的技术领域能驾轻就熟时,就可以开始Android的学习了,这时候的技术新手才能晋升为Android新手。而对于Android新手,一般一、二天就能够学会使用Android编写程序,但要深入研究就需要些功夫。因为Android是开源的,所以首先要研究Android的源代码,虽然关于Android的书在国内已经有几十本了,但书籍只能引导入门却不能将你带到一定高度,如果要深入研究就必须研究源代码,通过源代码才能真正了解Android的内部构造。

李宁认为:“开发是一件很痛苦的事,但也是一件很快乐的事。就像一杯咖啡,虽然喝着感觉很苦,但随后而来的却是咖啡的香甜。”当然,这里所说的痛苦并非开发本身,而是在开发过程中遇到无法解决的问题时,如果时间要求再紧,会更加郁闷。李宁记得2年前刚接触Android时,虽然凭着多年的开发经验,应付一般的技术不成问题,但仍然还有很多Android技术问题无法得到解决。那时国内、外关于Android的技术论坛并不多,而且资源匮乏,除了Android的官方文档外,最大的资源就是Android的源代码,而任何与Android相关的文档(也包括官方文档)永远只能是入门或API列表,永远不能触及实质的东西。因此,获得我所需要的东西的唯一途径就是直接查阅Android的源代码(幸好源代码很容易从网上获得)。所以,要学好Android最好的方法,也是最快的捷径,就是尽可能理解Android的源代码。同时,鉴于Android是基于Linux内核的,所以学习Linux的相应API以及各种操作也是十分必要的。这就好比如果想要学习Windows Mobile就多研究下Windows的道理是一样的。

当以上几点都能够达到基本上就是高手了。当我们问及李宁目前是处于哪个阶段时,他很谦虚地告诉我们,正处在源代码阶段,他收集了1.7G的源代码,正在仔细研究中。

附:李宁简介

   李宁,东北大学计算机专业硕士、CSDN博客专家、51CTO客座专家、中国移动开发者社区技术管理员、OPhone专家、ophonesdn版主(Id:mobileguy)、eoeandroid版主(id:androidguy)。曾任东软股份项目经理,领导并参与开发十几个大中型项目。从2005年进入写作领域以来,为程序员、电脑编程技巧与维护、电脑报、IT168、天极网等平面媒体和网络媒体撰写了一百多篇原创技术和评论文章。并在个人blog(http://nokiaguy.blogjava.net)上发表了大量的原创技术文章。

主要奖项:

1、2009年ophone原创技术征文大赛二等奖(奖品:dell mini 3i手机一部)

2、2010年获得ophonesdn季度优秀版主(奖品:LG GW800手机一部)

3、《OPhone2.0之初体验》博客征文最佳人气博文二等奖

4、CSDN应用达人(奖品:微软无线鼠标)

5、2007年获得《电脑编程技巧与维护》优秀作者(奖品:U盘)

6、首届.Net平台创新编程征文比赛三等奖(2008年)(奖品:MP5)

7、第二届微软.net平台应用程序开发征文大赛三等奖(2009年)(奖品:MP5)

8、MSN机器人大赛最佳人气奖(奖品:价值1000元的无线鼠标和键盘)

主要著作:

1、《Android/OPhone开发完全讲义》

2、《人人都玩开心网:ext js+android+ssh整合开发web与移动SNS》

3、《Java Web开发速学宝典》

相关推荐