Android系统目前正受到市场和开发这火热追捧中。其中大部分开发者的关注点却集中在application开发层次。当然这不能责怪我们程序员们。所在的开发环境都强调的是开发速度。我们在学习那些API后,只是成为熟练的应用开发者。但是android内部的框架结构,模块划分,运行原理,我们是否了解呢?
也许有人会说,我会GUI应用的快速开发就可以了。这个也没有错,如果你是一个只想做这个熟练工种的人,那确实够了。你会说了,学那么深入做什么?也许明天,android就out了,你又要学习新的系统API了。确实有这个可能。但是请问,即使另外一个系统流行起来了,这些操作系统内部的运行机制和原理有多少改变呢?很多原理性质的东西是没有变的,计算机和嵌入式系统的这些年发展本身就说明了这些。在掌握了这些原理性的东西后,学习那些新的API只会更快。别人是死记API的使用,但是你只要知道原理性,你甚至能知道它的API为什么这样写。
同时,说说DEBUG,如果有层次的概念,恐怕,多了解内部的机制,可以很快定位bug所在的地方,这个好像是废话了,呵呵。
对于一些中间件以及更加底层级别的开发者,了解android内部的框架设计和运行原理就更加重要了。中间件层的开发者需要总结的东西很多,上下层的接口,框架的设计,以及为什么这样设计,换做是自己的话,自己可能怎么样设计。任何设计都是有其缺点的,ANDROID也不例外,尝试找出它的缺点。设计其实很难,很多时候是多种考虑折中的结果。
其实从PC上的linux,到嵌入式的linux,到android,中间存在过各种各样的版本。有公司的,有开源组织的。我们看见的是嵌入式的linux的不断进化。市场接受的程度也越来越高。里面的技术发展也非常迅猛。从用户体验上说,速度越来越快,功能越来越强。
很幸运,google把android几乎所有的代码都开放出来了。我们这些技术爱好者得以学习研究。
单就我的学习来说,我没有发现有什么新的技术原理在android里面诞生。大部都是业界成熟的已有的框架技术和运行原理。还是应了那句老话,太阳下面,没有一件事情是新鲜的。
以后,我会尝试在我熟悉的一些模块里面,写一些文章和大家相互讨论学习。