当前位置:首页 » 安卓系统 » androidDr

androidDr

发布时间: 2024-05-11 17:55:38

1. Android 日志系统分析(二):logd

logd 守护进程是日志系统的管家,内部维持三个日志 Socket : logd、logdr、logdw 来与客户端进行通信。同时负责维护几个环形缓冲区,用于存放系统中的各种日志,缓冲区包含 main、system、events、radio、crash、kernel ;但是在 Android 5.0 之前, logd 进程并不存在,日志是保留在 /dev/log/main、/dev/log/system、/dev/log/radio、/dev/log/event 等节点中,但是这样面临的一个问题就是当 Android 系统大版本升级时, linux kernel 需要升级对应的日志驱动,因此在后续的版本中就有了 logd 进程。

在 Android 日志系统分析(一):概述 一文中,总结了整个日志读写的主要流程,因此对于 logd 进程是如何同外界沟通进而读写日志的过程不再赘述,而着重于 logd 本身的一些知识点,这里先看一下 logd 的系统框图:

知识点:

logd 是日志系统的核心进程,由 init 启动,是属于守护进程常驻后台
logd 维护各个日志节点缓存队列,提供 socket 接口进行读、写、控制功能
logd 进程启动后,分别启动 LogReader、LogListener、CommandListener 三个线程,监听并处理来自三个 socket 的消息。在收到消息后,会通过 LogBuffer 类保存日志到对应的 RAM buffer
LogAudit 模块用于接收 Kernel selinux 信息,即可以在用户空间打印 selinux 日志信息
LogKlog 用于接收 kernel 日志信息,通过设置 property ,可以通过 logcat 命令读取内核日志
LogStatistics 是日志统计模块,默认开启统计数据较少,仅能以 pid/uid 纬度统计打印日志的数量。如果设置了 logd.statistic = true 。会打印更多纬度的统计信息,包括哪些 pid/uid/tid/TAG 日志量比较大,可用于日志裁剪相关

main 函数中,会打开 /dev/kmsg 来读取内核日志,通过 LogKlog 来进行存储;若是配置了 ro.logd.kernel 属性,则打开 /proc/kmsg 读取内核日志;

logd 作为 Native Service ,系统启动时会读取 init.rc 脚本去启动,它的相关属性被定义在 logd.rc 文件中:

这里主要分为两部分: 启动 logd 服务 启动 logd-reinit 服务 (在Android 10 上添加了 logd-auditctl 服务,目的是为了限制 selinux denia打印日志为5秒一次);先来看一下 启动 logd 服务 的同时做了些什么:

① 创建 logd、logdr、logdw 这三个 socket 为后面的通信做准备
logdw 定义为 dgram 类型的 socket ,类似与 UDP类型的 Socket ,这么做的原因是考虑到性能问题,在多个进程同时写日志的情况下, write 函数写入到 socket buffer 中即可返回,这样不会 block 业务逻辑太长时间。如果是 TCP 类型的 Socket ,客户端需要等到 TCP 收到 ACK 响应才能返回,这样就会过多的消耗性能和资源;

启动 logd-reinit 服务:

这个服务的主要作用是重新初始化 logd 的 LogBuffer,在配置中 oneshot 表示开机只启动一次。在上面的 main.cpp 中的 main 函数内, logd 在启动后,会创建一个线程 reinit_thread_start () ,当 logd-reinit 传入参数 reinit 后,进行功能执行:

① 如果 reinit 启动后,并且 /deg/kmsg 打开成功,把 logd.daemon: renit 写入 kmsg
② 重新初始化各个 log buffer 的大小,以及其他参数的初始化,但不会重新生成 LogBuffer 对象

main.cpp##main

main.cpp#reinit_thread_start()

[ 1 ] 深入理解安卓日志系统(logcat / liblog / logd)
[ 2 ] Android10.0 日志系统分析(二)-logd、logcat架构分析及日志系统初始化

2. android中文是什么意思

android作名词时意思是机器人。作形容词时意思是有人类特征的。它还是一种操作系统名称,安卓系统(Google开发的基于Linux平台的手机操作系统)。英式读法是['ændrɔɪd];美式读法是['ændrɔɪd]。

相关例句:

1、用作名词 (n.)

The cost of an android will be about the same as a car.

一个机器人的成本可能与一辆小轿车差不多。

2、用作形容词 (adj.)

This novel cross-fertilization is what Ishiguro describes as android science.

这种全新的异体交配法,正是石黑浩口中的仿制人科学。

3、用作名词 (n.)

The partnership is the first outcome of the android platform.

这项合作伙伴关系的第一个成果就是android平台。

(2)androidDr扩展阅读:

android系统简介:

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。

Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,

头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。

颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象征。有时候,它们还会使用纯文字的Logo。

3. 安卓英文怎么读

android
英 [ˈændrɔɪd] 美 [ˈænˌdrɔɪd]
n.
机器人;基于Linux平台的开源手机操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人称为安卓
复数: androids
双语例句
1

These are optimized for use on mobile devices, with particular emphasis on theiPhone and Android platforms.
这些API已对使用移动设备进行了优化,尤其是对iPhone和Android平台。

热点内容
怎么看电脑真实配置 发布:2024-09-21 11:12:54 浏览:328
腾讯云轻量服务器需要搭建环境 发布:2024-09-21 11:12:53 浏览:673
json格式php 发布:2024-09-21 11:08:02 浏览:245
sql文件用什么打开文件 发布:2024-09-21 10:58:22 浏览:819
直接看脚本 发布:2024-09-21 10:55:30 浏览:511
c语言语句有 发布:2024-09-21 10:47:53 浏览:561
oracle存储过程定义变量 发布:2024-09-21 10:30:42 浏览:382
预编译的作用 发布:2024-09-21 10:24:48 浏览:590
网页的访问量 发布:2024-09-21 10:14:46 浏览:146
压缩机阻 发布:2024-09-21 10:12:00 浏览:649