尽管博客上已经有很多写Android架构的文章,作为我迈入Android的第一步,我会记录每一点体会,分享其中点点滴滴,希望牛牛们多多赐教
,我也一定要坚持下来!
1. Android 初识
1.1 Android系统 是基于Linux内核开发的开源的应用于移动平台一款操作系统。
它包含以下一些特色的功能:针对移动设备优化的Dalvik虚拟机, 基于开源浏览器引擎WebKit的集成浏览器,
优化的2D图形库和基于OpenGL ES的3D图形库,用来存放结构化数据的SQLite,支持各种格式的多媒体,对蓝牙,
WiFi,GPS的支持,当然最重要的还是强大的系统框架和API来方便我们重用它的组件,以及非常丰富的开发环境的支持,
包括设备模拟器,Eclipse插件支持,内存性能剖析工具等。
1.2先上一张Android系统的架构图
从上到下 依次 :
// Android框架层资料
摘自 百度文库
1. 应用程序 Application
Android 会同一系列核心应用程序包一起发布,该应用程序包括Email客户端,SMS短消息程序,日历,地图,
浏览器,联系人管理程序等.所有的应用程序都是使用Java语言编写的.我们可以参考android源码相关的模块,来进行学习
2. 应用程序框架 Application Framework
可以访问核心应用程序所使用的API框架.
隐藏在每个应用后面的是一系列的服务和系统,其中包括:
*丰富而又可扩展的视图(Views)
: 用来构建应用程序.
*内容提供器(ContentProviders)
: 使得应用程序可以访问另一个应用程序的数据.
*资源管理器(Resource
Manager) : 非代码资源的访问,如 本地字符串,图形,布局文件(Layout File).
*通知管理器(Notification
Manager) :使得应用程序可以在状态栏中显示自定义提示信息.
*活动管理器(Activity
Manager) :用来管理应用程序的生命周期并提供常用的导航回退功能.
3. 系统运行库 Library , Android runtime
1. 程序库
*系统C库
*媒体库
*Surface
Manager
*LibWebCore
*SGL
*3D
libraries
*FreeType
*SQLite
2.Android 运行库
4. Linux内核 Linux Kernel
Android 的核心系统服务依赖于Linux
2.6内核.如 安全性,内存管理,网络协议栈和驱动模型.
Linux内核也同时作为硬件和软件栈之间的抽象层.
1) Activity
Android系统的用户界面都是基于Activity创建的,一个应用程序可以包括一个或者多个Activity, 但都是继承于
android.app.Activity这个基类。每个Activity包括一个默认窗口用来填充一系列的View,用户通这些View来与Activity
交互,Android系统提供了很多View的控件,如按钮Button,文本框TextView,滚动条scrollview等。
2) Content providers:
它是对Android系统的数据访问的一种封装, 提供一系列标准的存取数据方法,不管数据是存在文件系统,还是SQLite数
据库,各个应用程序都可以通过Content provider访问数据。如果想在各个应用程序之间共享数据也只有通过
Content provider方式来实现。Android的编程模型也是鼓励我们创建自己的数据的同时,也可以让其它应用程序访问。
比如在发送消息的应用程序用必然会调用到联系人的数据。
3) Services:
类似于windosw平台上的服务。不同于Activity和Content providers的短生命周期,Services可以一直在后台运行,而且
可以独立于任一Activity,比如播放背景音乐,定时检查软件是否需要更新等。
4) Intents:
指Android中的系统消息。我们知道很多系统中各应用程序都是通过发送消息来进行交互的, Android正是通过Intents来
通知应用程序的各种事件,比如电池电量不足,检测到存储卡等。
通过以上资料,我对Android有了些大致的认识 ,这应当会是有用的.
文章摘于//http://blog.csdn.net/cjjky/article/details/6299797