當前位置:首頁 » 安卓系統 » 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-11-27 03:27:42 瀏覽:380
php函數作用域 發布:2024-11-27 03:26:11 瀏覽:175
pythonasteval 發布:2024-11-27 03:21:14 瀏覽:562
電腦伺服器機什麼意思 發布:2024-11-27 03:18:59 瀏覽:836
本地存儲是否允許 發布:2024-11-27 03:08:02 瀏覽:410
adc的電腦密碼是多少 發布:2024-11-27 03:01:54 瀏覽:964
會員管理系統php 發布:2024-11-27 02:15:41 瀏覽:235
企業php網站系統 發布:2024-11-27 02:14:14 瀏覽:254
佛滔算命源碼 發布:2024-11-27 02:11:01 瀏覽:765
重新搭建伺服器得多久 發布:2024-11-27 02:09:55 瀏覽:797