对于一名程序员来说,“自顶向下”虽然是一种最普通不过的分析问题和解决问题的方式,但其却是简单且较为有效的一种。所以,将其应用到Android的学习中来,不至于将自己的冲动演变为一种盲目和不知所措。
根据“自顶向下”、“从整体到局部”的思想,我的基本学习思路是:
- 从全局入手,宏观的了解Android平台的架构
- 了解基于Android平台的应用程序的运行原理
- 了解环境的搭建,为后面结合实践来学习细节做准备
- 根据平台架构,从上层到下层,一层一层的了解其相关的具体内容,并通过实践来强化学习
市面上关于Android的书籍数不胜数,我参考的是各路大侠推荐的《Android应用开发揭秘》并结合Android官网上的Online资料(当然在SDK里也包含Offline的),网址http://developer.android.com/index.html
首先来了解一下Android平台架构,如下图:
(1)最上层是“应用层”:包含一些核心应用程序,我们开发的应用程序也属于这一层,开发语言为Java。(Android应用开发主要是在这一层)
(2)然后是“应用程序框架层”:根据我自己的理解,应用程序框架层主要是将开发需要调用的功能封装并模块化,这样便于复用以及便于开发者对其进行替换。说白了,应用程序框架其实就是封装的各个现成的类。(Android系统开发主要是在这一层,修改Bug,深度定制)
(3)接下来是“运行库层”:该层包含C/C++开发的库、Java开发的核心库和Dalvik虚拟机
(4)最下面一层是“linux内核层”:Android基于的linux内核版本是v2.6,linux内核层也作为硬件和软件之间的抽象层,硬件驱动程序包含其中,开发语言是C语言。(Android驱动开发在这一层)
了解了上面的内容,关于Android平台的开发其实已经有了很明确的概念,即Android开发主要包含:应用开发、系统开发和驱动开发;应用开发和系统开发主要使用Java语言,并且需要对应用程序框架及运行原理有很清楚的认识;而驱动开发则需要了解Linux内核,并需要具备C语言开发能力。
from:http://www.cnblogs.com/Pickuper/archive/2011/06/11/2078516.html