问这个问题我几乎感到尴尬,但我真的无法在手机上找到我的应用程序。我读到该应用程序应该安装在 /data/data/ 文件夹中,但在 Astro 中查看时,我的 /data 文件夹似乎是空的。我的应用程序肯定安装在手机上,我应该将其传输到 SD 以使其可见吗?我在 Orange UK 上有一个无根的 HTC Desire HD。我只需要看看我的应用程序管理的 SQLite 数据库。
问问题
24342 次
3 回答
11
问这个问题我几乎感到尴尬,但我真的无法在手机上找到我的应用程序。
在“设置”>“应用程序”中查找它以查看它是否已安装。如果是,您在LAUNCHER
类别 (action MAIN
) 中声明的任何活动都将出现在主屏幕启动器中。
我读到该应用程序应该安装在 /data/data/ 文件夹中,但在 Astro 中查看时,我的 /data 文件夹似乎是空的。
您无权在无根电话上查看该目录。
我的应用程序肯定安装在手机上,我应该将其传输到 SD 以使其可见吗?
您的应用将不再“可见”。
我只需要看看我的应用程序管理的 SQLite 数据库。
向您的应用程序添加备份/恢复功能,将您的 SQLite 文件复制到/从外部存储。不过,请确保SQLiteDatabase
首先关闭所有对象。
于 2011-01-29T19:03:33.953 回答
7
简单的答案是,
- 如果您需要在实际手机中浏览“数据”目录,它应该是一个root设备。
- 您可以简单地浏览模拟器中的“数据”目录,因为模拟器充当根设备,并且具有所有超级用户访问权限。
快乐编码!!!
更新
还有另一种方法是从下面的功能将数据库复制到您的 SD 卡,
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) {
}
}
于 2013-02-20T07:06:26.977 回答
0
如果您的应用程序是可调试的 ( ),则不需要 root,请参阅如何在真实设备中查看我的应用程序的 sqlite db 的内容?android:debuggable="true"
于 2013-01-29T16:00:29.587 回答