gpt4 book ai didi

android - 在分布式应用程序 [Android] 的 .apk 中嵌入数据库

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:31:34 25 4
gpt4 key购买 nike

我的问题是我认为很简单,但我认为答案不会...我的应用程序中有很多内容要使其正常运行,我正在考虑将所有内容放入数据库中,然后将其分发到嵌入式数据库中,并将应用程序放在市场。唯一的麻烦是我不知道该怎么做。我知道我可以使用我的数据库的内容从 Eclipse DDMS 中提取一个文件 .db,我想我需要把它放在我的应用程序的 Assets 文件夹中,但是如何让应用程序使用它来重新生成应用程序数据库?如果您有任何指向某些代码或帮助的链接,那就太好了。谢谢

最佳答案

好吧,为了实现您的要求,您可以将 .db 文件放在您的 assets/目录中,并在您第一次启动您的应用程序时将其复制到位......

final String DB_DESTINATION = "/data/data/YOUR_PACKAGE_NAME/databases/MyDatabaseFile.db";

// Check if the database exists before copying
boolean initialiseDatabase = (new File(DB_DESTINATION)).exists();
if (initialiseDatabase == false) {

// Open the .db file in your assets directory
InputStream is = getContext().getAssets().open("MyDatabaseFile.db");

// Copy the database into the destination
OutputStream os = new FileOutputStream(DB_DESTINATION);
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0){
os.write(buffer, 0, length);
}
os.flush();

os.close();
is.close();
}

其中“initialiseDatabase”是一些标志,指示应用程序是否已首次启动。

不过,如果您正在考虑存储大量数据,正如您所提到的:我强烈建议您避免用它膨胀 APK 文件,并在下载后使用 Internet 连接(从托管服务器)下载数据库记录应用程序已启动。通过这种方式,您可以显示一个进度条,向用户说明他们等待很长时间才能开始使用该应用程序的原因。使 APK 特别大通常会阻止人们首先安装它。

关于android - 在分布式应用程序 [Android] 的 .apk 中嵌入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com