where is my app? /data appears empty

心已入冬 提交于 2019-12-18 04:21:51

问题


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.


回答1:


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.




回答2:


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) {

    }
}



回答3:


root is not necessary if your application is debuggable (android:debuggable="true") see How can I see the contents of a sqlite db of my app in a real device?



来源:https://stackoverflow.com/questions/4838777/where-is-my-app-data-appears-empty

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!