Android为数据存储提供了三种方式:文件、数据库和网络。
1.SharedPreferences共享偏好
2.Internal Storage内部存储空间
3.External Storage外部存储空间
4.SQLite Database数据库
5.Internet网络
一、SharedPreferences(偏好设定)多用于保存软件配置参数,是一种采用XML格式进行数据保存的方式,文件存放在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。
通过SharedPreferences可以将NVP(Name/Value Pair,键值对)保存在Android的文件系统中,而且SharedPreferences完全屏蔽对文件系统的操作过程,开发人员仅是通过调用SharedPreferences对NVP进行保存和读取。
SharedPreferences不仅能够保存数据,还能够实现不同应用程序间的数据共享。
SharedPreferences支持三种访问模式:私有(MODE_PRIVATE)、全局读(MODE_WORLD_READABLE)、全局写(MODE_WORLD_WRITEABLE)。
获取SharedPreferences对象的两个方法:
Context.getSharedPreferences(String name,int mode):其中 name 为本组件的配置文件名;mode 为操作模式,默认的模式为0。
Activity.getPreferences(int mode):配置文件仅可以被调用的Activity使用。mode 为操作模式,默认的模式为0。
如果要读取配置文件信息,只需要直接使用SharedPreferences对象的getXXX()方法即可,而如果要写入配置信息,则必须先调用SharedPreferences对象的edit()方法,使其处于可编辑状态,然后再调用putXXX()方法写入配置信息,最后调用 commit()方法提交更改后的配置文件。
二、文件存储
(1) 内部存储
Android系统允许应用程序创建仅能够自身访问的私有文件,文件保存在设备的内部存储器上,在系统下的/data/data/<package name>/files目录中。
Android系统支持标准Java的IO类和方法,并提供了能够简化读写流式文件过程的函数,主要的两个函数:
openFileOutput():为写入数据做准备而打开的应用程序私文件,如果指定的文件不存在,则创建一个新的文件,函数的返回值是FileOutputStream类型;
openFileInput():为读取数据做准备而打开应用程序私文件。
(2) 外部存储(SD卡(Secure Digital Memory Card))
SD卡适用于保存大尺寸的文件或者是一些无需设置访问权限的文件,可以保存录制的大容量的视频文件和音频文件等;SD卡使用的是FAT(File Allocation Table)的文件系统,不支持访问模式和权限控制,但可以通过文件系统的文件访问权限的控制保证文件的私密性。
Android模拟器支持SD卡,但模拟器中没有缺省的SD卡,开发人员须在模拟器中添加SD卡的映像文件。
(3) 资源文件
程序开发人员可以将程序开发阶段已经准备好的原始格式文件和XML文件分别存放在/res/raw和/res/xml目录下,供应用程序在运行时进行访问;原始格式文件可以是任何格式的文件,在应用程序编译和打包时,/res/raw目录下的所有文件都会保留原有格式不变,而/res/xml目录下的XML文件,一般用来保存格式化的数据,在应用程序编译和打包时会将XML文件转换为高效的二进制格式,应用程序运行时会以特殊的方式进行访问。
<!--EndFragment-->
分享到:
相关推荐
- 应用分析:开发者可以分析备份文件以了解应用数据存储的方式,优化应用设计。 - 安全审计:企业或安全研究人员可以检查备份文件,评估潜在的安全风险。 - 自动化脚本:通过结合ADB和`android-backup-extractor`...
在Android开发中,数据存储是不可或缺的一部分,...总之,这篇博文和源码提供了关于Android应用中安全存储和读取密码的方法,通过学习和实践,开发者可以更好地理解和掌握Android数据存储的策略,提高应用的安全性。
文件存储是另一种常见的Android数据存储方式,适合大量结构化或非结构化数据的存储。Android提供了多种文件操作API,如`openFileInput()`和`openFileOutput()`,可以用来读写文件。文件存储分为内部存储和外部存储:...
Android 23的SDK平台特别关注了权限管理系统、支付API、数据存储优化、电池管理等多个方面,为开发者提供了更强大的功能和更好的用户体验。 二、Android 23 的关键特性 1. **运行时权限**:在Android 6.0(API级别...
permission android:name="android.permission.ACCESS_FINE_LOCATION" />`和`<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />`,因为串口访问可能涉及到硬件访问和存储权限。...
"老罗android视频开发源码和ppt--android存储数据和文件.rar"这个压缩包提供的是关于Android数据存储和文件操作的教学资源,包括视频课程和PPT讲义,由知名的Android讲师罗升阳(老罗)编撰。 首先,我们来看一下...
总的来说,Android应用程序将数据写入Excel并存储到外部存储是一个涉及权限管理、文件操作和第三方库使用的综合任务。通过正确理解和运用这些知识点,开发者可以构建出能够满足用户需求的高效数据导出功能。
通过实现ContentProvider,可以将SQLite数据库的数据暴露为标准的Android数据接口,其他应用可以使用URI来访问这些数据。 4. **SQLiteOpenHelper的使用**:在创建表时,我们需要定义表的结构,包括字段名和数据类型...
通过引入"Android-SecureKeys",开发者可以更专注于应用的核心功能,而不必过于担心敏感数据的存储问题。它降低了安全漏洞的风险,提升了用户数据的保护级别。因此,对于任何处理敏感信息的Android应用,这个库都是...
2.掌握各种文件存储的区别与适用情况; 3.了解SQLite数据库的特点和体系结构; 4.掌握SQLite数据库的建立和操作方法; 5.理解ContentProvider的用途和原理; 6.掌握ContentProvider的创建与使用方法。 源码和整个...
在Android开发中,数据存储与访问是至关重要的环节,它涉及到应用程序如何持久化用户数据、配置信息以及应用程序内部状态。本教程将深入探讨Android中的几种主要数据存储方式,包括Shared Preferences、SQLite数据库...
通过实验,我们了解了 Android 移动平台开发中的数据存储方式,并掌握了 SQLite 的使用和 LitePal 的使用。我们还学习了如何使用 SQLiteOpenHelper 创建和更新数据库,並使用 Cursor 操作数据库。 十、参考文献 [1...
《Android版Dropbox SDK 1.6.3详解与应用开发》 在移动应用开发领域,Dropbox API是一个不可或缺的工具,它为...理解并熟练掌握这个SDK,将极大地扩展你的应用功能,提升用户体验,同时降低数据存储和同步的复杂性。
- **数据访问**:解析完成后,可以访问`GpxDocument`对象中的`tracks`和`routes`属性来获取轨迹和路线信息。 - **自定义处理**:根据业务需求,对`TrackPoint`等对象进行自定义操作,如计算距离、速度等。 - **保存...
总结来说,Android提供了多种数据存储和访问手段,适应不同的数据需求和场景。选择合适的存储方式能有效提升应用的性能和用户体验。在实际开发中,应根据数据的类型、大小、隐私性和共享性来决定采用哪种存储策略。
在Android开发过程中,数据备份和恢复是至关重要的环节,尤其是对于...总的来说,"android-backup-tookit" 是一款强大的Android数据备份解决方案,它大大简化了开发流程,提高了开发效率,同时确保了用户数据的安全性。
- **自动序列化**:支持对象的序列化和反序列化,方便数据的存储和读取。 - **多线程安全**:ORMLite库是线程安全的,可以在多线程环境中放心使用。 4. **ORMLite的局限与优化**: - **性能**:相比于原生的SQL...
在Android应用开发中,SQLite是一个内置的轻量级数据库,用于存储应用程序的数据。SQLite支持标准的关系型数据库功能,如创建、查询、更新和删除数据,是Android应用进行本地数据持久化的重要工具。`sqlite-android`...
3. **隐私沙盒机制**:类似iOS的App Sandbox,可能为每个应用提供独立的运行环境,限制它们访问系统资源和用户数据的能力,从而降低数据泄露风险。 4. **匿名化与去标识化**:可能提供了新的API,允许开发者在不...
SQLCipher for Android是一款针对Android平台的安全扩展,它为SQLite数据库提供了强大的加密功能,确保应用程序中的敏感数据在存储和传输过程中得到充分保护。v3.5.6是此库的一个特定版本,提供了对不同架构的支持,...