排序:
默认
按更新时间
按访问量

Android8.0 Rild守护进程

电话是一种开放的通信渠道,任何人都可以随时向任何电话号码致电或者发送短信,因此 Android 用户需要能够轻松屏蔽骚扰电话和短信。在 Android N 推出之前,Android 用户只能依靠下载的应用来限制来自骚扰电话号码的来电和短信。但是,由于没有适当的 API 来屏蔽来电和短信,这些应用大...

2018-11-13 14:05:47

阅读数:25

评论数:2

Android8.0 存储系统

Android 一直在不断发展,可支持各种存储设备类型和功能。所有 Android 版本均支持配有传统存储(包括便携式存储和内置存储)的设备。便携式存储是指物理介质(如 SD 卡或 USB 设备),用于进行临时数据传输/文件存储。物理介质可以随设备一起保留更长时间,但并非固定在设备上,可以移除。自...

2018-11-09 10:45:51

阅读数:42

评论数:0

Android8.0 事件输入系统

Android 输入子系统名义上是由遍历系统多个层的事件管道组成,在最低层,物理输入设备会生成描述状态更改(例如按键按压和触摸接触点)的信号。设备固件以某种方式编码和传输这些信号,例如向系统发送 USB HID 报告或在 I2C 总线上产生中断。 然后,信号由 Linux 内核中的设备驱动程序解码...

2018-11-05 15:05:41

阅读数:26

评论数:0

Android8.0 蓝牙系统

Android 提供支持经典蓝牙和蓝牙低功耗的默认蓝牙堆栈。借助蓝牙,Android 设备可以创建个人区域网络,以便通过附近的蓝牙设备发送和接收数据,在 Android 4.3 及更高版本中,Android 蓝牙堆栈可提供实现蓝牙低功耗 (BLE) 的功能。要充分利用 BLE API,请遵循 An...

2018-10-30 15:04:37

阅读数:102

评论数:0

Android8.0 传感器系统框架

Android传感器属于虚拟设备,可提供来自以下各种物理传感器的数据:加速度计、陀螺仪、磁力计、气压计、湿度传感器、压力传感器、光传感器、近程传感器和心率传感器。下图显示的是 Android 传感器堆栈。尽管某些传感器可以绕过传感器中枢(如果存在)进行通信,但各个组件仅可与其上方和下方紧邻的组件通...

2018-10-20 20:39:24

阅读数:2165

评论数:0

Android8.0 图形引擎与窗体管理服务

以上四篇从图形引擎的硬件抽象层,数据驱动,渲染,输出等方面来看Android的图形引擎,从引擎的输入这一角度来看,引擎数据输入端主要有UI, Camera, Media 等,今天我们从UI的角度来看,以Activity的setContentView为切入点,贯穿PhoneWindow, ViewR...

2018-10-13 11:19:02

阅读数:276

评论数:0

Android8.0 图形引擎的核心 - BufferQueue

上三篇文章我们弄清了图形引擎的输出和动力泵,今天我们来看图形引擎的心脏。为了呈上启下,我们从Surface的创建开始看BufferQueue如何向SurfaceFlinger提供数据驱动这颗心脏跳动。 1. Surface与Layer的创建 窗体管理服务(WMS)通过SurfaceComposer...

2018-10-12 10:54:18

阅读数:97

评论数:0

Android8.0 图形引擎的心跳 - Vsync信号

vsync是Android4.1黄油计划引入的三大核心元素之一,主要为解决用户交互体验差的问题。Android通过VSync机制来提高显示效果,通常这个信号是由显示驱动产生,这样才能达到最佳效果。但是Android为了能运行在不支持VSync机制的设备上,也提供了软件模拟产生VSync信号的手段。...

2018-09-23 11:12:06

阅读数:72

评论数:0

Android8.0 HwComposer 硬件抽象层

图形引擎SurfaceFlinger作为图形系统的心脏,自然需要心跳动力,主要来自图形Composer。Composer有两种一种来自硬件驱动,一种来自软件模拟。今天我们来看Hardware部分。主要分析vsynct同步信号是如何产生传递的,为此我们将略过Fence机制(跨硬件同步),层级合成(硬...

2018-09-12 16:47:38

阅读数:148

评论数:0

Android8.0 帧缓冲硬件抽象层

之前用了一个月的时间去看Android对媒体系统,主要包括Audio,Media,Camera三个子系统;今天我们开始Android图形系统,图形系统在Android操作系统中的地位举足轻重,是用户最直接的交互界面,同时也是Android中最复杂的系统,近年来AR,VR,的发展使得图形系统变得越发...

2018-09-08 19:23:00

阅读数:109

评论数:0

Android8.0 Camera系统架构(二)

上一篇我们从最新的Camera架构来分析Camera子系统,今天我们将从全局的视角从旧版本到新版本架构整体通览一遍,从Framework层的API(1和2)到硬件抽象层的HAL(1和3)。废话少说一起来看一下整体架构:...

2018-08-29 16:06:32

阅读数:297

评论数:0

Android8.0 Camera系统架构(一)

随着Android系统的不断升级,相机子系统框架也在不断进化,由最初的API1和HAL1到现在的API2和HAL3,由最初简单的拍照,录制到现在的连拍,AI人像;可以说是架构上变动最大最频繁的子系统。整个架构可以从下面这张图看出来: Android 的相机硬件抽象层 (HAL) 可将 Cam...

2018-08-27 22:50:05

阅读数:870

评论数:0

Android8.0 Media系统(二)

上一篇从MediaPlayer的创建,设置数据源,播放准备三个流程来看Media系统,今天我们继续来看initFromDataSource()函数,将创建数据提取器,数据提取器将读取数据源文件的元数据信息,将每一路数据流的比特率进行累加,分离数据流,音频/视频/字幕分离:设置视频源mVideoTr...

2018-08-21 11:46:22

阅读数:157

评论数:0

Android8.0 Media系统(一)

以上四篇对Audio系统的简要分析,由于Audio涉及的范围比较广,以后分析其他子系统时在做详细分析。我们继续Media系统的征程,Media系统任然是一个庞大的系统,以MediaPlayer为例,贯穿了Java,JNI,C++库,硬件抽象层,OpenMax驱动,涉及到音视频,编解码等内容。...

2018-08-20 21:18:48

阅读数:283

评论数:0

Android8.0 Audio系统之硬件抽象层

经过以上三篇对AudioTrack,AudioFlinger, AudioPolicy的分析,发现音频数据经过AudioTrack,通过AudioPolicy路由,由AudioFlinger的各路线程混合输出到合适的Audio设备去。我们再分析AudioFlinger构造函数的时候涉及到音频硬件抽...

2018-08-14 15:52:48

阅读数:206

评论数:0

Android8.0 Audio系统之AudioPolicy

上一篇我们跟踪分析了AudioFlinger,它是Audio系统的核心,但是AudioFlinger却不能脱离AudioPolicy工作。AudioPolicy模块承载着音频切换,音轨路由的重要工作,没有它,音频输出将乱套。在分析AudioFlinger的时候我们稍微涉及了AudioPolicyS...

2018-08-14 11:43:43

阅读数:285

评论数:0

Android8.0 Audio系统之AudioFlinger

继上一篇AudioTrack的分析,本篇我们来看AudioFlinger,AF主要承担音频混合输出,是Audio系统的核心,从AudioTrack来的数据最终都会在这里处理,并被写入到Audio的HAL。 frameworks\av\services\audioflinger\AudioFlin...

2018-08-13 16:52:40

阅读数:245

评论数:0

Android8.0 Audio系统之AudioTrack

继上一篇Android硬件抽象层和HAL层Binder框架,我们这次选择Audio系统来研究,之所以选择Audio系统,并非Audio系统简单,恰恰是因为Audio系统复杂。Audio系统与Media系统,Surface系统,通话系统,蓝牙系统…都有交互,可见Audio系统的复杂度。我们将从四个层...

2018-08-13 11:46:46

阅读数:357

评论数:0

Android8.0 硬件抽象层实现分析

众所周知Android是基于Linux内核的开放性系统,我们可以看到Google开放的大部分操作系统实现代码。之所以说它是开放的而不是开源的,是因为Android系统代码不是完全开源的。这始于Linux内核开源协议和第三方厂商隐私安全的矛盾,为了绕过之一矛盾,Google构建了HAL,通过它在在遵...

2018-08-07 15:30:26

阅读数:775

评论数:0

Android8.0 Binder之面向HAL服务(二)

上一篇我们从Binder在系统native层的服务管理与提供机制,它与Framework的native层的实现大不相同,但是实现思想是一致的,都是需要借助Binder驱动来实现服务的管理与跨进程使用。只不过,由于业务层需要导致实现上的不同,比如HAL层的Binder框架并没有将通讯和业务绞和起来,...

2018-07-31 13:51:33

阅读数:163

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭