How can I read my app's database file from device? - android

I am writing an Android application using SQLite. How to view the .db file that's on the device without rooting it?
I tried Questiod SQLite Manager but "data/data/(my application name)/.db" cannot be opened. The method seems to be used for emulator and rooted devices only. I am using an unrooted device for debugging.
Screen for DDMS:

In your manifest file, add a property 'debuggable=true' in application tag. Then find your database in your given path.

I assume you mean for debugging?
You could copy the database file to a non-private directory (for example into the one returned by Context.getExternalFilesDir(). Afterwards you can use adb pull to copy it to your development machine.

Install this APK into your emulator and read your DB file and also add,update,delete record of your database

Yes , there are 2 methods from which u can view ur db data :
Go To DDMS -> Data -> Data -> Select ur Package ->Databases -> Pull them Out and view with SQlite Broswer
OR
Install Root Apk in ur bluestack and view in device or emulator itself..
From Command Prompt you can try this
Open cmd
Go into 'Platform tools'
Type 'adb shell'
su
Press 'Allow' on device
chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
Open DDMS view in Eclipse and from there open 'FileExplorer' to get your desired file

You can view (visualize) the data in the .db file by using the software called "DB Browser for SQLITE"
get your .db file from the device(smartphone) memory (by accessing the DDMS --> File explore)
download and install sqlitebrowser (http://sqlitebrowser.org/)
after installing, open "DB Browser for SQLITE" and go to "open database" to load your .db file
Choose the "Browse data" tab
Finally, select the table you want to visualize to display the data in the database.

Related

How to view sqlite database using real device

I've been searching this for quite a long time and I found the following steps at https://stackoverflow.com/a/24259250/5256621
1.Connect your device and launch the application in debug mode.
2.Copy the database file from your application folder to your sd card:
execute:
./adb -d shell "run-as com.yourpackge.name cat
/data/data/com.yourpackge.name/databases/filename.sqlite >
/sdcard/filename.sqlite"
Pull the database files to your machine: execute:
./adb pull /sdcard/ execute: ./adb
Install Firefox SQLLite Manager:
https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
5.Open Firefox SQLLite Manager and open your database file from step 3
above.
Where can I find my database file ? The data file shows empty although I have rooted my device. I'm sorry if this is a silly question but I really do not know how to access SQLite using real device.
Some said that database can be accessed once the device is rooted but not works for me. How do I view the SQLite database on an Android device?
you can user Root Explore,before this,you must root your device and user root permission to run the app ,then open and find data folder and open the folder then continue find data folder and open ,you will find the app files in this device,find your packagename and you can find the db,you can use copy the db to sdcard

how to see sqlite db with out android device moniter?

my android device monitor is not working in android studio, is any other way to see existing sq-lite database,and give the possible reason of my android device monitor issue?.
Its nice question for newbie in android.
For seeing SQLite database you have to follow below step.
Step 1: Setup emulator and run it.
If you have to see SQLite database you must Run your application in
Android Emulator.
(Note:- If you run your application in physical device then you are not able to see database).
Step 2: Now Run you Android Device Monitor from Android studio,now find your android emulator there,click on it and you will show File Explorer in this monitor.
Step 3: In the File Explorer there are Data Folder.Go to Data folder,there is another data folder in it. Now Find your Application here.in your application folder there is folder with name database,Which contain SQLite database file.
(Note: File Explorer>data>data>Your Application Package>database)
Step 4: There are option in the top,From there you can "Pull a file from Device(emulator)",Click on it and save it to your computer.
So here is the file by reading it you can See your database. so,now how can we read it?
Step 5: For reading the file download SQLite Browser from here install it and open it in your computer.
Step 6: In this Browser Click on Open Database and open the file which you have pull from Device(emulator).
So here you can see your database structure and also browse data.
Even, You can update data and Push the file with the Android Device monitor for manually update data.
You can extract your device database in linux (ubuntu) system from the following commands
Note: Make sure your device is connected to adb and showing in adb devices list
adb backup -f ~/data.ab -noapk <your app package name ex app.package.name>
dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -
The first command will create a data.ab file in home directory and second command should be run from the home directory as data.ab file is in that directory after running second command there will be a app folder created in your home directory, you can see your app package name directory under it and file your db file and shared preference xml.
You can use navicate premium to create explore and query to sqlite db.
In go to file explore of your emulator go to data > data > your app and database folder extract it to your computer and open in navicate.

How to retrieve files created by an android app?

My android app creates an sqlite database and I need to get it off the device so I can look at the data with a database viewer.
Was hoping I could just issue >adb shell and then go find it somewhere on the file system. Looks like there are permission issues with lots of commands. Even just running >find . -name *.sqlite gives permission denied.
Can anyone advise on how to do this?
It seems your device is not rooted, anyway..
Copy your .db file form /data/data/<package_name>/databases/ to ExternalStorage using code.. Then you can get it via adb pull command or DDMS -> FIle Explorer.
Currently there is no way to browse database on the device (without getting the root permission as you want) .
You can browse your database from emulator using adb shell.

Getting SQLite database from emulator (data/data/package_name/databases) to local drive

I would like to edit my app's DB using the SQLite Browser. I'm able to edit the DB using the adb shell (sqlite3), but I would rather edit it using a GUI rather than a command line. How do I get the DB from the emulator to a local drive? As of now I've tried:
1) using the adb pull command to pull the database from the emulator to my local drive.
adb pull data/data/com.myapps.quiz c:/
This command executes correctly, but I'm not able to find the file or directory in the local drive I specified.
2) Used the DDMS Perspective to locate the file in the File Explorer, but every time I get into the data/data directory, I only see directories called "con". I even tried pulling the entire data/data directory, but I can't find the name of the package (com.myapps.quiz) where the database is stored.
What am I missing here? Any help you could provide would be most helpful!
Your database is secure to your package so you cannot get this directly.
I have a work around for this.
What I do is go to shell and run-as my package and copy the database to sdcard using cat
adb shell
run-as your.package.name
cd databases
cat your_database.db > /mnt/sdcard/your_database.db
And I pull the file from the sdcard using File Explorer
Are you sure you're connecting to the emulator instance in DDMS, and not an actual device? I have always been able to push and pull sqlite databases from the
data/data/com.my.package/databases/mydb.sqlite
directory, and I can't think of any setting that would override that. An alternative would be to root an actual phone and then you will be able to move anything from the phone to your computer.

Data Directory in File Explorer of DDMS View

Hi all using Samsung Galaxy GT-1900 ,In eclipse I am trying to access data folder in DDMS file explorer view of my application,its data folder visible but unable to open,facing same problem as posted here Can't access data folder in the File Explorer of DDMS using a Nexus One! I click plus on data folder if disappear for 2-6.I try to explore data folder with normal and also with debug mode.still unable to access this folder.when I run my application on emulator its working fine in emulator I can visit data folder in DDMS file explorer view.Any suited answer how I can access this folder to export/explore my database and txt files.Below I am attaching my DDMS view ..
On rooted device you can do this:
Open cmd
Type 'adb shell'
su
Press 'Allow' on device
chmod 777 /data /data/data /data/data/com.application.pacakage
Go to the DDMS view in Eclipse
After this you should be able to browse the files on the device.
Afaik, you need to root your phone to get access to /data, it's forbidden due to rights management, by default.

Categories

Resources