gpt4 book ai didi

sqlite - 每次更新应用程序时,我都需要创建一个新的SQLite数据库吗?

转载 作者:IT王子 更新时间:2023-10-29 06:17:52 33 4
gpt4 key购买 nike

我有一个要开发的Xamarin Forms应用程序。它将有一个SQLite数据库,我希望可以在iOS和Android上使用它。该数据库将使用来自云中SQL Server数据库的初始种子数据填充数据。我认为这将是大约500行数据,每行大约1Kb。

我不明白的是何时以及如何填充它。我应该尝试将数据放入CSV文件中,并在安装应用程序时或首次启动时将其填充到数据库中吗?用大量插入语句填充除代码内部行以外的种子数据的正常方法是什么?

任何有关此操作通常如何进行的帮助或建议(我认为大多数人都以相同的方式进行操作)将不胜感激。

谢谢

最佳答案

让我们分解问题。

Is the initial data that you wish to use in your app going to change over time?



如果您包含任何预先填充的数据(基于SQLite,Realm或CSV的文件,...),并且包含的​​数据变得 失效,并且您必须定期对其进行更新, 发布应用程序更新( .apk / .ipa),以便您的 新用户安装会接收更新的数据(有关此内容的更多信息,请参见下文)。

注意:假定您的当前用户通过实际运行您的应用程序获取更新的数据,并且它正在例行处理本地数据更新(后台服务,推送通知,数据轮询等)。

Is this a Line of Business (LoB) application published via Ad-Hoc, private Store, and/or iOS Enterprise publishing?



如果您控制用户群,则不必强制安装更新,这样您的用户才能获得新的/更新的预先填充的数据可能是可以接受的方法,但是如果他们一直强制更新应用程序,则不是很好的用户体验。 。但是它可以工作...

Is this application going to be distributed via the public Apple and Google App Stores?



在这里,您需要非常小心应用程序中包含哪些预填充数据。

如果数据陈旧,并且您需要将更新的应用程序版本推送到商店以进行新安装, 请注意,可能需要几天(甚至几周,甚至一个月以上)才能将该新应用程序放入商店。

Play商店发布应用更新的时间通常少于24小时,尽管Apple Store可以相同,但不要打赌。

我们通常会看到48-72小时的延迟,并且会被随机拒绝,因此将更新应用程序放入Apple Store可能需要一周或更长时间。我们曾拒绝过将应用程序更新推迟一个月以上的拒绝,并且已进入申诉流程,甚至删除了已有功能以重新发布

注意:苹果商店的每次应用更新都会重置您的用户评论... :-(

底线:您想在修正错误和/或添加功能时希望发布到商店, 而不是来更新存储在应用程序 bundle 包中的某些“静态”数据...

What does this data cost your end-user and you?



作为应用程序开发人员,给您带来的负面费用是不好的评论和卸载。查看此“数据”如何影响最终用户对您的应用程序的访问以及他们的反应。较长的下载时间,通常可以接受。较长的初始应用启动时间,接受度较低等...

您的应用将在哪些市场使用?全局许多市场的网络速度和数据传输成本缓慢且成本高昂...

What really is the true size of the data?



我在一秒钟内“预填充”了一个具有数千行的Realm数据实例,其中包含5MB JSON数据。 SQLite需要更长的时间,但还算不错。数据本身存储在zip中,并作为静态文件(基于https的获取)进行访问,并且以80%的压缩率进行访问,使用LTE蜂窝数据在1秒内从服务器(AWS S3)提取了1MB的压缩数据加快速度并将其解压缩为流,同时即时反序列化JSON以更新Realm实例又增加了第二个...

因此,对用户的影响很小,因此我会通过首次欢迎屏幕和一些希望用户阅读的文本来“隐藏”此初始预填充更新,然后再进入第一个“真实”应用屏幕...

注意: 确实假设是用户首次打开应用程序时将具有网络数据访问权限。在世界上许多市场上,这是不正确的,因此请将其纳入您的应用程序设计中。

我还设计了该应用程序,因此可以在启动过程中(无论是否启动)在后台线程上更新其数据,因此用户不必站在那里看着旋转的繁忙指示器,它们至少可以与自己拥有的数据进行交互。

So should you include any pre-populated data in your app bundle?



当然,当绝对需要这些数据来使用户尽快启动并运行时,可以增强用户体验。游戏就是一个很好的例子,它通过 .obb ...将各种级别,媒体文件等 bundle 成100兆甚至千兆字节,并将其 bundle 到应用程序中,因此用户体验的时间不会超过10分钟。第一次打开应用程序时需要等待时间。

现在,这的确意味着,由于数据绑定(bind)在应用程序中,因此安装的初始下载时间会更长,因为用户接受下载/安装时间并将其视为运营商/电话/服务计划问题, 。是第一次打开应用程序真正进入功能屏幕的时候。

So what do?



我个人会逐案研究这个问题。我查看这些数据,如果它不会改变并且只会被添加到并且可能会随着时间的流逝而被修剪,请将其作为预填充的SQLite或Realm存储库,或者...为什么导致用户等待网络请求,数据库更新以及其他网络数据使用量和相关费用。如果数据过时,请不要将其 bundle 在您的应用中。

As for the mechanics of installing pre-populated data:



看到我对这个关于“ Bundle prebuilt Realm files”的问题的回答

关于sqlite - 每次更新应用程序时,我都需要创建一个新的SQLite数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900865/

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