While Android
puts a powerful built-in database at your disposal, it doesn’t come with the
best set of debugging tools. In fact, unless you have a rooted device, you can’t
even get the SQLite tables off your device
without jumping through some hoops.
Fortunately, the Android emulator
doesn’t have this restriction.

This walk-thru demonstrates how I generally debug SQLite
tables. If you aren’t familiar with SQLite tables on Android, read my
TechRepublic article, “Use SQLite to create a contacts browser in Android.”

1. This tutorial doesn’t cover CRUD operations for SQLite;
however, we do need data to debug in order to demonstrate the technique. I used
the short code snippet below to create a sample database.

package com.authorwjf.sqlitetablemaker;
import android.os.Bundle;import android.widget.Toast;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;

public class MainActivity extends Activity {

private static final String SAMPLE_DB_NAME = "TrekBook";
private static final String SAMPLE_TABLE_NAME = "Info";

public void onCreate(Bundle savedInstanceState) {
SQLiteDatabase sampleDB = this.openOrCreateDatabase(SAMPLE_DB_NAME, MODE_PRIVATE, null);
" (LastName VARCHAR, FirstName VARCHAR," +
" Rank VARCHAR);");
sampleDB.execSQL("INSERT INTO " +
" Values (‘Kirk’,’James, T’,’Captain’);");
Toast.makeText(this, "DB Created!", Toast.LENGTH_LONG).show();


2. The second step is to open an emulator that contains the
table you want to browse. In this instance using Eclipse, I opened a new
emulator and loaded the sqlitetablemaker.apk on it (Figure A).

Figure A


3. Within Eclipse, you need to switch to DDMS mode by going
to Window | Open Perspective | DDMS. If you’ve never used DDMS, you’ll likely
need to go to Window | Open Perspective | Other and then browse for DDMS within
the list (Figures B and C).

Figure B


Figure C


4. Once the DDMS view is active, choose the File Explorer
tab. You’ll find your database in the /data/data/your.app.namespace/databases
directory. There are two virtually indistinguishable icons in the upper right-hand
corner of the tab that represent a pull and a push of a file, respectively. Use
the pull icon (the one on the left) to save a copy of the SQLite database to
your development machine (Figure D).

Figure D


5. Now you have a copy of your database on your workstation,
but you still need some kind of SQLite viewer to take a peek. I use SQLite Database Browser,
because it is free and runs on my Wintel, Mac, and Ubuntu boxes.

6. Open the database and inspect the data (Figure E).

Figure E

While it’s not terribly difficult to get a look at the
SQLite tables you create in your Android apps, it requires quite a few steps. And
remember this only works with the emulator — if you need to debug SQLite
tables on an actual device, you’ll need to create an export function that
copies the database to the SD card, at which point you can follow this
walk-thru to open the tables.

I hope future versions of the Android development tools will
make this process less painful. Until then, you may want to save this article!