浅谈Android os体系架构

HarmonyOS技术特性 HarmonyOS技术特性 硬件互助,资源共享 多种设备之间能够实现硬件互助、资源共享,依赖的关键技术包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度等。 分布式软总线 分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互通提供了统一的分布式通信能力,为设备之间的无感发现和零等待传输创造了条件。开发者只需聚焦于业务逻辑的实现,无需关注组网方式与底层协议。分布式软总线示意图见图1。 典型应用场景举例: • 智能家居场景:在制作粉蒸肉时,手机可以通过碰一碰 阅读详情

OS体系结构介绍:

第一、操作系统层(OS)

第二、各种库(Libraries)和Android 运行环境(RunTime)

第三、应用程序框架(Application Framework)

第四、应用程序(Application)

以下分别介绍Andoid各个层次的软件的重点及其相关技术:

● 操作系统层(OS)

Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使用包括核心和驱动程序两部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。

主要的驱动如下所示:

显示驱动(Display Driver):常用基于Linux的帧缓冲(Frame Buffer)驱动。

Flash内存驱动(Flash Memory Driver)

照相机驱动(Camera Driver):常用基于Linux的v4l(Video for )驱动。

音频驱动(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高级Linux声音体系)驱动。

WiFi驱动(Camera Driver):基于IEEE 802.11标准的驱动程序

键盘驱动(KeyBoard Driver)

蓝牙驱动(Bluetooth Driver)

Binder IPC驱动: Andoid一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能。

Power Management(能源管理)

● 各种库(Libraries)和Android 运行环境(RunTime)

本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容

大多是使用C++实现的。

在其中,各种库包括:

▅ C库:C语言的标准库,这也是系统中一个最为底层的库,C库是通过Linux的系统调用来实现。

▅ 多媒体框架(MediaFrameword):这部分内容是Android多媒体的核心部分,基于PacketVideo(即PV)的OpenCORE,从功能上本库一共分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。

▅ SGL:2D图像引擎。

▅ SSL:即Secure Socket Layer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。

▅ OpenGL ES 1.0 :本部分提供了对3D的支持。

▅ 界面管理工具(Surface Management):本部分提供了对管理显示子系统等功能。

▅ SQLite:一个通用的嵌入式数据库

▅ WebKit:网络浏览器的核心

▅ FreeType:位图和矢量字体的功能。

Android 的各种库一般是以系统中间件的形式提供的,它们均有的一个显著特点就是与移动设备的平台的应用密切相关。

Android 运行环境主要指的虚拟机技术——Dalvik。Dalvik虚拟机和一般JAVA虚拟机(Java VM)不同,它执行的不是JAVA标准的字节码(bytecode )而是Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。    二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。

● 应用程序框架(Application Framework)

Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件:

例如: Views (视图组件)包括 lists(列表), grids(栅格), text boxes(文本框), buttons(按钮)等。甚至一个嵌入式的Web浏览器。

一个Andoid的应用程序可以利用应用程序框架中的以下几个部分:

  • Activity (活动)
  • Broadcast Intent Receiver (广播意图接收者)
  • Service (服务)
  • Content Provider (内容提供者,让开发者在不同应用程序之间共享数据。)

应用程序框架也包括一些高级管理(Manager):

  • Activity Manager:控制界面的生命周期,包括管理活动(Activity)栈。
  • Notification Manager:提供一贯的非侵入式的机制来通知用户(例如:当你正在玩游戏时有人给你发短信,通知不会终止你的游戏,你会听到一个声音提示)。
  • Resource Manager:支持非代码资源,如字符串和图形被外部化
  • Window Maganger、Package Mananger、Power Manager、Service Manager等等

● 应用程序(Application)

Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。

开发者需要知道的Android库

核心Android开发库

所以在这个列表中,将帮助开发者了解哪些是可用的核心API。所有的Android设备将提供至少这些API支持:

android.util:核心工具包中包含底层类,字符串格式化和XML解析工具、底层类​​。

android.os:操作系统包提供了访问基本的操作系统服务,如消息传递、进程间通信、时钟功能和调试。

android.graphics:图形API提供了支持画布、颜色和绘制图元的低级别的图形类并且支持绘制画布。

android.text:用于显示和解析文本的文本处理工具。

android.database:在数据库处理游标时提供底层类支持。

android.content:content API管理数据访问,提供服务来管理资源、内容提供者(content provider)和包。

android.view:视图是核心的用户接口类。所有用户界面元素使用的是一系列视图,以构成用户交互的组件。

android.widget**:内置在View包内,小部件类是“这里是我们前面创建的”用户界面元素,可以在自己的应用程序中使用。包括列表、按钮和布局。

com.google.android.maps:高级的API,它提供了访问本地地图控件,可以在自己的应用程序中使用。包括MapView的控制、用于标注和控制您的嵌入式地图的叠加以及MapController类。

android.app:一个高层次的包,允许访问应用程序模型。该应用程序包包括Activity和Service的API等是Android应用程序的基础。

android.provider:方便开发者访问标准的内容提供者(比如联系人数据库),provider包提供类给开发者访问标准的数据库。

android.telephony:telephony API让开发者直接接触电话底层,开发者可以打电话、接电话、显示通话记录、通话状态和短消息。

android.webkit:WebKit的软件包功能的API与基于Web的内容的工作,其中包括一个WebView控件在您的活动中嵌入浏览器和cookie管理器。

同样,你刚才看到的是Android的库可以帮助您快速构建应用程序的简化列表!除了在Android API,Android栈还包括一组的C/C++库,可通过应用程序框架发布出来。它们包括:

OpenGL:用于支持基于OpenGL ES1.0 API、3D图形库。

FreeType**:这支持位图和矢量字体渲染。

SGL**:用于提供2D图形引擎的核心库。

ibc:标准C库,为基于Linux的嵌入式设备进行了优化。

SQLite:用于存储应用程序数据的轻量级的关系数据库引擎。

SSL:支持使用安全套接字层加密协议进行安全互联网通信。

注意:到此,要介绍的就太多了,我将在这里结束。只是多一个部分,你可以做自己的事情。如果你不能看完整个帖子,可以将其加入书签,以备将来参考。因为,这里的大多数内容不会有太大变化!

高级Android开发库

我们所看到的核心库,到目前为止提供所有开发Android应用程序需要的功能。然而钻研高级API将会使用更高级的功能并带来额外的乐趣。

尽管如此,值得注意的是,由于Android希望针对移动硬件有更广泛的适应性,因此要注意下列API适用的场合和以及使用时装置是否具备条件。

android.location:基于位置的服务的API,使应用程序访问设备的当前物理位置。基于位置的服务提供通用的访问使用任何位置固定的硬件或技术设备上可用的位置信息。

android.media:媒体API提供了用于播放音频和视频媒体文件,包括流媒体和录制的支持。

android.opengl:Android提供使用的OpenGL ES API,你可以用它来创建动态3D用户界面为你的应用程序的强大的3D渲染引擎。

android.hardware:如有可能,硬件API公开的传感器硬件,包括摄像头、加速计和指南针传感器。

android.bluetooth,android.net.wifi,android.telephony:Android也提供了硬件平台,包括蓝牙、Wi-Fi和电话硬件的低级别的访问。

操作系统底层架构与内核设计及实现原理 CPU的全称是CentrolProcessingUnit,它是你的电脑中最硬核的组件,这种说法一点不为过。CPU是能够让你的计算机叫 计算机 的核心组件,但是它却不能代表你的电脑,CPU 与计算机的关系就相当于大脑和人的关系。它是一种小型的计算机芯片,它嵌入在台式机、笔记本电脑或者平板电脑的主板上。通过在单个计算机芯片上放置数十亿个微型晶体管来构建CPU,这些晶体管使它能够执行运行存储在系统内存中的程序所需的计算,也就是说CPU决定了你电脑的计算能力。 阅读详情

相关推荐

ROS知识【08】:ros1的体系结构

介绍:ROS的体系分三层结构:OS层、中间层、应用层;

gongdiwudu的专栏 6892

Android OS体系结构介绍及需要撑握开发库

OS体系结构介绍: 第一、操作系统层(OS) 第二、各种库(Libraries)和Android 运行环境(RunTime) 第三、应用程序框架(Application Framework) 第四、应用程序(Application)     以下分别介绍Andoid各个层次的软件的重点及其相关技术: ● 操作系统层(OS)     Android使用Linux2.6作

陈英有 4460

python机器人编程——用python实现一个写字机器人

本篇我们构建一个可以跟人一样写字的机器人python软件。实现如下功能:打开一个写字板,人类在屏幕上写或画出任意形状,机器人同步在纸面上画出和人类一样的形状,就好像人类在远程操控机械臂,又或是机械臂是人的另一只手。这个软件是可以扩展的,如果连上互联网,可以实现人在北京写了一行字,在上海的机器臂同时也在自己的本子上写了一行字。

JAMES费的空间 7991

计算机网络基础——OS七层模型

OSI七层模型 国际标准化组织(ISO) 协议:为了使数据可以在网络上从源传递至目的地,网络上所有设备需要讲相同的语言;描述网络通信中语言规范的一组规则。 数据通信协议:决定数据的格式和传输的一组规则或者一组惯例。 协议分层 网络通信的过程很复杂:数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够阅读。 为了降低网络设计的复杂性,将协议进行...

jsut_rick的博客 1万+

告别米级误差:手把手教你用Nordic nRF52840实现厘米级蓝牙测距(Channel Sounding实战)

本文详细介绍了如何利用Nordic nRF52840开发板和蓝牙信道探测(Channel Sounding)技术实现厘米级高精度测距。通过硬件配置、软件优化和实战案例,帮助开发者快速掌握低功耗蓝牙测距技术,适用于工业自动化、智能仓储等场景。

weixin_42741930的博客 476

染色体外环状DNA:肿瘤研究新方向

染色体外环状DNA(ecDNA)是癌症中活化原癌基因扩增的主要方式。区别于常染色体,这类生物大分子主要以环状的形式存在于细胞核当中,长度分布在103-106数量级,无中心粒。ecDNA序列中包含一个或者多个基因与调控元件,结构开放,转录活性强,相比于在棒状染色体结构基因,ecDNA的生物功能活性更强。癌症中,成环的基因区域拷贝数往往增高,而超过一半的高拷贝数事件是ecDNA驱动生成。...

blackjimmy的博客 765

2024年安卓最全Android开发学习笔记:浅谈WebView,app启动界面设计

我希望通过我自己的学习方法来帮助大家去提升技术:1、多看书、看源码和做项目,平时多种总结2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习。

2301_79098336的博客 582

【一】Android MediaPlayer整体架构源码分析 -【初始化和创建】

本系列文章分析的安卓源码版本:【Android 10.0 版本】 一、MediaPlayer的简单调用关键流程 【这只是一个简单使用过程示例】 // 此处变量声明省略 private void play() { // 先获取SurfaceHolder mSurfaceView = findViewById(R.id.surface_view); mSurfaceHolder = mSurfaceView.getHolder(); mSurfac

CloverLHao的博客 4347

嵌入式系统设计——复习概要(三)

嵌入式系统设计期末复习——软件基础

m0_54718288的博客 775

流形优化: Manifold Optimization 的 全网最通俗版本详解 (一)

前言 之前忙于论文, 停更了很久。 接下来的一段时间,出于各种原因, 决定在优快云平台上做 最近在 混合波束成形 及 智能反射面 领域 非常常见的流形优化 (Manifold Optimization) 算法 的专题介绍。尽管目前已有了不少的中文博客, 但出于其各种弊端, 使得本篇的成文仍有其不可或缺的意义。 而如果要盘点最核心的意义, 就在于这篇是对读者的 数学能力 与 阅读理解能力 要求最低的 流形优化讲解了。 唯一参考的文献为 Manopt 工具包作者 Boumal 的 新书: An introd

B417科研笔记 2万+

从数据同化到水文模拟:CMADS如何重塑SWAT模型的中国实践

本文探讨了CMADS数据集与SWAT模型在中国复杂地形水文模拟中的融合实践。CMADS通过高分辨率气象数据同化技术,显著提升了SWAT模型在中国特殊地理环境下的模拟精度,特别是在数据稀缺区域。文章详细分析了CMADS的技术架构、应用案例及与传统数据的性能对比,为水文研究提供了新的技术支撑。

git9versioner的博客 629

基于嵌入式OS层的初步了解

序言 在实际开发中,如果程序等待一个事件发生,传统的无RTOS情况下,要么在原地一直等待而不能执行其它任务,要么使用状态机机制处理。而RTOS提供事件驱动型设计方式,只是在处理实际任务时才会运行,这能够更合理的利用CPU,也可以很方便的将当前任务阻塞在该事件下,然后自动去执行别的任务,这显然更方便,并且可以高效的利用CPU。处理这类事件,是我使用RTOS的最大动力。 (1)大多数RTOS代码都具有一定规模,任何代码都可能带来BUG,何况是代码具有一定规模的RTOS,因此引入RTOS的同时也可能会引入该RTO

AN15778423590的博客 1564

最详细的 SAP ABAP Web Service 创建和消费步骤讲解

本文原版发表于 SAP 官方社区,当时用的英文版写作,标题为:Step by step to create, consume and trace web service in ABAP system https://blogs.sap.com/2014/05/20/step-by-step-to-create-consume-and-trace-web-service-in-abap-system/ 总共阅读量超过 18 万。 How to create web service provider in A

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3147

操作系统结构

操作系统中的分层法是指将操作系统的不同功能层次划分为若干个层次,每个层次提供一些特定的功能,上层调用下层提供的接口来完成自己的功能。通过分层法,操作系统的功能被分散到不同的层次中,每层只需实现自己的特定功能,从而更好地实现了系统应用程序的模块化设计,利于软件维护。微内核架构,是指将内核中最基本的功能保留在内核,而将那些不需要的核心态执行的功能移到用户态支撑,从而降低内核的设计复杂性。一个故事:现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储 管理、设备管理。

黄先生的博客 5847

STM32F103(二十三)通用同步异步收发器(USART)

学习板:STM32F103ZET6 往期博客: STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结 STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置 STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区 STM32F103五分钟入门系列(四)蜂鸣器实验(库函数+寄存器) STM32F103五分钟入门系列(五)按键实验(库函数+寄存器) STM32F103五分钟入门系列(六)时钟框图+相关寄存器

Curnane0_0的博客 1018

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

操作系统 |OS的运行机制与体系结构

文章目录一、启动计算机体系结构概述计算机内存和硬盘布局开机顺序二、中断、异常和系统调用背景中断、异常和系统调用比较系统调用的概念系统调用的实现程序调用与系统调用的不同之处开销 一、启动 计算机体系结构概述 计算机内存和硬盘布局 开机顺序 二、中断、异常和系统调用 背景 中断、异常和系统调用比较 系统调用的概念 系统调用的实现 程序调用与系统调用的不同之处 开销 ...

匿名攻城狮 2033

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

操作系统基础

一.操作系统定义 操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。 二.计算机的层次结构 1.操作系统对于软件、硬件 2.操作系统对于用户 3.操作系统对于硬件 ...

dark159735的博客 2478

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

OS层、应用层、硬件层关系

(如控制LED、读取传感器),这些任务通过调用。我们拆解一个生活中的例子,彻底理解这三层关系。)操作硬件,而无需直接处理底层寄存器。三者各司其职,共同实现复杂功能。)将CPU控制权移交给RTOS。“在应用层,开发者根据需求。

qq_63041110的博客 919

OS_I/O系统的层次结构

用户层软件设备独立性(无关性)软件设备驱动程序中断处理程序设备控制器它是I/O系统与上层系统之间的接口,向上层提供对设备进行操作的抽象I/O命令,以方便高层对设备的使用。有不少OS在用户层提供了与I/O操作有关的库函数,供用户使用。在上层系统中有文件系统、虚拟存储器系统以及用户进程等。包括:块设备接口流设备接口网络通信接口该接口是软件/硬件接口,在它的上面是中断处理程序和用于不同设备的设备驱动程序。在它的下面是各种设备的控制器。如CD-ROM控制器、硬盘控制器、键盘控制器、打印机控制器、网络控制器等,它们都

xuchaoxin1375的博客 5323

ROS复习笔记5:ROS架构与基础

复习

qq_71734878的博客 909

计算机系统的层次结构

操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件操作系统是系统资源(硬件和软件)的管理者向上层提供方便易用的服务是最接近硬件的一层软件。

qq_64919823的博客 2147

操作系统02-OS结构

操作系统以服务的形式向程序和用户提供执行程序的基本服务,包括用户界面、程序执行、IO操作、文件系统操作、通讯、错误监测等。手机操作系统常用的人机交互界面是GUI操作系统提供给应用程序的接口是:系统调用。mac os x是采用混合结构采用模块化机构的OS:liunx、solaris服务器操作系统比较适合的结构是微内核结构。

lovemelovefish的博客 500

操作系统(Operator System)

本文系统介绍了操作系统(OS)的核心概念及架构设计。OS作为计算机系统的核心软件,承担硬件资源管理和为应用程序提供运行环境两大核心职责。其采用分层架构设计,包括硬件层、操作系统层、驱动层和用户层,通过系统调用、库函数等接口提供服务。文章重点阐述了OS的硬件抽象方法、进程管理原理(PCB数据结构)以及系统调用机制,揭示了操作系统"先描述再组织"的设计思想。这种架构实现了硬件独立性、系统安全性和用户便利性,为计算机系统提供了稳定高效的运行基础。

祯的博客 1652

Android | Android OS 源码结构

Android 9.0.0系统源码根目录结构

JifengZ9的博客 1726

android学习笔记14 - android.os包:系统功能调用和系统参数获取

android.os包中包含了系统参数的获取和系统功能的调用,以下介绍4个其中常用的包的调用: 1.android.os.Build  Build.BOARD // 主板   Build.BRAND // android系统定制商   Build.CPU_ABI // cpu指令集   Build.DEVICE // 设备参数   Build.DISPLAY // 显示屏参数   B

小泡泡的博客 1849
上一篇: win7查看电脑配置教程
下一篇: 浅谈Activity的四种启动模式
ChengLuo.
博客等级 码龄11年 144粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值