原文連接:http://www.myexception.cn/android/1904013.htmlhtml
啓動service保存android系統logandroid
做爲android開發工程師,出現了BUG是否苦於沒有log而苦惱萬分呢,如下敝人提供一套自動保存log的方法,供你們借鑑學習:學習
首先,在產品目錄的init.XXX.rc文件中,添加相應的service,spa
# start log service start logd on property:service.logcat.enable=1 start logcat_service on property:service.logcat.enable=0 stop logcat_service # log services service logcat_service /system/bin/logcat -b system -b events -b main -b radio -k -n 10 -v threadtime -r5000 -f /data/Logs/Log.0/logcat.log user root group log system class main disabled service logd /system/bin/sh /system/bin/logd.sh user system group log oneshot
而後,在目標平臺的system/bin下添加腳本文件logd.sh,處理存儲的log日誌,以及設置屬性,開啓logcat_service,日誌
#!/system/bin/sh # # Global folder & cmd params # OUTPUT_DIR=/data LOG=Logs index=2 LOG_DIR[0]=$OUTPUT_DIR/$LOG/Log.0 LOG_DIR[1]=$OUTPUT_DIR/$LOG/Log.1 LOG_DIR[2]=$OUTPUT_DIR/$LOG/Log.2 RM=rm MV="mv" MKDIR=mkdir UMASK=umask # set default permission 0775 $UMASK 002 # Init the three folders i=0 while [ "$i" -le "$index" ] do $MKDIR -p ${LOG_DIR[$i]} i=$(($i+1)) done # Transfer the three folders ((i=$index-1)) $RM -r ${LOG_DIR[$index]}/* while [ "$i" -ge "0" ] do $MV ${LOG_DIR[$i]}/* ${LOG_DIR[$i+1]} i=$(($i-1)) done $RM -r ${LOG_DIR[0]}/* # start logcat service setprop service.logcat.enable 1 mkdir /data/www cp -R /system/var/www/ /data/ ln -s /storage/external/ /data/www/sdcard