`

android数据持久化总结

阅读更多
1、 通过Context.getSharedPreferences(String fileName,int mode)方法,可以打开一个xml文件,文件的位置在/data/data/package_name/shared_prefs/fileName.xml,如果不存在,则会自动创建。可以对该文件进行读写操作,在应用内的各组件之间共享数据。如果将mode设置为Context.MODE_WORLD_READ或者Context.MODE_WORLD_WRITE,则还可以被其他应用访问到。不过这不是android推荐的方式,要实现跨应用共享数据,推荐的方式是用ContentProvider实现

2、 如果要访问另一个应用创建的shared_prefs文件,需要满足2个条件,首先另一个应用要设置MODE_WORLD_READ或MODE_WORLD_WIRTE权限,并且要知道另一个应用的package_name,然后就可以通过Context.createPackageContext()方法,就可以得到另一个应用的context,然后context.getSharedPreferences()方法,就可以打开shared_prefs文件了。不过这种方法并不推荐

3、 在罕见的情况下,如果既把shared_prefs的权限设置为MODE_PRIVATE,又希望某些其他的应用可以访问到,那么可以在manifest文件中配置android:user_id(好像是这个属性),让多个应用共享USER_ID。因为本质上shared_prefs文件是采用linux的权限控制的,MODE_PRIVATE类似于-rw-------,所以如果多个应用使用了同一个USER_ID,自然都对这个文件有访问权限了

4、 除了比较方便的shared_prefs,也可以创建自定义文件,方法是Context.openFileOutput(),可以在/data/data/package_name/files/目录下创建指定的文件,除此以外,和上面提到的shared_prefs都一样。不过操作起来就复杂一些了。要读取用这种方式创建的文件,可以用Context.openFileInput()方法

5、 此外,还可以在SD卡上操作文件,通过标准的java.io包内的API就可以。不过要注意的是,SD卡内采用的是FAT文件系统,所以不支持linux的文件读写权限控制,这点和shared_prefs与file不太一样。如果需要对文件进行读写权限控制,就不能采用写入SD卡的方式

6、 也可以用android自带的SQLite数据库来做数据持久化,主要用到的类包括SQLiteOpenHelper和SQLiteDatabase。

SQLiteOpenHelper主要有onCreate()、onUpgrade()、getWritableDatabase()等方法。getWritableDatabase()方法返回的是SQLiteDatabase对象实例,如果数据库尚未创建,则会自动调用onCreate()方法来创建数据库,所以一些建表和数据初始化操作,应该放在onCreate()方法里

SQLiteDatabase这个类相当于JDBC中的Connection,也类似Hibernate中的Session,或者Spring中的HibernateTemplate。该对象已经对基本的数据库操作进行了封装。可以调用insert()、delete()、executeSQL()等方法,进行实际的数据库操作

开发的时候一般会对这2个类做一下包装,比如进行简单的封装,使SQLiteDatabase的查询方法不是返回原始的Cursor类(Cursor相当于JDBC中的ResultSet),而是返回业务对象等等

7、 android中要实现跨应用共享数据,规范的方式是使用ContentProvider,使其他应用可以得到某个应用对外提供的数据,而不需要知道这个应用的实现细节。系统自带的provider放在android.provider包下,比如通讯录等。如果需要的话,开发者也可以提供自己的ContentProvider,这部分内容下次再单独介绍
分享到:
评论

相关推荐

    Android 使用ORMLite打造万能泛型Dao简化数据持久化层

    总结起来,使用ORMLite和泛型Dao在Android中进行数据持久化有以下优势: 1. 简化数据库操作:通过ORM,开发者可以避免编写SQL语句,专注于业务逻辑。 2. 提高代码可复用性:泛型Dao接口和实现类可以应用于多个实体...

    Android数据持久化之SQLite数据库用法分析

    本文实例讲述了Android数据持久化之SQLite数据库用法。分享给大家供大家参考,具体如下: 这一节我将总结一下android中的另一种数据存储——SQLite 的相关知识点 SQLite数据库是android系统自带的,主要用到的类包括...

    android持久化 ormlite-android-4.31.jar

    `ormlite-android-4.31.jar`是ORMLite针对Android环境定制的版本,适用于Android应用程序的数据持久化需求。 1. **ORMLite的核心概念**: - **实体类(Entity Class)**:ORMLite通过注解将Java类映射为数据库表,...

    Android数据持久化之I/O操作详解

    Android数据持久化之I/O操作详解 Android数据持久化是指将数据保存到存储设备中,以便在应用程序重启或关闭后能够恢复数据。Android系统提供了多种数据持久化方式,其中I/O操作是最基本的一种。I/O操作是指输入/...

    JoneCool-Android-MyDiary-master_android_androidstudio_Androidstu

    总结,"JoneCool-Android-MyDiary-master"项目是一个非常适合Android初学者实践的案例,涵盖了Android Studio的基础使用、SQLite数据库操作、UI设计以及数据持久化的概念。通过这个项目,开发者可以深入理解Android...

    Android-基于apt实现的Android快速持久化框架AptPreferences

    在Android应用开发中,数据持久化是不可或缺的一部分,它使得应用程序可以保存用户设置或关键数据,以便在下次启动时能够恢复。AptPreferences是这样一个基于Android Annotation Processing Tool(apt)的快速持久化...

    Android中使用ormlite实现持久化

    总结,ORMLite为Android开发提供了强大的数据库操作支持,简化了数据持久化的流程。通过定义数据模型,我们可以快速地进行数据的CRUD操作,并利用外键实现对象之间的关联。在实际开发中,根据项目的具体需求,可以...

    android数据存储相关代码

    在Android系统中,数据存储是应用程序管理用户数据的...总结,Android数据存储涉及多个层次和方式,根据具体需求选择合适的方法至关重要。在实际开发中,结合使用这些存储机制,可以有效地管理和维护应用程序的数据。

    Android数据储存

    在Android应用开发中,数据储存是一项至关重要的任务,它涉及到应用程序如何持久化用户数据、缓存网络请求结果以及优化性能。本主题将深入探讨“Android数据储存”,特别是针对非图片数据的处理,如将JSON数据序列...

    android 数据共享(ContentProvider)

    ContentProvider提供了一种标准化的机制,使得不同的应用程序可以安全、有序地访问和共享数据,无论这些数据是存储在SQLite数据库、文件系统还是其他持久化存储中。下面我们将深入探讨ContentProvider的工作原理及其...

    Android数据存储(内置sdcard1)

    在Android系统中,数据存储是应用开发者必须掌握的重要技能之一,因为这关乎到应用程序如何持久化数据,确保用户数据在程序关闭或设备重启后依然可访问。本篇将重点讨论Android内置SD卡(通常称为内部存储)的数据...

    Android数据存储

    总结起来,Android数据存储是Android开发中的核心概念,理解并掌握这些存储机制将有助于构建高效、健壮的应用程序。通过合理利用各种存储方式,开发者可以确保数据的正确管理和持久化,为用户提供更好的体验。

    android ViewModel保存数据使用

    总结起来,Android的ViewModel是构建健壮、响应式应用的关键组件,它简化了数据管理,尤其是在应对设备配置变化时的数据持久化问题。通过合理地使用ViewModel和相关组件,开发者可以创建更加稳定、易于维护的Android...

    Android数据存储五种方式总结[借鉴].pdf

    以下是对Android数据存储五种方式的详细总结: 1. **SharedPreferences存储数据** SharedPreferences主要用于存储少量的配置数据,如用户偏好设置。它以XML文件的形式保存键值对数据,并提供方便的API进行读写操作...

    Android 数据缓存工具类

    总结来说,Android数据缓存工具类是通过合理利用内存和磁盘资源,提高数据读取效率,减少网络请求的必要组件。设计良好的缓存工具类应具备灵活的缓存策略,如基于时间和容量的过期策略,以及方便的插入、读取、更新...

    Android 数据存储方式

    SharedPreferences的数据持久化,即使应用关闭或设备重启,数据也不会丢失。通过`PreferenceManager.getDefaultSharedPreferences(Context)`和`SharedPreferences.Editor`接口进行读写操作。 2. **File** 文件存储...

    Android数据存储简介

    在Android系统中,数据...总结,Android数据存储提供了多样化的解决方案,开发者可以根据实际需求灵活选择。理解并掌握这些存储方式,能有效提高应用的稳定性和用户体验。更多详细信息,可以参考上述博客链接中的内容。

    Android-使用Kotlin属性委托实现的基于文件的Key-Value持久化工具

    在Android开发中,数据持久化是一项重要的任务,它允许应用程序在用户关闭或设备重启后仍然保存数据。Kotlin提供了一种强大的特性——属性委托,这使得实现基于文件的Key-Value存储变得更加简单和优雅。本篇文章将...

    Android缓存——将数据以对象的方式缓存到本地

    在Android开发中,数据缓存是一项重要的技术,它能够提高应用程序的性能和用户体验。当用户访问数据时,如果数据已经被缓存,系统可以...通过理解和实践CacheTestDemo,开发者可以更好地掌握Android数据缓存的运用。

Global site tag (gtag.js) - Google Analytics