在查看android源代码过程中, 只是看代码, 往往没有办法验证对代码的估测是否准确, 这时我们经常通过插入自己的log的方式来测试 某个函数是否调用到, 某个参数在运行过程中的值是多少. 下面jwisp把android各层中加入log语句的方法整理如下.
1. java代码
在android源码中, 只要是java代码基本上都在framework中 , 所有的java代码中, 加入logo的方式也就三步:
(a) 导入log包
import android.util.Log;
(b) 定义log标签
很多java类的第一句代码已经定义了当前类的TAG,比如DeviceStorageMonitorService.java类中的第一句
private static final String TAG = "DeviceStorageMonitorService";
当然我们也可以定义自己的标签, 以便在从上到下中, 只打印我们自己关注的log
private static final String MYTAG = "MytagTest";
(c) 添加log语句, Log的输出有 : v, i, d, w, e 五种级别
比如, 我们需要在电池管理BatteryService.java中打印出每次电量变化后的的log, 怎么实现呢
在BatteryService.java(frameworks/base/services/java/com/android/server)中找到update()方法, 在其中添加如下代码:
if (mBatteryLevel != mLastBatteryLevel){ Log.i(MYTAG, "BatteryService.java -> update : mBatteryLevel = " +mBatteryLevel);