近来在调试SQLite数据的时候,发现SQLiteDebug.java类中有调试SQL语句以及性能的调试开关
把使用过程分享一下,在命令行输入如下命令
adb shell setprop log.tag.SQLiteStatements VERBOSE
adb shell setprop log.tag.SQLiteTime VERBOSE
adb shell stop
adb shell start //这一条和上一条一定要执行,否则设置不会生效,为不生效又是百度又是google浪费了不少时间
通过adb logcat 抓取log,里面就会有相应TAG的log
下面贴出部分log,有这些log就可以找到执行了那些SQL语句以及所消耗的时候,对调试相关bug以及性能有很大帮助
01-01 08:10:20.740 V/SQLiteStatements( 3371): :memory:: "CREATE TABLE IF NOT EXISTS android_metadata (locale TEXT)"
01-01 08:10:20.741 V/SQLiteStatements( 3371): :memory:: "SELECT locale FROM android_metadata UNION SELECT NULL ORDER BY locale DESC LIMIT 1"
01-01 08:10:20.742 V/SQLiteStatements( 3371): :memory:: "BEGIN"
01-01 08:17:12.098 V/SQLiteTime( 4585): /data/data/com.android.providers.calendar/databases/calendar.db: "CREATE TABLE IF NOT EXISTS android_metadata (locale TEXT)" took 1.000 ms 01-01 08:17:12.118 V/SQLiteTime( 4585): /data/data/com.android.providers.calendar/databases/calendar.db: "SELECT _id FROM Calendars WHERE (account_type=?)" took 3.000 ms 01-01 08:17:12.197 V/SQLiteTime( 4585): /data/data/com.android.providers.calendar/databases/calendar.db: "SELECT key, value FROM CalendarCache WHERE key=?" took 2.000 ms