[背景资料]最近Android比较火,无论是摩托罗拉搭载 Android 2.2准备咸鱼翻身,还是Android
Market年底将在台湾开市……这些消息足以让人们为之振奋。但当人们看到Android的外表光鲜之时,更要注意到其潜在内涵,尤其对于广大开发者,
一味盲目地崇拜并扎入其中并不实为理智之举。本期,我们为您邀请到一位与代码打了15年交道的李宁,以其亲身经历和开发经验来为广大开发者提出鉴言和忠
告。
15年演绎代码与操作系统之恋
李宁1999年毕业于东北大学计算机专业,毕业后曾任东软股份项目经理,2003年考入东北大学计算机专业读研,2006年3月硕士毕业。从
1995年至今15年时间里,李宁几乎一直与各种计算机语言和操作系统打交道。从最早接触的DOS 3.3到后来的Windows
3.2、Windows 95、98、NT、2000乃至现在的Windows 7和Windows
2008,他对于计算机的学习历程也正是经历了微软PC的鼎盛发展期和互联网的20年。
李宁认为这一切都得益于其母亲单位里有台计算机,在上世纪90年代,在那个计算机并不普及的年代,使得他从小就有机会接触到计算机并对其情有独钟,在1995年报考大学填报志愿时选择了“计算机专业”,而在1996年他也拥有了自己的第一台计算机。
对于开发语言,相信很多人已不再使用DOS了,而现在的孩子们也不能理解,在当时一张5寸容量仅为1.2M的软盘曾经让多少人为之痴迷。然而李宁是
从DOS下的Pascal开始学习编程语言,而后是C语言。最开始接触的数据库开发工具是DOS下的FoxPro
2.5,后来是Windows下的FoxPro3.0、FoxPro5.0.VB(Visual
Basic)作为微软第一款具有图形界面的开发工具一经推出就曾引起不小的轰动,也为广大开发者所使用。在快毕业时,李宁开始使用SQL Server
7.0,到后来的SQL Server 2008,作为上手比较容易的一种数据库,也是李宁使用时间最长的,差不多已有10年时间。
接触Linux则纯属偶然。大概是在三、四年前,李宁的Windows操作系统的电脑突然崩溃,很多软件突然无法打开(有可能是中招了),而要重新
修复系统至少需要花费一个星期时间(因为系统里安装的软件实在是太多了,有的已很难找到安装程序),不得已他安装了Fedora
Linux操作系统,并在Linux下继续他的开发工作。而通过深入了解他发现,Linux在娱乐方面并不比Windows差,而单纯对于技术人员来
讲,Linux也比Windows更便于编程。一台电脑安装Windows
2008需占有2~3G的空间,而完全安装Linux将占用8~9G空间,而且Linux所带的工具大多都直接或间接地与开发有关,在完全安装后基本就不
需要再安装开发工具,所以更加适合开发人员使用。
热恋还在Android:写心得、出书投入十二分精神
提到移动应用开发,早在2003年李宁就尝试过使用Symbian系统开发软件,但当他开发完成准备安装在手机上才发现,塞班系统安装程序是需要购
买签名,一年需要几百至上千美元费用,这对于仅作娱乐考虑的李宁来说,不太现实,移动开发也就此搁置。到了2007年Google发布Android,这
在当时也没能引起他太多注意,直到2008年底,世界上第一部支持Android的手机G1推出,这才让李宁感觉到Android的猛烈攻势,于是,他开
始尝试Android软件开发,虽然程序也需要签名,但比较自由,在配置文件上配置即可,不需要购买。
关于智能手机操作系统,李宁认为目前是第二代智能操作系统时代,以塞班为首的第一代智能手机操作系统,面临着屏幕小影响软件表现、系统本身过于臃肿
(Symbian的源代码超过2000万行,相当于Windows
XP的源代码量)、用户体验不足等诸多弊端,现在新出的手机屏幕分辨率多在320*480之上,Android、iPhone和Windows
Phone
7都支持大分辨率,还支持传感器,如重力、光学传感等。同时传统的塞班代码积累太多,2000多万的代码量在修改和加入新功能上比较困难,不太适合开发者
操作,而且在操作方式上并没有带来更好的用户体验。如果塞班不行,要有一个操作系统来取代的话,目前Android具有绝对优势。虽然Android存在
版本太多的问题,但Google承诺,Android
3.0之后的版本将一年升级一次,虽然这样做放缓了Android的升级速度,但却给手机硬件厂商以及开发者留有足够的时间来适应新的系统,从而也在很大
程度上解决了Android版本众多的问题。据Google宣称,将禁止第三方对Android 3.0及以上版进行扩展(如HTC
Sense就是一种Android扩展),这样可以使Android更加统一,从而可大大提升用户体验。
《Android/OPhone开发完全讲义》
《人人都玩开心网: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客户端0.9”软件界面
“乐博Android客户端0.9”软件界面
“乐博Android客户端1.0”软件开发中
在学习Android的过程中,写书可能只是一部分,李宁还开发了一系列软件,包括多功能日历、乐博Android客户端(用户在Android手
机上管理微博)等。“乐博Android客户端”这款软件的开发,源于国内外有很多微博网站,而很多人在不同的微博都有帐号,这会在同步管理上带来麻烦。
因此,乐博Android客户端就是帮助用户维护这些微博,并能实现同步发送。
2010年初李宁完成了第一个版本0.9版的开发,目前1.0版正在开发中,1.0版将基于Android
2.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开发速学宝典》
分享到:
相关推荐
【中国移动开发者大会2016PPT】是一个与Android技术相关的会议资料集合,主要面向中国的开发者群体。MDCC,即中国移动开发者大会,是中国年度重要的技术盛会之一,每年都会吸引众多的开发者、技术爱好者以及行业专家...
1. **CSDN下载区**:中国最大的IT技术交流社区CSDN提供了丰富的Android学习资源,包括但不限于《Android编程从入门到精通》、《Android开发进阶》等书籍的电子版,以及各种Android开发教程和示例代码,覆盖了从基础...
前端开发者:熟悉JavaScript,有一定的Web开发经验,想要扩展到移动开发领域,特别是与Android平台的交互。 场景目标 本文的目标是帮助开发者实现以下场景: WebView嵌入和交互:在Android应用中嵌入一个WebView组件...
10. **UI设计**:Android应用的用户界面需要遵循Material Design指南,确保良好的用户体验。这包括颜色搭配、图标设计、触摸反馈等。 11. **测试与调试**:开发过程中,单元测试、集成测试和UI测试是必不可少的。...
这个名为"Android学习demo大集合"的资源包,显然旨在帮助开发者深入理解和实践Android应用开发的关键概念。它涵盖了从基础到进阶的多个方面,包括SQLite数据库、多媒体处理、网络通信、多线程、广播机制和服务等。...
ArcGIS Android SDK提供的实例和源代码涵盖了常见的GIS应用功能,开发者可以通过这些示例快速了解API的用法,包括地图加载、图层操作、地理编码、查询分析等,从而缩短学习曲线,提高开发效率。 四、帮助文档 详尽...
6. Java语言基础:Android开发主要使用Java或Kotlin语言,这两种语言都有深厚的开发者社区支持,学习资源丰富,易于上手。 7. 活跃的开发者社区:Android拥有庞大的开发者社区,不断分享经验、工具和解决方案,有助...
【Android Studio开发的单词本APP源码(期末大作业)】是一个基于Android Studio的移动应用项目,用于学习和复习英语单词。这个APP可能是学生在学习Android应用开发时完成的一个重要练习,展示了Android应用的基本...
中国移动游戏基地Android游戏SDK是一款专为开发者设计的工具,用于在Android平台上构建和集成中国移动的游戏服务。这款SDK提供了丰富的功能,包括游戏初始化、用户登录、计费系统集成等,使得游戏开发者能够轻松接入...
这个合集提供了中英文两个版本,对于中国开发者来说尤其方便,因为中文版可以帮助开发者更准确地理解API的功能和用法,降低语言障碍。 首先,Android API文档分为几个主要部分: 1. **API等级**:Android API按照...
物流管理系统是基于Android Studio开发的一款应用,主要用于管理物流信息,具备用户注册登录功能,便于学习者掌握Android应用程序的开发技术。这个系统展示了Android Studio在构建实际应用中的运用,特别是对于初学...
3. **Android Pay支持**:Android 6.0增加了对Android Pay的系统级支持,允许开发者集成移动支付功能。这涉及到了安全API和支付服务的接入,开发者需要了解如何创建安全的支付环境。 4. **Android App Links**:...
1. **Android SDK**:Android软件开发工具包(SDK)是开发者创建Android应用的基础,包含了开发、调试和发布应用所需的工具。开发者需要安装并配置Android Studio,这是一个集成开发环境(IDE),提供了一整套用于...
在移动设备领域,Android操作系统占据了主导地位,因此,开发基于Android的应用程序成为IT专业人员的重要技能之一。本文将深入探讨如何使用Android Studio进行一款记事本软件的开发,这是一份典型的Android课程设计...
《移动开发经典丛书:Android C++高级编程:使用NDK》提供了移植、开发以及利用Android平台上的C++和其他原生代码所需要的知识和技能,以便于运行图形化的高级应用和更复杂的原生应用。 内容简介 Android是移动...
作为中国Android开发者的重要交流平台,安卓巴士每年都会举办这样的盛会,汇聚业界专家、开发者和技术爱好者,共同探讨Android技术的发展趋势、最新实践和创新应用。此次大会的PPT无疑是一份宝贵的学习资源,涵盖了...
14. **第三方库**:Android开发者常常使用如Glide、Picasso进行图片加载,Retrofit进行网络请求,Butter Knife进行视图注入,GreenDao或Room进行数据库操作等第三方库,以简化开发工作并提高效率。 以上是Android...
13. **社区与论坛**:Stack Overflow、Reddit的Android板块、Chinese Android 开发者社区等,是开发者寻求问题解答、分享经验、学习新知识的重要平台。 14. **书籍资源**:如《Android编程:从入门到实践》、《第一...
Android开发者资料大全 非常有用的资料,开发者朋友们可以学习下