目录:
1,Android 系统架构
2,Android 类库
3, 四大组件
-----------------------------------------------------------------------
1,Android 系统架构
从架构图看出架构分为五个部分, 由下往上依次为:
Linux Kernel:Android 基于 Linux 提供核心系统服务, 例如: 安全, 内存管理, 进程管理, 网络堆栈, 驱动模型. Linux Kernel 也作为硬件和软件之间的抽象层, 它隐藏具体 g 硬件细节而为上层提供统一的服务.
Android Runtime:Android 包含一个核心库的集合, 提供大部分在 Java 编程语言核心类库中可用的功能. 每个 Android 应用程序是 Dalvik 虚拟机中的实例. java 程序的运行需要 java 的核心包的支持, 然后通过 JVM 虚拟机来运行我们的应用程序, Android Runtime 里的 Core Libraries 就相当于 java 的 JDK, 是运行 Android 应用程序所需要的核心库, Dalvik Virtual Machine 就相当于 JVM, 这是 Google 专为 Android 开发的运行 Android 应用程序所需的虚拟机. Dalvik 的可文件格式是. dex,dex 格式是专为 Dalvik 设计的一种压缩格式, 适合内存和处理器速度有限的系统. Dalvik 依赖于 Linux Kernel 提供基础功能, 如线程和底层内存管理.
Liberaries:Android 包含一个 C/C++ 库的集合, 供系统的各个组件使用. 这些功能能通过 Android 的应用程序框架 (application framework) 暴露给开发者. 下面列出一些核心库:
系统 C 库: 标准 C 系统库 (libc) 的 BSD 衍生, 调整为基于嵌入式 Linuxhe 设备.
媒体库: 基于 PackerVideo 的 OpenCORE. 这些库支持播放, 录制许多音频和视频 h 格式, 以及静态文件.
界面管理: 管理访问显示子系统和无缝组合多个应用程序的 2D 和 3D 图形层.
LibwebCore:(WebKit 是一个开源的浏览器网页排版引擎, 包含 WebCore 排版引擎和 JSCore 引擎)Web 浏览器引擎, 驱动 Android 浏览器和内嵌的 Web 视图.
SGL: 基本 2D 图形引擎.
3D 库: 基于 OpenGL ES APIS 的实现. 库使用硬件 3D 加速或包含高度优化的 3D 软光栅.
FreeType: 位图和矢量字体渲染.
SQLite: 关系型数据库引擎.
Application Framework: 通过开放的开发平台, 开发者可以使用核心应用程序所使用的框架 APIs. 应用程序的体系结构旨在简化组件的重用, 任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制). 这一机制允许用户替换组件. 所有的应用程序其实是一组服务和系统, 包括:
View: 视图集合, 包括列表, 网格, 文本框, 按钮, 甚至是内嵌的网页浏览器.
Content Providers: 内容提供者使得应用程序能访问其他应用程序的数据(如通讯录), 或共享自己的数据.
Resource Manager: 资源管理器提供访问非代码资源, 如本地化字符串, 图形, 布局文件.
Notifacation Manager: 通知管理器使得所有的应用程序能够在状态栏显示自定义警告.
Activity Manager: 活动管理器管理应用程序生命周期, 提供通用的导航回退功能.
Application:Androide 装配一个核心应用程序集合, 包括电子邮件, 日历, 地图, 浏览器, 通讯录等. 开发者也可以自行开发应用程序.
2,Androido 常用类库
Android.util: 核心工具包
Android.os: 操作系统包, 提供基本操作系统服务的访问 n 时间, 例如消息传递, 进程间通信.
Android.graphic: 图形 API, 提供了支持画布, 颜色和绘画的低级图形类, 让开发者可以在画布上画.
Android.database
Android.content: 内容 API, 通过处理资源, 内容提供器和 a 包的服务, 来管理数据访问和发布.
Android.view: 核心用户界面类. 所有的用户界面元素的都是使用一系列 View 构造的, 用来提供交互组件.
Android.widget: 构建在 View 包的基础上, Widget 类是已经创建好的用户界面元素, 可以直接在应用程序中使用, 包含列表, 按键, 布局.
com.google.Android.maps: 提供对本地地图空间的访问.
Android.App: 应用程序包, 包含活动 (Activity) 和服务(service)API, 形成所有应用程序的基础.
Android.provider: 为了方便开发者对某些标注的内容提供器进行访问, provider 包提供了一些类.
Android.telephony: 允许直接与电话栈进行交互, 实现打电话, 监控电话状态, 收发 SMS 消息.
Android.webkit: 提供与基于 Web 的内容相关的 API, 包括一个 WebView 控件, 可以在活动或者 cookiea 管理器嵌入一个浏览器.
3, 四大组件
(1)Activity: 活动, 一种包含用户界面的组件, 用于和用户进行交互. 在 Android 的程序当中, Activity 一般代表手机屏幕的一屏. 如果把手机比作一个浏览器, 那么 Activity 就相当于一个网页. 在 Activity 当中可以添加一些 Button,Check box 等控件. 可以看到 Activity 概念和网页的概念相当类似.
一般一个 Android 应用是由多个 Activity 组成的. 这多个 Activity 之间可以进行相互跳转, 例如, 按下一个 Button 按钮后, 可能会跳转到其他的 Activity.
生命周期:
activity 三种状态: 运行(运行在最前端), 停止(不可见, 完全被覆盖), 暂停(可见, 但前端还有其他 activity)
生命周期相关的方法: onCreate-onStart-onResume-onPause-onStop-onDestory-onRestart
(2)broadcastReceiver: 广播接受者, 没有用户界面.
Broadcast 是一种广泛运用的在应用程序之间传输信息的机制. 而 BroadcastReceiver 是对发送出来的 Broadcast 进行过滤接受并响应的一类组件.
使用 broadcastReceiver 可以让应用程序对外部事件做出响应. 例如, 当电话呼入这个外部事件到来的时候, 可以利用 BroadcastReceiver 进行处理.
(3)contentProvider: 内容提供者, 使一个应用程序的指定数据集提供给其他应用程序. 这些数据可以存储在文件系统中, 在一个 SQLite 数据库, 或以任何其他合理的方式.
(4)Service: 服务, Service 是 Android 系统中的一种组件, 它跟 Activity 的级别差不多, 但是他不能自己运行, 只能后台运行, 并且可以和其他组件进行交互. Service 是没有界面的长生命周期的代码.
来源: https://www.cnblogs.com/1996swg/p/9789497.html