当前位置:首页 » 安卓系统 » 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平台。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:1453
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1720
python中的init方法 发布:2025-10-20 08:17:33 浏览:1454
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:1585
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:1426
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1832
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:1005
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:926
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:1562
python股票数据获取 发布:2025-10-20 07:39:44 浏览:1703