android的日誌系統有典型的android層次結構。本文指出路徑,分析層次但不分析**,這裡還介紹logcat的使用和log_bg服務。想看**具體分析看部落格android應用程式框架層和系統執行庫層日誌系統源**分析。
wzjdy.cc
1.先從驅動開始 linux-3.10/drivers/staging/android/logger.c
linux-3.10/drivers/staging/android/logger.h
logger_init建立4個日誌裝置檔案/dev/main、/dev/events、/dev/radio、/dev/system。
分析**的話跟蹤結構體static const struct file_operations logger_fops例項化的函式進行分析。
2.c/c++本地庫和android實時執行庫層 在android/system/core/liblog目錄下,分析android.mk可知主要是logd_write.c和fake_log_device.c其它根據with_mingw配置。
3.jni frameworks/base/core/jni/android_util_log.cpp
然後slog.e(tag,"***")使用錯誤日誌
現在分層
**路徑android/system/core/logcat/logcat.cpp,輸入logcat --h檢視幫助。
這裡我們修改logcat.cpp設定日誌系統預設每個日誌檔案的大小,日誌檔案的個數
static int g_logrotatesizekbytes = 4096; // 0 means "no log rotation"
static int g_maxrotatedlogs = 10; // 0 means "unbounded"
每個日誌檔案最大4m,最多10個。當10個日誌寫滿有最新的日誌時,原日誌名尾號9刪除,其餘尾號+1,最新日誌寫到尾號0的日誌。實現固定大小,迴圈使用。
log_bg.sh工具
android/device/softwinner/common/tools/log_bg.sh
前面幾個迴圈是計數,刪除,重新命名。
系統日誌logcat -v time -f /cache/local/boot_log/aw_$_system_boot.log &
核心日誌cat /proc/kmsg >> /cache/local/boot_log/aw_$_kernel_`date +%y%m%d-%h%m`.log &
android開機就會記錄日誌記錄,輸入ps查詢到
root 1668 1646 1632 948 c0122258 b6f57720 s logcat
在init.rc檔案中查詢發現日誌服務的啟動位置android/device/softwinner/common/init.debug.rc
service log_bg /system/bin/sh /system/bin/log_bg.sh
class core
user root
group root system
oneshot
logger.sh工具
android/device/softwinner/common/tools/logger.sh
實際這個工具根據輸入引數kernel、android、radio、error呼叫logcat
Android系統分享
android系統分享目前無法同時分享文字和 1 建立intent,action為intent.action send intent shareintent new intent intent.action send shareintent.setflags intent.flag activity...
android系統日誌
系統日誌主要包含 log命令詳解 logcat本身是android的shell的乙個命令,你可以通過 adb shell 進入shell後執行logcat命令,也可以通過 adb logcat 直接執行。語法 adb logcat 選項 b 指定要檢視的日誌緩衝區,可以是system,events ...
Android新建系統分割槽
平台 rk3368 系統 android8.1 上為了保留一些檔案在系統公升級和燒錄後不被擦除,因此新建了個不被擦除的分割槽,在此記錄下方法。分割槽表檔案路徑 device rockchip rk3368 parameter.txt,其中mypartition是我建立的分割槽,格式為 大小 位址 分...