
1可以看出,Android的系统框架由5部分组成. 从下至上是Linux内核,Android运行时,库,应用程序框架和应用程序. 第二部分将详细介绍这五个部分. 从下至上分析图层. LinuxKernel Linux内核层Linux内核层是整个Android系统架构的底层. 它主要扮演核心服务的角色. 它主要负责Android系统的进程,内存和驱动程序管理. 安全模块也反映在这一层中. 内核层还桥接了Android系统和硬件之间的交互. Android运行时库Linux内核层的上层是Android运行时库层. 从该图可以看出,该层有两个主要部分: 核心库和Dalvik虚拟机. 对于核心库,它主要提供Java语言API中的大多数功能. 它还包括一些Android常用的核心API,例如android os和android media. 对于Dalvik虚拟机模块,Android系统不同于J2me Android应用程序. 将有一个独立的过程,即每个Android程序都有一个独立的Dalvik虚拟机实例. Dalvik运行的主要机制是依靠转换工具dx将Java字节码转换为dex格式.
Libraries应用程序框架是一个与应用程序接近的软件服务,底层是Androidr函数库. 这部分是应用程序框架的支持. 媒体功能库此库基于PacketVideo OpenCORE. 它支持多种格式的音频和视频记录和播放. 它还支持静态图像文件. 编码格式主要包括MPEG4,H 264,MP3,AAC,AMR,JPG,PNG等. SurfaceManager管理显示子系统,并为多种应用程序提供2D和3D层的无缝集成. WebKit的最新Web浏览器引擎支持Android浏览器和可嵌入的Web服务器. SGL的基础2D图形渲染引擎为开发人员提供2D开发服务. SSL主要负责安全通信. 握手是在Android上的通信过程中实现的. OpenGL ES提供相对于SGL的2D图形渲染. 该层的主要功能是根据OenGL ES1 API标准实现3D绘图功能库. FreeType提供点矩阵和矢量字符的呈现和显示. 媒体框架为各种音频和视频提供支持. Android支持多种音频,视频和静止图像格式. SQLite在Android系统的上运行,并且是一个小的关系引擎.
Libc Android并不使用glibc作为C库,而是使用Google自己开发的Bionic Lib. 它从BSD继承了标准的C系统功能库,并且专门针对基于嵌入式Linux的设备进行了自定义. ApplicationFramework应用程序框架层Android应用程序框架层位于系统运行时库层的上层. 该层是我们从事Android开发的一些核心应用程序. 一些应用程序是通过此层实现的. 该应用程序框架包括视图系统和活动管理. 设备,通知管理器,内容提供程序,窗口管理器,位置管理器,资源管理器,电话管理器,程序包管理器,硬件服务等. 它们具有自己的功能. 对于活动管理器活动管理器,此模块用于管理程序的生命周期,跳回和其他功能. 例如,打开应用程序所需的资源和退出应用程序时释放的资源. 窗口管理器窗口管理器主要用于管理所有打开的窗口程序. 内容提供程序内容提供程序允许应用程序访问另一个应用程序的数据,例如联系人或共享其数据. View System View System可用于构建应用程序,包括列表显示listview,网格显示gridview,文本框文本框,按钮按钮,图形绘图等以及可嵌入的Web浏览器.

包管理器包管理器管理Android系统中安装的所有应用程序. 例如,字符资源,图像资源,音频资源等. 电话管理器电话管理器主要用于管理所有移动设备的功能. 位置管理器位置管理器主要用于提供位置定位服务. 资源管理器资源管理器主要是为应用程序提供资源. 例如,字符串资源,图片资源,视频和音频资源. 通知管理器通知管理器主要在移动设备的状态栏中显示通知. 硬件服务主要包括电话相关操作服务,应答和拨号等,蓝牙模块相关服务,传感器,重力传感器,温度传感器等相关服务. 应用程序层该层处理整个系统体系结构中最上层的开发. 需要应用程序框架层API来提供支持. 该层主要用Java编写. 开发人员可以在这一层上做各种事情. 这样的应用程序开发和发布应用程序. Android类主要是为了方便开发人员. Android开发与Java开发非常相似. 它是通过调用类库中的类抽象类或接口来开发的. 下面介绍一些常用的类库包. 这些软件包包含开发应用程序. 重要的课程.
重要软件包android app的描述该软件包主要存储程序模型以提供操作环境平台. android content该包主要提供移动设备自身拥有的与数据操作相关的类,例如数据插入,修改等. android database该包主要用于操作,包括的建立,添加,删除,修改和其他相关类在此包中. Android图形主要包括底部的绝大多数图形库,包括画布,颜色过滤,矩形可以在手机屏幕上显示这些形状和点矩阵. android location此包主要用于google map的开发. 它主要提供与定位相关的功能类. Android媒体主要包含用于访问音频和视频的类和接口. Android net主要用于在移动设备上开发网络应用程序. Android os包含消息机制的相关类. Android opengl包含3D开发图片渲染和其他功能类. Android provider主要用于访问操作内容提供者ContentProvider androidtelephony主要用于开发手机上的类似应用程序. AndroidView主要用于提供相关的操作以开发界面布局. Android util常用工具操作. 日期处理还包括用于Android系统中日志打印的相关类.
android webkit此软件包主要用于网页开发. android小部件此软件包包含在移动设备屏幕上可见的各种UI元素. roid组件设计模型Android组件设计模型是Android程序开发和了解Android安全模型的基础. 官方文档定义中的Android应用程序意味着APK中包含的后缀文件的代码逻辑被视为应用程序. Android应用程序由几个组件组成. 组成Android应用程序的四个主要组件是Activity Services内容提供者广播. 一个问题是组件和普通的Android JAVA对象之间有什么区别. 首先,必须在Android应用程序的配置文件中定义组件. 系统管理的时间表具有唯一的生命周期. 其次,该组件是Android应用程序安全管理的最小粒度单位. 在了解组件的技术细节之前,必须首先了解该组件的操作环境. Android组件的进程运行环境Android是多用户Linux操作系统. 每个应用程序使用不同的用户ID来运行. Android对应用程序数据文件实施Linux操作级权限保护. 程序用户ID被赋予并且仅被授予访问权限. 以其他用户ID运行的程序无法访问其权限以外受该程序保护的数据.

每个进程都有一个独立的JAVA虚拟机. 不同的应用程序隔离在独立的JAVA虚拟机中. 默认情况下,每个应用程序都在单独的进程中运行. 当任何组件需要运行时,Android负责启动应用程序过程. 当进程中的所有应用程序组件停止运行时,Android负责停止应用程序进程并释放资源. 如果两个应用程序的数据需要紧密耦合,并且共享应用程序需要安排在同一应用程序进程中运行,则两个应用程序必须具有相同的签名. 10 Android应用程序框架简介开发软件应用程序时,我们通过相关框架与基础Android进行交互. 应用程序层框架是我们在开发时联系最多的框架. Android SDK中内置了一些对象. 最重要的组件是活动,意图,服务和内容提供者. 什么是应用程序框架?框架可以说是应用程序的核心. 该框架是所有参与开发使用并遵守的程序员的合同. 每个人都对其约定进行必要的扩展,但是该程序始终保持主结构的一致性. 它的作用是使程序清晰,一目了然,同时满足不同的需求而又不会相互影响. 活动活动是用户界面. 应用程序可以定义一个或多个活动. 每个活动都可以保存和恢复自己的状态.
意图意图是一种描述特定活动的机制,例如“选择照片”,“拨打电话”和其他特定动作. 在Android中,一切都是通过Intent完成的,因此开发人员有机会替换或重用大量组件. 例如,当您的应用程序需要发送邮件时,可以激活“发送邮件”意图. 开发人员甚至可以重写新的邮件应用程序并将其注册为处理此意图的活动,而不是标准邮件应用程序. 然后其他应用程序可以使用新编写的应用程序发送邮件. 服务服务是一项在后台运行而无需用户直接干预的任务. 它类似于Unix守护程序. 例如,要使音乐播放器可能被其他活动激活,但音乐需要作为背景音乐播放,则可以将此程序视为服务. 然后其他活动可以操作播放器. Android中内置了许多服务,可以使用API轻松访问这些服务. ContentProviders内容提供者内容提供者内容提供者是由自定义API读取和写入操作封装的一组数据. 内容提供者是在不同应用程序之间共享全局数据的最佳方法.
例如,Google提供了联系人的内容提供者,包括姓名,地址,电话等所有信息. 所有应用程序都可以使用该联系人信息. Android应用程序的组成和工作流程如图2所示. Android应用程序Activity Service ContentProvider BroadCastReceiver的生命周期是Android应用程序中常用的四个主要组件. 在常规软件开发中,开发人员最常用的生命周期是活动和服务. 介绍活动和服务的生命周期. Android中Activity的生命周期是围绕移动应用程序的唯一需求而设计的. 在某些情况下,Android可以识别移动设备上的受限资源(例如内存和电源),并提供相应的机制来保护这些资源. 这些机制清楚地反映在Android Activity生命周期中,定义了从创建到销毁的Activity的流程状态和事件. 这些事件的活动监视器和角色是通过初始化与每个事件对应的活动类中的重写方法. onCreate首次创建Activity时将调用onCreate方法. 通过这种方法,您通常可以创建视图并打开该活动所需的所有数据文件并初始化您的活动.

调用onCreate方法时,Android框架通过在Activity运行之前创建Bundle对象来保存Activity的状态. onStart在屏幕上显示活动之前,将调用onStart方法. 一旦onStart调用完成,如果您的Activity成为屏幕上显示的前端Activity,则控件将被移交给onResume方法,onResume将等待调用它. 如果由于某种原因您的Activity无法转换为前端Activity 12,则控制权将移交给onStop方法onStop将等待它被调用. onResume在调用onStart方法之后将Activity转换为前端Activity时,将调用onResume方法. 在这种状态下,活动正在运行并与用户进行交互. 活动接收键盘和触摸输入,并在屏幕上显示活动的用户界面. 当当前Activity失去前端焦点并且前端被另一个Activity占用时,也可以调用onResume. 在您的Activity调用onResume之后,占据前端的Activity最终将失去对前端的关注,而您的Activity将返回到前端.
这是在Activity的开始或恢复时更新用户界面的工作,例如当Android打算将另一个Activity还原到前端时,接受本地更新或在PauseonPause上运行. 调用onPause之后,您的“活动”将不再有权使用该屏幕,因此您将停止那些不必要地消耗功率并占用CPU使用权的事务. 如果您的“活动”正在运行,则没人会看到它,因此您最好在“活动”重新获得前端之前停止. 您的活动需要使用一种很好的方法来存储一些状态,以便您的活动可以重获新生,这当然可以确保您的活动可以恢复. 如果您的“活动”完全占用了移动设备的存储空间,则没有足够的存储空间供其他程序使用. 这样,您的活动将释放系统进程占用的存储空间. 退出此方法后,Android会随时终止您的Activity,最终您将失去对它的控制. 当您的活动长时间未响应或由于另一个活动占用了前端或您的活动被销毁时,将调用onStop onStop.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-269310-1.html
这种新闻标题也是诛心