marshal_zsx的博客

路漫漫其修远兮,吾将上下而求索

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

Android systrace性能工具使用说明

原文网址:http://gityuan.com/2016/01/17/systrace/ 一、概述 保证系统流畅度,也就是保证系统能连续不间断地提供每秒60帧的运行状态。当出现掉帧时(也可称为Jank),需要知道当前整个系统所处的状态,systrace便是最佳的选择,它能手机检测android系统...

2018-10-20 17:02:11

阅读数:12

评论数:0

Android bootchart工具使用说明

    Bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。Android5.1之前已自带bo...

2018-09-19 11:03:18

阅读数:18

评论数:0

AndroidO audio系统之AudioPolicyService分析(三)

1.AudioPolicyService基础 AudioPolicy在Android系统中主要负责Audio”策略”相关的问题。它和AudioFlinger一起组成了Android Audio系统的两个服务。一个负责管理audio的“路由”,一个负责管理audio“设备”。在Android O ...

2018-07-27 22:01:36

阅读数:186

评论数:0

AndroidO audio系统之audioflinger启动分析(二)

1. audioflinger创建过程 在Android8.0的音频系统中,AudioFlinger是一个C++的Binder服务,运行在HAL进程中,它是在audioserver.c //frameworks/av/media/audioserver/audioserver.rc servi...

2018-07-20 11:50:45

阅读数:224

评论数:0

AndroidO audio系统之框架简介(一)

1、概述        Audio系统在Android中负责音频方面的数据流传输和控制功能,也负责音频设备的管理,它是Android中最复杂的子系统之一。本文将粗略分析一下audio的整体框架及播放、录制流程。不足之处,敬请指正,谢谢! 2、音频框架图 2.1 Applic...

2018-07-13 18:01:13

阅读数:298

评论数:0

Android 8.0 系统启动流程之zygote进程(八)

前言 在上一篇中我们讲到,init进程会解析.rc文件,并介绍了.rc文件中的语法规则。其中不乏有许多service启动,这些service通常不是普通的服务,文档里面的称呼是daemon(守护进程). 所谓守护进程就是这些服务进程会在系统初始化时启动,并一直运行于后台,直到系统关闭时终止. ...

2018-06-30 22:00:26

阅读数:150

评论数:0

Android 8.0 系统启动流程之init.rc解析与service流程(七)

1、概述     上一篇文章中我们介绍了一下init.rc文件中的语法规则,而本文将分析如何解析rc文件,并对rc文件中的某一service启动过程进行分析。 2、解析.rc文件 之前我们在文档中看到.rc文件主要有根目录下的 /init.rc ,以及{system,vendor,odm}/...

2018-06-23 20:48:58

阅读数:262

评论数:0

Android 8.0 系统启动流程之init.rc语法规则(六)

1、概述     init经过前两个阶段后,已经建立了属性系统和SELinux系统,但是init进程还需要执行很多其他的操作,还要启动许多关键的系统服务,但是如果都是像属性系统和SELinux系统那样一行行代码去做,显得有点杂乱繁琐,而且不容易扩展,所以Android系统引入了init.rc。 ...

2018-06-17 12:48:49

阅读数:288

评论数:0

Android 8.0 系统启动流程之init进程--第二阶段(五)

1、概述     上一篇中讲了init进程的第一阶段,我们接着讲第二阶段,主要有以下内容 创建进程会话密钥并初始化属性系统 进行SELinux第二阶段并恢复一些文件安全上下文 新建epoll并初始化子进程终止信号处理函数 设置其他系统属性并开启系统属性服务 2、创建进程会话密钥并初始...

2018-06-09 00:09:45

阅读数:336

评论数:0

Android 8.0 系统启动流程之init进程--第一阶段(四)

1、概述     上一篇中讲到,Linux系统执行完初始化操作最后会执行根目录下的init文件,init是一个可执行程序,它的源码在platform/system/core/init/init.cpp。init进程是用户空间的第一个进程,我们熟悉的app应用程序都是以它为父进程的,init进程入...

2018-06-02 11:52:38

阅读数:407

评论数:0

Android 8.0 系统启动流程之Linux内核启动--kernel_init进程(三)

    在上一篇文章中详细的分析了kthreadd进程的启动,init进程也是有idle进程去触发启动的,init进程分为前后两部分,前一部分是在内核启动的,主要是完成创建和内核初始化工作,内容都是跟Linux内核相关的;后一部分是在用户空间启动的,主要完成Android系统的初始化工作。   ...

2018-05-27 13:45:03

阅读数:254

评论数:0

Android 8.0 系统启动流程之Linux内核启动--kthreadd进程(二)

    在上一篇文章中详细的分析了idle进程的启动,idle进程启动过程中会启动init进程与kthreadd进程,本文将详细分析kthreadd进程的启动过程。 1、kthreadd进程启动 由上篇文章分析可知,在rest_init函数中启动了kthreadd进程 static ...

2018-05-18 13:41:20

阅读数:198

评论数:0

AndroidO Treble架构下HIDL服务Java框架实现

前面介绍了HIDL服务在native层的实现过程,包括HIDL服务加载创建、服务注册、服务查询过程等,那么Java层是否也实现了相关的服务框架呢? 通常情况下,所有的Hal都实现在native层面...

2018-05-12 17:21:37

阅读数:378

评论数:1

AndroidO Treble架构下HIDL服务查询过程

通过前面的分析我们知道,Hal进程启动时,会向hwservicemanager进程注册hidl服务,那么当Framework Server需要通过hal访问硬件设备时,首先需要查询对应的hidl服...

2018-05-12 17:20:00

阅读数:316

评论数:0

AndroidO Treble架构下Tranport类型查询过程

通过前面文章的分析,我们知道,Client进程在查询hidl服务接口对象时,会根据该hidl服务的Tranport类型选择加载方式,如果是HWBINDER,那么就从hwservicemanager...

2018-05-12 17:19:10

阅读数:153

评论数:0

AndroidO Treble架构下hwservicemanager启动过程

hwservicemanager是hidl服务管理中心,负责管理系统中的所有hidl服务,由init进程启动。[html] view plain copy print?service&am...

2018-05-12 17:15:35

阅读数:120

评论数:0

AndroidO Treble架构下Binder对象的转换过程

上文中详细分析了Hal的整个启动过程,这里将补充上文中没有详细分析的Binder对象转换过程,下图为hidl服务的完整注册过程:1.  HwcHal继承于IBas...

2018-05-12 17:13:45

阅读数:217

评论数:0

AndroidO Treble架构下Hal进程启动及HIDL服务注册过程

通过前面对Treble架构的介绍,我们知道,Android Framework进程和Hal分离,每个Hal独立运行在自己的进程地址空间,那么这些Hal进程是如何启动的呢?本文以composer h...

2018-05-12 17:12:44

阅读数:645

评论数:2

AndroidO Treble架构下的变化

AndroidO引入Treble架构后,有那些变化呢?1. 增加了多个服务管家,AndroidO之前版本有且只有一个servicemanager,现在增加到3个,他们分管不同的服务。2.增加了bi...

2018-05-12 17:06:23

阅读数:323

评论数:0

AndroidO Treble架构下的接口文件编译

HIDL是一种接口定义语言,描述了HAL和它的用户之间的接口。同aidi类似,我们只需要为hal定义相关接口,然后通过hidl-gen工具即可自动编译生成对应的C++或者java源文件,定义...

2018-05-12 17:04:51

阅读数:302

评论数:0

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