Android学习的过程

| 分类 android  | 标签 Android  学习 

1.认识

认识选择开发android的原因,认识开发android的优势、魅力和前景。

参考:

个人觉得android开发是一个很让人感兴趣的事情,如果现在让我在ios、android、window phone各平台上再做选择的话,我还是会选择android开发;这并不是因为android的体验有多好,用户有多少,前景有多远;而是因为android的开源性、自由性,让开发人员的开发更灵活,更富有激情。

android开发的空间很宽广,基本上ios上能实现的东西,android上都能实现,只是有些功能实现起来思路不一样,开销也不一样,例如推送功能的实现等;

Android在用户体验上,包括界面的特效、流畅性,运行速度等都不如ios系统好!Android开发的过程中,那些系统默认的或者自带的东西一般都不能在应用中直接实现一些高级点的功能,这就需要开发者自己编写程序来改变控件的一些属性、设置,或者自己定制一些控件来实现这些功能。例如要实现一个开关控件,实现ListView下拉刷新的控件等就需要花时间是自定制一个相关的控件。

Android开发本身是一件让人快乐的事情,但是对于一个初学者,一开始是很蛋疼的;因为在学习的过程中,慢慢地会遇到各种各样莫名其妙的问题,例如一个ListView或者ScollView嵌套一个ListView会有高度显示的问题,需要重写一些方法来计算高度;又如,ListView的item里面嵌套一个EditText会有焦点获取不到的冲突;又如,TabHost是一个莫名其妙的东西,TabHost的上面嵌有EditText,调出输入法,TabWidget顶上去的一些冲突等;PopupWindow与TabHost一起的时候会有焦点获取的冲突问题;又如,有些程序在android2.3上运行得好好的,而在android4.0上面却报错,或者有不同的显示效果;又如,Bitmap在android上是一个大胖子,也就是Bitmap对象占用很多内存,把很多的Bitmap对象放在内存上,会很有可能会提示Bitmap占用太多的内存,甚至会提示内存不足,但是把Bitmap释放掉,又会使得图片显示的速度变慢,影响用户体验,这就必须选择一个好的方法来管理一推的Bitmap,这就是Bitmap缓存策略,而现在,本人都还没有想到一种100%可靠的缓存策略来解决这个问题,就先用着比较好的策略来进行显示。

以上这些问题有的能从一些资料或在网上中得到解决方法,但有的却无从得知,并且官方文档也没有提及到;也就是说有些问题是很莫名其妙,难以理解,无法解释的;这就足以让人蛋疼了,不是吗?当然也是因为本人自己的技术和经验有限,所以还没有理解透android的很多机制,故心里还有很多疑团,而深感莫名其妙。

但可幸的是,任何问题都可以用其他方法和思路去解决,我们可以不用TabHost,我们可以自定制一些类似于TabHost的控件来代替TabHost,我们可以使用Dialog来代替PopupWindow等,这就是android的灵活性的优势所在。另外我们还可以直接研究android的SDK的源代码,然后根据所需自己定制一个与SDK里面的控件类似的控件,然后裁剪一些冗余的内容和添加一些新的功能,这不仅达到自己的需求,还优化了控件的使用。看!这难道还不足以让你兴奋吗?

开始学习android,你要做好蛋疼的准备,然后接下来就是一步步攻破蛋疼的内容,到后来你就会发现了android那不可思议的魅力了!加油吧!骚年……

2.入门

如果对java语言还不熟悉的,那就需要花些日子来学习java;

对于学些android,以下是在网上找的一个表,仅供参考;从这个表中可以看到开发android应用的一个简单的过程和需要掌握的知识技术;

img

学习android应用开发,最主要是学习android的UI显示技术,包括了各种控件特效、页面切换特效、流畅等,这些是和用户使用体验直接挂钩的技术,必须是重点。

而其他的操作,如文件系统、传感器等,影像与声音功能, Android电话功能Telephony,GPS和Bluetooth,卫星定位等,学习起来是比较简单的,一般书籍或者SDK都会有介绍,并且只要会用就行了,不需要什么高级的东西,所以可以在需要的时候,即学即用,而一旦学了就建立自己的代码库来重用代码。

事实上,很多android开发的书籍都可以让菜鸟入门android了;本人学习android技术是博学的,也就是说不是只看一本书的,也不只是看书;看过一些好书,也看过一些不好的书,无论好书坏书都有其值得学习的内容,我不会胡乱评价一本书的好坏,但是有些书能让一个人看起来舒服,这就足够了;当然,另一点很重要的是所阅读的书籍要带有很多例子,或附带有小项目,这样可以让读者边学习边实践;就随便介绍一些书籍吧:

……(有什么好的书籍可以补充补充)(被屏蔽了,哈哈哈)

本人是一个先大局再细节的人,在学习上也是这样,我会首先大体上了解android的整个知识框架,花1-3天时间去学习,可以在网上找一些ppt、或者一些总结性的pdf文档来看,也可以找一些视频来看。当整体上有一个比较深的理解后就可以一步一步的深入细节去学习,这时候就可以看一些比较好的书籍。

都说我不只是看书,其实不仅在哪方面,学习的方法是多样的。当然,看书是一种很好的入门方法,但是一般书籍涵盖的都是一些基础知识,掌握了基础知识,只是初步的入门而已;要想学到更多知识,要想能够没难度地开发应用,那就需要其他的学习方法;本人总结了一些学习方法,都是一些循序渐进的方法(仅供参考):

  1. 网上找文档、资料、视频学习;
  2. 找一本内容丰富,带有一些小项目的书籍来阅读,如(被屏蔽);
  3. 多交流、多实践,其中多实践是必须的;
  4. 找一些开源的大项目来研究,,如wordpress for android,(被屏蔽);
  5. 反编译一些常用的应用来研究,如(被屏蔽)等;
  6. 查看android的SDK源代码,理解android系统控件的实现和优化方法;
  7. ……

3.熟练

要想熟练,那就多交流、多实践、写一些小项目……

4.项目开发

可以找一些开源的大项目来研究,或者反编译一些常用的应用来研究,总结开发的思路、开发布局和开发框架;

5.进阶

这个阶段是探索为什么的阶段,例如ListView控件是怎样实现的,为什么这样实现,有什么优缺点,还能怎样优化等;又如一个应用是怎么运行起来的,运行过程是怎样的,为什么这样运行等等。 要想深入理解这些内容就需要好好的研究android的SDK实现的源代码。

6.……

就是所谓的高级内容:JNI、,openGL ES控件编程、Android移植编程,这些内容不是必须的,不讲了。


上一篇     下一篇