Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

where is my app? /data appears empty

I almost feel embarrased asking this but I really can't find my app on my phone. I read that the app should be installed in /data/data/ folder but my /data folder appears to be empty when viewed in Astro. My app is most definitely installed on the phone, should I transfer it to the SD for it to become visible? I have an unrooted HTC Desire HD on Orange UK. I just need to have a peek at the SQLite database managed by my App.

like image 559
TomaszRykala Avatar asked Dec 03 '22 03:12

TomaszRykala


2 Answers

I almost feel embarrased asking this but I really can't find my app on my phone.

Look for it in Settings > Applications to see if it is installed. If it is, any activities you declared in the LAUNCHER category (action MAIN) will appear in the home screen launcher.

I read that the app should be installed in /data/data/ folder but my /data folder appears to be empty when viewed in Astro.

You do not have permissions to view that directory on an un-rooted phone.

My app is most definitely installed on the phone, should I transfer it to the SD for it to become visible?

Your app will not be any more "visible".

I just need to have a peek at the SQLite database managed by my App.

Add a backup/restore feature to your app that copies your SQLite file to/from external storage. Be sure all your SQLiteDatabase objects are closed first, though.

like image 145
CommonsWare Avatar answered Dec 17 '22 02:12

CommonsWare


Simple answer would be,

  • If you need to browse the "Data" directory in actual phone, it should be a rooted device.
  • You can simply browse "Data" directory in simulators, because, Simulator act as a rooted device and it has all the super user access.

Happy coding!!!

Update

There is another way by copying database to your SD card from below function,

public void exportDatabse(String databaseName) {
    try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();

        if (sd.canWrite()) {
            String currentDBPath = "//data//"+getPackageName()+"//databases//"+databaseName+"";
            String backupDBPath = "backupname.db";
            File currentDB = new File(data, currentDBPath);
            File backupDB = new File(sd, backupDBPath);

            if (currentDB.exists()) {
                FileChannel src = new FileInputStream(currentDB).getChannel();
                FileChannel dst = new FileOutputStream(backupDB).getChannel();
                dst.transferFrom(src, 0, src.size());
                src.close();
                dst.close();
            }
        }
    } catch (Exception e) {

    }
}
like image 20
Prasad De Zoysa Avatar answered Dec 17 '22 02:12

Prasad De Zoysa