我制作了一个Android应用程序。我正在使用数据库。我已经在手机上安装了.apk文件,它运行正常。但是,当我在模拟器上时,它没有向我显示我在数据库中输入的任何数据。我需要使用之前填充的数据库表。我的数据库不会在运行时创建。如何在我的手机上获取数据库以查看应用程序与数据库完美匹配?
答案 0 :(得分:1)
您可以在应用程序的首次启动时将数据库文件保存在assets
或res/raw
目录下,将该数据库文件复制到/data/data/com.company.yourapp/databases/
,然后像往常一样打开数据库
在assets
和res/raw
目录下保存文件的区别在于res/raw
下的文件是压缩的,而assets
下的文件则不是。 Android 2.3之前res/raw
下的文件不能超过1 MB。因此,我建议您自己压缩数据库文件并将其保存到assets
,并在代码中使用GZIPInputStream
解压缩文件。
答案 1 :(得分:0)
如果您需要数据库外面的应用程序进行测试,那么我认为您应该将其导出到您的SD卡中。
public static void exportfile(String applicationPackageName,String databaseName,String pathOfFolder) throws FileNotFoundException, IOException
{
InputStream myInput;
myInput = new FileInputStream("/data/data/"+applicationPackageName+"/databases/"+databaseName);
File directory = new File("/sdcard"+pathOfFolder);
if (!directory.exists())
{
directory.mkdirs();
}
OutputStream myOutput = new FileOutputStream(directory.getPath()+"/"+databaseName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0)
{
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
applicationPackageName: - 应用程序包名称
databaseName: - 数据库文件名
pathOfFolder: - 在sdcard中导出文件的文件夹的路径
不要忘记在清单文件中添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
。
下载任何SQLite Manager以打开该文件。
谢谢..希望它可以帮到你。