使用哪种安卓数据存储技术?
Android文档具有以下选项,但没有解释每种选项最适合的情况。每种方法的优缺点是什么?例如,在什么条件下SQL会比共享首选项更好?
- 共享首选项
- 内部存储
- 外部存储
- SQLite Databases
- 网络连接
Android文档具有以下选项,但没有解释每种选项最适合的情况。每种方法的优缺点是什么?例如,在什么条件下SQL会比共享首选项更好?
考虑从应用程序1添加到设备的结构化数据对于同一设备中存在的另一个应用程序2无法访问,但是添加到设备的配置文件照片可供在同一设备中运行application1
application2
将Android设备视为城市,其中的应用程序是城市中的房子,房屋中的人(应用程序)是数据。现在内容提供商就像城市中的经纪人(android设备)。该经纪人为城市中的人们提供访问,以查找不同的房屋,在Android设备中引用内容提供商,为不同应用程序提供对设备中数据的访问。
考虑我有一个应用程序说一个面部书应用程序,我用它来登录我的帐户。
现在是我第一次输入我的用户名和密码来访问我的帐户。假设我在一小时后再次注销应用程序,我使用相同的Face Book应用程序再次登录到我的应用程序。
我必须再次输入用户名和密码才能登录我的帐户,并且我为我的应用程序设置了一个主题,并设置了我的应用程序在当前手机中的外观
这是不必要的,因为考虑到我正在使用手机登录到应用程序。所以我总是使用我的手机一次又一次地登录,因此一次又一次地输入我的凭据是更多的工作表明它不是一个用户友好的应用程序
共享首选项在这种情况下非常方便,我可以使用其功能在xml文件中共享我的数据,该文件实际存在于我手机中安装的Android应用程序中,即使应用程序关闭也不会被破坏。在这里,我们可以保存当前应用程序的用户首选项数据。
因此,下次我在手机中打开应用程序时,我可以看到数据自动填写在必要的字段中,并且设置是
在Android中,我们可以使用设备存储空间来存储应用程序的数据。数据类型涉及文本文件,图像文件,视频文件,音频文件等内容。
如图所示,我们可以看到有两个地方可以做到这一点。一种方法是将原始文件写入主/辅助存储。另一种方法是将缓存文件写入主/辅助存储。
存储原始数据和缓存数据之间也存在差异,一旦用户存储在内存中的原始数据必须由用户显式删除,否则它将一直存在到那时。存储在内存中的缓存数据不是永久数据,因为如果系统认为内存不足,系统会自动将其删除。
内部存储:
假设应用程序中的用户已将数据存储在内部存储中,则只有该应用程序的用户有权访问移动设备上的该数据,并且当用户卸载应用程序时,将自动删除该数据。说到哪个内部存储器是私有的。
应用程序内部存储目录使用名称包名称存储在Android文件系统中的特殊位置。
其他应用或当前应用的用户无权访问由特定用户和特定应用设置的文件,除非该文件已明确提供给用户以进行可读/写访问。
Sqlite用于在运行Android应用程序的移动设备中本地存储更多结构化数据。结构化数据涉及如图所示的数据,就像学生的信息以行和列的形式出现一样。
Sqlite提供与Mysql和oracle类似的功能,但功能特性有限。其中一些操作涉及对表执行查询操作。虽然有些功能像创建视图,但有些功能像存储过程一样不可用。
Sqlite在存储复杂和大型数据方面非常有帮助,这些数据可以下载一次,并且可以一次又一次地使用,直到应用程序运行。当应用程序关闭时,sqlite 数据库也会被销毁。
外部存储。非常适合我刚才说的相反。Dropbox 应用可能使用外部存储来存储用户的 Dropbox 文件夹,以便用户在 Dropbox 应用之外轻松访问这些文件,例如,使用文件管理器。
SQLite数据库非常适合当您要使用大量结构化数据和相对严格的架构来管理它时。通俗地说,SQLite就像MySQL或PostgreSQL,只是数据库充当服务器守护进程,然后从CGI脚本(如php)中获取查询,它只是存储在.db文件中,并通过应用程序中的简单库进行访问和查询。虽然SQLite的规模不能像专用数据库那样大,但对于较小的应用程序(如Android应用程序)来说,它非常快速和方便。如果我要制作一个用于聚合和下载食谱的应用程序,我会使用SQLite数据库,因为这种数据是相对结构化的,数据库可以很好地扩展。数据库很好,因为将所有数据写入文件,然后以自己的专有格式解析回来,这没什么好玩的。再说一次,在XML或JSON中存储数据不会那么糟糕。
网络连接是指在云上存储数据。通过 java.net.* 包传输 HTTP 或 FTP 文件和内容可实现此目的。