2.bugreport 结构分析
  (1)dumpstate
  MEMORY INFO
  获取该 log: 读取文件 /proc/meminfo
  系统内存使用状态
  CPU INFO
  获取该 log: 执行 /system/bin/top -n 1 -d 1 -m 30 -t
  系统 CPU 使用状态
  PROCRANK
  获取该 log: 执行 /system/bin/procrank
  执行 /system/xbin/procrank 后输出的结果 , 查看一些内存使用状态
  VIRTUAL MEMORY STATS
  获取该 log: 读取文件 /proc/vmstat
  虚拟内存分配情况
  vmalloc 申请的内存则位于 vmalloc_start ~ vmalloc_end 之间,与物理地址没有简单的转换关系,虽然在逻辑上它们也是连续的,但是在物理上它们不要求连续。
  VMALLOC INFO
  获取该 log: 读取文件 /proc/vmallocinfo
  虚拟内存分配情况
  SLAB INFO
  获取该 log: 读取文件 /proc/slabinfo
  SLAB 是一种内存分配器 . 这里输出该分配器的一些信息
  ZONEINFO
  获取该 log: 读取文件 /proc/zoneinfo
  zone info
  SYSTEM LOG( 需要着重分析 )
  获取该 log: 执行 /system/bin/logcat -v time -d *:v
  会输出在程序中输出的 Log, 用于分析系统的当前状态
  VM TRACES
  获取该 log: 读取文件 /data/anr/traces.txt
  因为每个程序都是在各自的 VM 中运行的 , 这个 Log 是现实各自 VM 的一些 traces
  EVENT LOG TAGS
  获取该 log: 读取文件 /etc/event-log-tags
  EVENT LOG
  获取该 log: 执行 /system/bin/logcat -b events -v time -d *:v
  输出一些 Event 的 log
  RADIO LOG
  获取该 log: 执行 /system/bin/logcat -b radio -v time -d *:v
  显示一些无线设备的链接状态 , 如 GSM , PHONE,STK(Satellite Tool Kit)…
  NETWORK STATE
  获取该 log: 执行 /system/bin/netcfg ( 得到网络链接状态 )
  获取该 log: 读取文件 /proc/net/route ( 得到路由状态 )
  显示网络链接和路由
  SYSTEM PROPERTIES
  获取该 log: 参考代码实现
  显示一些系统属性 , 如 Version,Services,network…
  KERNEL LOG
  获取该 log: 执行 /system/bin/dmesg
  显示 Android 内核输出的 Log
  KERNEL WAKELOCKS
  获取该 log: 读取文件 /proc/wakelocks
  内核对一些程式和服务唤醒和休眠的一些记录
  KERNEL CPUFREQ
  (Linux kernel CPUfreq subsystem) Clock scaling allows you to change the clock speed of the CPUs on the fly.
  This is a nice method to save battery power, because the lower the clock speed is, the less power the CPU consumes.
  PROCESSES
  获取该 log: 执行 ps -P
  显示当前进程
  PROCESSES AND THREADS
  获取该 log: 执行 ps -t -p -P
  显示当前进程和线程
  LIBRANK
  获取该 log: 执行 /system/xbin/librank
  剔除不必要的 library
  BINDER FAILED TRANSACTION LOG
  获取该 log: 读取文件 /proc/binder/failed_transaction_log
  BINDER TRANSACTION LOG
  获取该 log: 读取文件 /proc/binder/transaction_log
  BINDER TRANSACTIONS
  获取该 log: 读取文件 /proc/binder/transactions
  BINDER STATS
  获取该 log: 读取文件 /proc/binder/stats
  BINDER PROCESS STATE
  获取该 log: 读取文件 /proc/binder/proc/*
  bind 相关的一些状态
  FILESYSTEMS
  获取该 log: 执行 /system/bin/df
  主要文件的一些容量使用状态 (cache,sqlite,dev…)
  PACKAGE SETTINGS
  获取该 log: 读取文件 /data/system/packages.xml
  系统中 package 的一些状态 ( 访问权限 , 路径 …) ,类似 Windows 里面的一些 lnk 文件吧 .
  PACKAGE UID ERRORS
  获取该 log: 读取文件 /data/system/uiderrors.txt
  错误信息
  KERNEL LAST KMSG LOG
  新 kernel message log
  LAST RADIO LOG
  新 radio log
  KERNEL PANIC CONSOLE LOG
  KERNEL PANIC THREADS LOG
  控制台 / 线程的一些错误信息 log
  BACKLIGHTS
  获取该 log: 获取 LCD brightness 读 /sys/class/leds/lcd-backlight/brightness
  获取该 log: 获取 Button brightness 读 /sys/class/leds/button-backlight/brightness
  获取该 log: 获取 Keyboard brightness 读 /sys/class/leds/keyboard-backlight/brightness
  获取该 log: 获取 ALS mode 读 /sys/class/leds/lcd-backlight/als
  获取该 log: 获取 LCD driver registers 读 /sys/class/leds/lcd-backlight/registers
  获取相关亮度的一些信息
  (2)build.prop
  VERSION INFO 输出下列信息
  当前时间
  当前内核版本 : 可以读取文件 (/proc/version) 获得
  显示当前命令 : 可以读取文件夹 (/proc/cmdline) 获得
  显示系统 build 的一些属性 : 可以读取文件 (/system/build.prop) 获得
  输出系统一些属性
  gsm.version.ril-impl
  gsm.version.baseband
  gsm.imei
  gsm.sim.operator.numeric
  gsm.operator.alpha