I found out during the debug that my db is in:
/data/data/package-name/databases/...
how can i access this db from sqlite.exe (or with another tool) to run query / check what's in my tables to make sure that all fields are correct?
thanks very much! udi
You can use the sqlite3 util from a shell to an emulator.
Instructions here:
http://developer.android.com/guide/developing/tools/sqlite3.html
SQLite Database Browser is a freeware, public domain, open source visual tool used to create, design and edit database files compatible with SQLite. You can find it here.
As Ran suggested you can use the steps in the mentioned link , you need to use command prompt for it.
If you are using Eclipse IDE try opening DDMS and go to /data/data/package-name/databases/ there you can see your database , select the DB and Pull it on to your computer.
open the DB file with SQLLite3 database browser. You can alter your tables and push it back to the device using the IDE.
If the database is in the emulator, you can also do this from your PC command line: 'adb shell', then cd to the database location (/data/data/package_name/databases/) and run 'sqlite3 database.db'. I sometimes use this method for a quick table check, rather than copying the database from the emulator back to my PC.
Related
I am using android studio to develop my first android app.
I am plugging in my phone, and testing my app on there to test changes as I go.
I am using a sqlite database. How do I view this database, the tables, and the contents (rows) of those tables?
Upon Google searching I found that this can be done when you root your phone. But surely you dont have to root your phone to view your databases when your developing an app?
Update:
People are using terminology assuming knowledge. If you want me to copy a database, explain how, if you want me to use adb, explain what it is. Otherwise it means not much to me. Thanks
Pull the sqlite database named as XYZ.db from your simulator or device using adb shell command or GUI interface provided by the AndroidStudio. Then Open it using The Sqlite Browser. It's a killer app for sqlite browsing.
As android is shipped with the sqlite3, you could use command line to view the data base saved inside the device / emulator. Command reference is Listed Sqlite3 android command
If you feel lazy enough to discover how to pull files from emulator / device using adb pull, following answer may help you.
how to pull
At least in my case I needed to root my device. After that I installed SQLiteEditor. With this app you can modify and view your database. Or if you don't want to install a new app you can use a root explorer and enter directly into your installed app in the DB. Is inside /data/data/{yourapp}.
Copy your database to your system
Using copy or paste Or
Using adb pull command
Then Googled for sqlitestudio-2.1.4, download and run , browse your database ,,then you can see your database rows, column, value etc.
It there a more GUI oriented way (like SQL Server Management Studio or phpMyAdmin) of accessing sqlite database (view/change table structure, running test queries) in android emulator?
P.S. I know only one way to get there. This is through adb -> emulator shell -> sqlite
So far I found only partial solution.
With the help of file explorer in Android Monitor I export db file to host computer and then open database with SqliteBrowser.
Untested, but I just discovered sqlitestudio.pl (I'm unaffiliated with this product). They link to a video that shows this in action: https://www.youtube.com/watch?v=eFKLGsfpwNc.
I have a app that has a database... So through DDMS i exported its database as .db so i want to know how do I open it to see its tables/values ? Is there a specific program that opens it ?
You can use any SQLite software, for example, SQLite Database Browser or SQLiteSpy. If you use FireFox, you can use SQLite Manager.
Also, if you have SSH-access to your rooted android device, you can use sqlite3 program from console and perform any SQL queries you want. By such way you do not need to copy database from device, and can debug what you need in real time.
I created a app and added some tables, columns and some info in it and i want to check it, how do i do it?
Switch to DDMS perpective(Window > Open Perpective > DDMS).
Find out your database's db file in file explorer. Select it.
Export it by clicking on the button in the top right corner of the UI.(ie; Pull the file from from the device)
Use SQLiteman to view the data.
Hope it helps.
If you are running your app on the phone, you cant access your internal storage unless it is rooted. If that is your case simply run the app on a virtual device, then go to DDMS perspective, from there data/data/yourapplication/database/urdb.db then pull the db on the your computer and explore it with the tools stated above.
you can query the database from your android code to do this.
check the link http://codinglookseasy.blogspot.in/2012/08/sqlite-database.html where you can find creating table , inserting data into tables and retrieving it . Or use SQLite Database Browser http://sqlitebrowser.sourceforge.net/ to check the values without using the code
use Sqlite Database Browser tool to see the your Sqlite database.
Go to the DDMS and export your application database and open this database in Sqlite Database Browser
This post on how to access sqlite database on Android, will help you out. There is one mozilla plugin which can also help you to see the database.
I believe that Motodev Studio allows for database browsing.
http://developer.motorola.com/tools/motodevstudio/?utm_campaign=mhp01092012&utm_source=mhp&utm_medium=mws
Or you could just export the database to your desktop, for example, and then browse it with the Firefox SQLite plugin.
Is there a way for an Android user to browse the SQLite databases on his/her phone and view the data in the databases?
I use the SoftTrace beta program a lot. It's great but has no way that I can find to download the data it tracks to a PC.
The database for a specific app lives in /data/data/[packagename]/databases
The packagename is the package you define in your manifest, for instance /data/data/org.vimtips.supacount/databases/counts.db.
You can view it with adb shell and type sqlite3 /data/data/org.vimtips.supacount/databases/counts.db
Or you can pull it from the device to look at it with a third party utility, with a command like adb pull /data/data/org.vimtips.supacount/databases/counts.db ..
This assumes you have permission to view the database, which you might not have if you didn't write the app yourself... but in that case, is it actually a programming question?
If you are using Eclipse, you can use a plugin called 'Questoid SQLite Browser' to browse the SQL Lite Database on your Android emulator:
Install the plugin
Restart eclipse
Start your emulator
Switch to DDMS
Open database with plugin (as #synic mentioned previously, the DB is located here e.g. /data/data/my_project/databases)
Here is a more detailed tutorial: http://www.tylerfrankenstein.com/browse-android-emulator-sqlite-database-eclipse
Here is the free method that worked for me on a phone that is not rooted. Credit goes to this SO answer.
Use adb backup -f backup.ab -noapk app.package.name
On Windows download the Android Backup Extractor jar found on SourceForge here, then run java -jar abe.jar unpack backup.ab extractedbackup.tar. On Linux you can follow the dd instructions from the answer I gave credit to in the beginning.
Download SQLite Database Browser from SourceForge here, then open the db file contained within extractedbackup.tar.
Personally, to make this process easier, I first added adb to my environment PATH. Then I made a backup folder where I store all of the files mentioned above. This keeps me from having to cd (change directory) all over the place.
The Questoid plugin appears to cost $9 and requires registering. Another alternative on Windows is to download the open-source public-domain SQLLite Browser (link below) and then pull the database from the phone. In Eclipse you can do this from the File Browser, going to the /data/data/[packagename]/databases directory on the phone or emulator, and clicking "Pull a File From The Device" in the top right. Save the database locally, then open with the SQLite Browser.
http://sourceforge.net/projects/sqlitedbrowser/
Actually the most available (yet still hacky) way of getting "live" results from a database while developing on emulator that I found is this:
Create a script to pull the database from emulator, something like this
#!/bin/bash
ANDROID_HOME=/path/to/sdk
ADB=$ANDROID_HOME/platform-tools/adb
REMOTE_DB_PATH=/data/data/com.yourpackage.name/databases/your_db
LOCAL_DB_PATH=.
while true; do
echo copying DB...
`$ADB pull $REMOTE_DB_PATH $LOCAL_DB_PATH`
sleep 3
done
Run it.
Install SQLite Manager plugin for Firefox
Open your local copy of the database (which is constantly overridden by the running script from step 1)
Enter your SQL:
Select File->Reconnect
Click Run SQL
The key trick is that reconnecting does not reset SQL entered on step 4 (as it does, for example, in SQLite Browser), so you can repeat steps 5,6 to see "live" results from your android database.
Note that this only works for emulator, it won't work for a real device (even a rooted one).
You can view you database from your app using this library . https://github.com/sanathp/DatabaseManager_For_Android
With this library you can manage your app SQLite database from you app itself.
you can view the tables in your app database , update ,delete, insert rows to your tables
Its a single java activity file ,just add the java file to your source folder.When the development is done remove the java file from your src folder thats it .
It helped me a lot .Hope it helps you too .
You can view the 1 minute demo here : http://youtu.be/P5vpaGoBlBY
If you were lucky enough to get IntelliJ Ultimate then you can plug the device in, open 'Database' tab on the right, click +, select SQLite. The rest is trivial.
One thing to keep in mind with it is that you have to keep clicking "Synchronize" button on the database (or on selected table) to see the changes made externally, which is very annoying.
See this answer. You can use Stetho library from Facebook and then just browser you database from Chrome :)