`
jandroid
  • 浏览: 1949599 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多

  [背景资料]最近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

    【中国移动开发者大会2016PPT】是一个与Android技术相关的会议资料集合,主要面向中国的开发者群体。MDCC,即中国移动开发者大会,是中国年度重要的技术盛会之一,每年都会吸引众多的开发者、技术爱好者以及行业专家...

    软件开发者路线图:从学徒到高手

    《软件开发者路线图:从学徒到高手》完整版,以前下载过6.3M那种,只有1、2章,此为完整版,旨在分享好东西

    Android期末大作业记事本

    10. **UI设计**:Android应用的用户界面需要遵循Material Design指南,确保良好的用户体验。这包括颜色搭配、图标设计、触摸反馈等。 11. **测试与调试**:开发过程中,单元测试、集成测试和UI测试是必不可少的。...

    Android Studio开发的单词本APP源码(期末大作业)

    【Android Studio开发的单词本APP源码(期末大作业)】是一个基于Android Studio的移动应用项目,用于学习和复习英语单词。这个APP可能是学生在学习Android应用开发时完成的一个重要练习,展示了Android应用的基本...

    【Android资料免积分下载】大量教程+工具+源码汇总

    随着移动互联网的迅猛发展,Android 开发已成为众多开发者关注的焦点之一。本文基于提供的文件信息,对所分享的一系列 Android 开发资源进行详细的知识点提炼,旨在为初学者和进阶者提供有价值的学习资料。 #### 一...

    android的API合集(中英文) 官方下载

    这个合集提供了中英文两个版本,对于中国开发者来说尤其方便,因为中文版可以帮助开发者更准确地理解API的功能和用法,降低语言障碍。 首先,Android API文档分为几个主要部分: 1. **API等级**:Android API按照...

    Android Studio大作业-物流管理系统(可以注册登录)

    物流管理系统是基于Android Studio开发的一款应用,主要用于管理物流信息,具备用户注册登录功能,便于学习者掌握Android应用程序的开发技术。这个系统展示了Android Studio在构建实际应用中的运用,特别是对于初学...

    移动学习平台

    1. **Android SDK**:Android软件开发工具包(SDK)是开发者创建Android应用的基础,包含了开发、调试和发布应用所需的工具。开发者需要安装并配置Android Studio,这是一个集成开发环境(IDE),提供了一整套用于...

    android 经典代码例子

    14. **第三方库**:Android开发者常常使用如Glide、Picasso进行图片加载,Retrofit进行网络请求,Butter Knife进行视图注入,GreenDao或Room进行数据库操作等第三方库,以简化开发工作并提高效率。 以上是Android...

    最新android各版本源码

    7. **学习资源**:对于想要深入学习Android源码的开发者,有许多在线资源可供参考,如官方文档、博客文章、论坛讨论以及开源社区的项目。 8. **API兼容性**:Android源码中的`targets`可能指的是不同API级别的目标...

    android-sdk_r23.0.2-windows.zip

    **SDK Manager**:Android SDK的核心部分是SDK Manager,它允许开发者下载和管理各种Android平台版本、工具、额外库和Google服务。在r23.0.2版本中,开发者可以获取到当时最新的API级别、系统映像以及开发者工具,...

    Android中文API合集(7) + 开发者指南合集(2) (chm格式)

    2. **图形与用户界面**:Android提供了丰富的UI组件,如TextView、Button、ImageView等,用于构建应用程序的界面。此外,还有Canvas和OpenGL ES用于复杂的图形绘制。 3. **多媒体支持**:API提供了对音频、视频和...

    android 两点触摸 两个手指放大缩小图片

    在Android开发中,实现两点触摸即多点触控功能,常用于手势操作,如图片的放大和缩小。这里我们主要探讨如何通过自定义View来实现这个功能,这涉及到Android的MotionEvent类、触摸事件的分发以及 ...

    Android 初学中阶高阶书籍_集合打包4

    - **Java语言**:Android主要采用Java进行开发,因此深入学习Java语法是必要的。 - **Kotlin**:近年来,Kotlin已成为Android官方推荐的首选语言,它的简洁性和安全性使其备受青睐。 3. **Android系统架构**: -...

    VB for Android12.12

    总的来说,VB for Android12.12为开发者提供了在Android平台上开发应用的新途径,结合了VB的便捷性和Android的广泛影响力,使得开发者可以利用已有的技能快速进入移动开发领域。随着版本的不断迭代,我们可以期待VB ...

    安卓6.0 sdk-23版本Android sdk

    3. `sources`子目录:提供Android 6.0源代码,便于开发者理解和学习系统工作原理。 4. `docs`子目录:包含API参考文档,方便开发者查找API函数的详细信息。 5. `layoutlib.jar`:提供布局渲染服务,使得开发者在...

    Android_开发入门培训.ppt

    Android移动操作系统学习开发者的入门介绍学习最好的PPT

    Android中文版SDK

    4. **编程语言**:大部分Android开发使用Java或Kotlin,学习这两种语言的基础语法和面向对象编程概念。 5. **数据管理**:学习如何使用SQLite数据库存储数据,以及如何使用SharedPreferences保存轻量级的配置数据。 ...

    android sdk27版本

    - **Background Execution Limitations**:Android 8.1对后台服务和后台进程的限制更严格,以优化电池寿命和系统资源。 - **Notification Channels**:引入了通知渠道,允许开发者将通知分组,提高用户对通知管理...

    Android 4.4.2 sdk工具

    1. **API级别**:Android 4.4.2对应的是API级别19。API级别是Android版本的一个量化表示,每个级别的提升通常伴随着新功能的引入和旧功能的改进。对于开发者来说,理解API级别有助于确定应用支持的最低设备要求。 2...

Global site tag (gtag.js) - Google Analytics