Copy your Akavache database from your Android phone

Akavache is an awesome library to use when it comes to caching. It’s fast, cross platform and it abstracts the complexity of working correctly and fast with sqlite.

Sometimes you need to verify the exact data that is stored. You can write some code in your app to read the data and show it on your screen, but on Android there is a faster way. You can copy the database to your computer.

Search the database location

Open an Android SDK prompt (in Xamarin Studio Tools > Open Android SDK Command Prompt…). Open a shell to your device and look for the database. Normally you can find the database “blobs.db” in the folder “cache”.

adb shell
run-as your.package.name 
# ex: com.devprotocol.xam.mobiledemo
cd cache
ls

If you have 3 blobs files (blobs.db, blobs.db-shm and blobs.db-wal) you’ll need to copy them all to get all the data.

Now that we know where we can find the database, we can exit the shell

If you are still in the shell, exit the shell

shell@bullhead:/data/data/your.package.name $ exit
shell@bullhead:/ $ exit

Copy your Akavache database

Now in the Android command prompt copy the file to the sdcard of the device

adb -d shell "run-as your.package.name cp cache/blobs.db /sdcard"

Copy the file to your computer. The following command will copy the blobs.db file from the sdcard of your Android device to the temp folder in your home directory if you’re working with a mac (if you’re working with a PC change the path accordingly)

adb pull /sdcard/blobs.db ~/temp

Explore your database

You can now start exploring the database with a the Akavache explorer or another sqlite tool.


info: