为了参加 ” 首届 Google 暑期大学生博客分享大赛 ——2010 Andriod 篇 ” 特地写这篇文章。哥是 android 和 Google 的铁杆 fans 。呵呵。
本来已经报名了几篇博客,都是技术类的,一来是自己时间不多,二来博客的排版真是让我吐血啊。。没有那个精力去改文章啊,毕竟好文章内容和排版一样重要。。。加上上次发的一篇比较全的文章竟然被人“踩”了(当然我承认实在写的很差,哥是新手。哈哈)。所以发奋图强一下,打算写一篇好一点的文章。
思前想后也不知道该写点什么。想写技术类的吧,少不了贴代码。那个排版让我吐血啊。然后想发一些自己的 DEMO 库吧,但是想想如果你买了“ android 开发范例大全”这本书。人家的比我全多了,毫无意义。还打算写一篇关于游戏开发的全面讲解,结果发现要写的内容太多了。
所以吧打算写一篇关于如何快速学习 android 的文章,当然高手可以绕边了,这边文章主要针对在校的大学生想学习 android 的人。因为自己也是学生,也是从不懂,到懂的过程。可以结合个人经历,谈谈初学者该如何学习 android ,甚至那些完全不知道软件是个啥的人。我就是从完全不知道软件是个啥开始学习 android 。当然我是计算机专业的,起码学过编程。呵呵。不是现在移动还搞了一个大学生百万创业计划吗,我想 希望学习这方面的大学生正好合适这篇文章。
废话 OVER------------ 开始正题
现在是一个讲究高效的年代,大家都很忙,都不在有大把的时间,而且身边的总有事情让你无法全心停下脚步研究。个人觉的最快的入门方式就是买本书学 。当时我学习的时候
根本没有资料,硬是啃着官方的英文文档,学习梯度不仅非常高,而且主要是学习进度十分的缓慢,技术没学到什么,倒是阅读能力提升了不少。最后到出了一些入门书籍后,才提升不少技术。总算是入门了。呵呵。现在市面上的 android 的书籍我基本都看过。当然新出的基本,我没看过。所以还是有点底气跟大家推荐的。高级的 android 书籍倒是没见过。。。。没办法。。。给大家推荐一本个人认为这些书中最好的吧:
《 Android 基础教程》,《 Google Android 开发入门指南(第 2 版)》,《 Google Android 开发入门与实战(附光盘)》
其他书都差不多就介绍介绍 API DEMO 里全有的东西,没意思,看过其中一本就成。
Android 基础教程是我认为这些当然最好的 android 的书了,简明扼要啊。不过他主要讲的是游戏那块,因为当时我是先看了其他一些书,再看这本。所以很快就上手了。所以当心有可能不适合初学者,当你还不知道 android 是个啥,甚至连个软件是个啥都不知道时学起来可能云里雾里。《所以特地选了 Google Android 开发入门指南(第 2 版)》,《 Google Android 开发入门与实战(附光盘)》二选一就可以 。个人认为作为入门书籍比较合适。因为看的书多了,也忘记了哪本讲的是啥。所以我为了安全起见才列了两本,以防我自己张冠李戴。我看的是后者。不过这两本都差不多,大家可以酌情 2 选一,别求全,全看没用,因为差不多。我们要的是高效入门。
当你看完这两本书后,就已经算入门了,也知道了 android 是个啥。接下来就是多多的练习了。想一些 idea 就开始实践吧。 哈哈。项目驱动才是最快的学习方式。我做过两个商业项目之后对于做 android 就比较有底了。。。。。刚开始别想很大的项目,就一些小应用来练练手,当然最好是有一个开发机。真机和模拟器还是有很大的区别的。我是从玩家到开发者的路线。所以曾今碰到很搞怪的事情。当时我玩 G1 已经有一两周了。加入了开发的群里。很多程序员没有真机,竟然连 android 的桌面可以长按弹出东西来都不知道。真是相当的无语啊。。。
当然模拟器是可以做到该效果的。关键是操作真机更有感觉。从开发角度来讲,一些具有手机特性的应用还是需要真机才能开发的。如重力传感器,地图应用等。目前个人推荐 MOTO x702 性价比还算不错。当然个人不敢恭维起日常使用价值。。。开发起来还是蛮爽的。呵呵
这里想说明的是作为开发人员,别忽视的用户,埋头开发一些不合实际的东西 。。。建议大家多逛逛玩家论坛。了解用户需求才是啊。。不过话这么说,我倒是脱离玩家社区好久了,惭愧啊。关键没机器可以玩了加上精力不够使啊。。。。推荐一个比较好的玩家社区 www.androidin.net 。 他们也有群,去论坛里找找就成。有了玩家社区当然少不了开发社区啦。 www.eoeandroid.com 还是不错的。 高手还是有的,可以去问问,当你碰到问题时,可以去问。我想写一篇全面指导入门的文章。当然少不了教你问问题的方法啦。很多人问问题就群里发个问题,然后没人响应。还怪高手不理人,或者怀疑没有高手。我想说的是高手很忙的啊。忙着项目呢。加上你的问题如果表意不清,谁有空理你啊,你说是不是。就算理你了。还得跟你,你一句,我一句的,没精力不说,时间紧的话肯定忽略你。所以这里讲一个问问题的技巧,我是屡试不爽啦。首先你先在论坛里把问题详细的描述清楚。有截图的最好上个截图。然后你连同帖子的链接和问题一同发到开发群里。这样高手自然好回答你的问题了。毕竟人家一目了然,回个帖子就成。
言归正传,回到开发的路子上来,应用的开发是很多个功能点的集合,你需要积累很多的功能点的知识。这点就快不来了。需要你慢慢的积累。不过这里有个捷径,那就是 sdk/sample/apidemo ,这里是 Google 提供的范例程序。 基本上你需要的功能点里面都有。去找到,然后倒入到自己工程里,在模拟器里运行,就可以。然后去找你需要的功能点或效果。找到后。回去代码部分找代码,好好研读一下,马上就学到了需要的功能点。如果你闲不够直观,你又很有钱,那么买一本《 android 开发范例大全》也不错 。里面全是范例。当字典用。不过个人还是比较喜欢到 apidemo 里找东西。毕竟这里是 Google 大神的原版东西么。。
特别提一下,如果想开发游戏,然后你又不知道游戏是个啥,可以参看下 sdk/sample 里的 snake 和 LunarLander 两个游戏 。这两个是大神级的游戏啊。我现在开发游戏。有时候想不通都回去看看。哈哈。没办法,毕竟不是专业游戏开发人员么。我也是初学者。经过这些,你绝对 android 入门了。接下来就是积累实战经验了。。。这个就看个人了。。。。。
这里我总结些我开发时的经验:如果开发应用类程序那么少不了使用 listview 控件。而 listview 控件的使用绝对会用到自定义 adapter 。关于自定义 adapter 技术,可以 Google 之,网上范例很多。当然 apidemo 里也有。如果是网络应用注意多线程和图片的缓存加载问题。这个问题讲起来有的讲了,这里不多费口舌。然后还是使用 selctor 。如果你想自定义让一个 button 在选中和获取焦点等状态产生不同的效果,别傻乎乎的在代码里些。设置 button 的 background=selctor 就可以。 这方面网上的例子也很多。还是那句 apidemo 也有。还有个布局问题,布局别看他简单,这里面的学问也很多。没有几次的练习,很难找到感觉。这里提示一点,多多的使用 layout_weight 这个属性。 如果是开发游戏的话,这个就比较的难了。如果可以,去找一个游戏引擎比较好,目前比较好的,我们可以用的引擎是 ROKEN 。不过缺少文档是个问题。其他的有国人开发的 LGAME 。 。不过我还没去用过。游戏就算再简单也需要引擎。否则很难想象怎么做出来。当然想 snake 这种神级作品,非吾等小辈所能企及。