安卓的framwork

2024-04-04 23:18
文章标签 安卓 framwork

本文主要是介绍安卓的framwork,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下:

    1)应用程序层

         Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是       用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个    性化。

 

    2)应用程序框架层

         应用程序框架层是我们从事Android开发的基础,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以实现个性化的拓展。

         a) Activity Manager(活动管理器)

              管理各个应用程序生命周期以及通常的导航回退功能

         b) Window Manager(窗口管理器)

              管理所有的窗口程序

         c)  Content Provider(内容提供器)

              使得不同应用程序之间存取或者分享数据

         d) View System(视图系统)

              构建应用程序的基本组件

         e) Notification Manager(通告管理器)

              使得应用程序可以在状态栏中显示自定义的提示信息

         f) Package Manager(包管理器) 

              Android系统内的程序管理

         g)Telephony Manager(电话管理器)

              管理所有的移动设备功能

         h)Resource Manager(资源管理器)

              提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等

         i)Location Manager(位置管理器)

             提供位置服务

         j)XMPP Service(XMPP服务)

             提供Google Talk服务 

 

    3)系统运行库层

         系统运行库层可以分成两部分,分别是系统库和Android运行时:

         a)系统库

              系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要分为如下几个:

              Surface Manager:

                  执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。 

              Media Framework: 

                 多媒体库,基于PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。

             SQLite:

                  小型的关系型数据库引擎 

             OpenGL|ES:

                  根据OpenGL ES 1.0API标准实现的3D绘图函数库 

             FreeType:

                  提供点阵字与向量字的描绘与显示 

             WebKit:

                  一套网页浏览器的软件引擎

             SGL:

                  底层的2D图形渲染引擎 

             SSL:

                  在Andorid上通信过程中实现握手 

              Libc:

             从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制

         b)Android运行时

             Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。

              核心库

                 核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.net、android.media等等。

              Dalvik虚拟机

                 Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化 以及支持多个虚拟机的特点。

  

    4)Linux内核层 

        Android是基于Linux内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。

这篇关于安卓的framwork的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877071

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

安卓玩机工具------小米工具箱扩展工具 小米机型功能拓展

小米工具箱扩展版                     小米工具箱扩展版 iO_Box_Mi_Ext是由@晨钟酱开发的一款适用于小米(MIUI)、多亲(2、2Pro)、多看(多看电纸书)的多功能工具箱。该工具所有功能均可以免root实现,使用前,请打开开发者选项中的“USB调试”  功能特点 【小米工具箱】 1:冻结MIUI全家桶,隐藏状态栏图标,修改下拉通知栏图块数量;冻结

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

安卓实现弹出软键盘屏幕自适应调整

今天,我通过尝试诸多方法,最终实现了软键盘弹出屏幕的自适应。      其实,一开始我想通过EditText的事件来实现,后来发现,安卓自带的函数十分强大,只需几行代码,便可实现。实现如下:     在Manifest中设置activity的属性:android:windowSoftInputMode="adjustUnspecified|stateHidden|adjustResi

安卓错误经验分析之 R cannot be resolved to a variable

当出现 R cannot be resolved to a variable  错误的时候,不能采用编译器建议的修改方法,试着clean一下,然后查找gen文件夹下R.java是否丢失,如果不存在R.java,程序没有报错且采用其它方法均无效,八成是res文件夹下的layout或者manifest出现错误没有显示出来,需要自己查一遍,否则无法根本解决问题,盲目修改代码是没用的。

uni-app 扫码优化:谈谈我是如何提升安卓 App 扫码准确率的

一. 前言 之前的一个项目遭到用户吐槽:“你们这个 App 扫码的正确率太低了,尤其是安卓的设备。经常性的扫码扫不出来,就算是扫出来了,也是错误的结果!” 由于之前是扫描二维码的需求,所以没有对扫描条形码做严格的测试,客户提示说是条形码扫描效率低下。随即,我用自己的手机测试了一下,在安卓手机上确实有这样的问题,扫码准确率确实是低,尤其是条形码,扫码效率慢且不准确。扫描二维码的的效率还算可以

安卓金币字符串转换成三位一个逗号的格式

DecimalFormat df1 = new DecimalFormat("###,###,###,##0.##");         return df1.format(Double.parseDouble(“ 17352208.25 ”)); 输出   17,352,208,25

安卓开发的无线adb

无线adb调试程序,和 电脑手机之间传输文件 使用无线 adb 从 远程手机 上 下载 文件 adb pull sdcard/mapgis/data G: 将 data 文件夹里的 所有 文件 下载 到 电脑 的 G: 盘目录下 现在我有一个小方法说不定可以帮助某些人哦(多为不是android开发人员) 1. 条件如下: android 手机  wifi无线连

安卓自定义控件、自定义xml里的属性的用法

在android相关应用开发过程中,固定的一些属性可能满足不了开发的需求,所以在一些特殊情况下,需要自定义控件与属性,本文将以此问题进行详细介绍,需要的朋友可以参考下。 步骤一: 继承 View 定制 自己需要的 控件 public class State3BidTitleView extends RelativeLayout implements OnClickListen