Android 文档 ( http://developer.android.com/reference/android/util/Log.html ) 说:
除非在开发期间,否则永远不应将详细信息编译到应用程序中。调试日志被编译,但在运行时被剥离。始终保留错误、警告和信息日志
我刚刚做了一个测试。在我的活动中,我写道:
private static String test(String what) {
Log.e("test", "I am called with argument: " + what);
return what;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("test", "log level: " + test("v"));
Log.d("test", "log level: " + test("d"));
Log.i("test", "log level: " + test("i"));
Log.w("test", "log level: " + test("w"));
Log.e("test", "log level: " + test("e"));
}
我将我的项目导出为 apk 文件,然后我在手机上安装了这个 apk。我在手机上运行此应用程序,然后查看日志。在那里,我看到函数测试被调用了五次,并且对 Log.something 函数的所有五次调用都导致其文本被写入日志。
那么 Log.d 调用真的在运行时被剥离了吗?