第一部分 Android架构
android 的架构分为:Kernel、Core Lib、FrameWork、Applications。
Kernel提供了内核内存管理、进程管理、网络协议栈、安全性和各种驱动,例如声音驱动、显示驱动、Flash驱动、Binder驱动、蓝牙驱动、USB驱动、摄像头驱动、WiFi驱动。
Core Lib提供了Java运行所需要的可各种库和Dalvik虚拟机,库包括libc、WebKit、SQLLite、OpenGL\ES、SurfaceManager和MediaFrameWork,每个应用程序都是独立的Dalvik虚拟机实例。这里的SurfaceManager主要是指native与语言部分。
FrameWork是核心应用程序使用的API框架。该框架的作用是用来简化组件软件的重用。所有的应用程序都由以下几个部分组成 View、Content Provider、Resource Manager、Notification Manager、Activity Manager。
Applicationgs则是系统自带或者第三方提供的应用程序。
第二部分 Android 代码结构
第三部分 Android应用程序的基本组件
Android应用程序的基本组件有 Activity、Service、Broadcast Receiver和Content Provider。
Activity
Activity是单独的屏幕,每个Activity都被实现成一个独立的类,并且都继承于Activity这个基类。
Activity显示由几个Views空间组成的用户接口,并响应事件。
通过startActivity()方法打开新的屏幕,打开Activity的条件保存在Intent中。
开启新的屏幕之后,前一个屏幕的信息会保存在堆栈中,用户可以返回到历史堆栈中的前一个屏幕。
Service
Service是一种长生命周期、没有用户界面的程序。
通过Content.startService()方法启动一个服务。
通过Content.bindService()方法可以直接连接到一个服务上,如果对应的服务没有运行,系统会启动它。
Broadcast Receiver
目的是为了实现系统广播。例如发出广播检测手机电量的变化。
ContentProvider
实现不同组件之间数据的共享。
第四部分 Android界面的控制
Android中用户界面的展示分为三层:
Activity:最底层是Activity
Window: Activity之上是Window。
View:Window之上是View,View可以分为View和ViewGroup,View是基本的控件,如按钮、单选框、多选框、菜单,ViewGroup是布局控件,用来控制界面中控件的布局。
第五部分 Intent
Intent封装了不同组件之间导航查找的条件,包括动作和动作对用的数据两部分。
动作包括MAIN、VIEW、PICK、EDIT。
动作对应的数据以URI的形式进行表示。