我正在制作一个简单的GPA安卓应用。用户可以输入每个学期的成绩和班级名称。然后,我将如何存储这些学期中的每一个,以便始终可以在应用程序中提取它们?我可能还需要存储单独的随机变量。
我简要介绍了共享首选项,内部存储等选项。什么选择最适合我的需求?请解释原因。谢谢!
答案 0 :(得分:1)
这取决于您的需要,有时您在同一个应用中使用所有选项, 例如:存储成绩和类的最佳方法是在android SqlLite数据库中使用数据库。 并且为了存储一些变量值,如用户名和密码,您只需要使用共享首选项....至少这是我在我的应用程序中的策略。
答案 1 :(得分:1)
这是解释......
共享首选项适用于存储应用程序的首选项和其他少量数据。对于一些数据类型,它只是一个非常简单的持久字符串密钥存储:boolean,float,int,long和string。因此,例如,如果我的应用程序有登录,我可能会考虑将会话密钥存储为SharedPreferences中的字符串。
内部存储适用于存储用户无需访问的应用程序数据,因为用户无法轻松访问内部存储。可能适用于缓存,日志和其他东西。任何只有应用程序打算创建读取更新或删除的内容。
外部存储空间。与我刚才所说的完全相反。 Dropbox应用程序可能使用外部存储来存储用户的dropbox文件夹,以便用户可以轻松访问Dropbox应用程序之外的这些文件,例如,使用文件管理器。
每当您需要大量结构化数据和相对严格的架构来管理它时,SQLite数据库都很棒。换句话说,SQLite就像MySQL或PostgreSQL,而不是作为服务器守护进程的数据库,然后从CGI脚本(如php)接收查询,它只是存储在.db文件中,并被访问和查询通过应用程序中的简单库。虽然SQLite无法像专用数据库那样扩展,但对于像Android应用程序这样的小型应用程序来说,它非常快捷方便。如果我正在制作一个聚合和下载配方的应用程序,我会使用一个SQLite数据库,因为这种数据是相对结构化的,数据库可以很好地扩展。数据库很不错,因为将所有数据写入文件,然后以您自己的专有格式将其解析回来并不好玩。然后,用XML或JSON存储数据也不会那么糟糕。
网络连接是指在云上存储数据。通过java.net。*包进行HTTP或FTP文件和内容传输可以实现这一点。
Considering this i suggest you to use Sqlite especially in your case.
祝你好运
答案 2 :(得分:0)
SQLite将是您的最佳选择。
您可以使用所需的列创建格式良好的表。您可以使用 pre-developed 数据库,也可以 create tables on the go 。