android数据储存之存储方式

可以将数据储存在内置或可移动存储,数据库,网络,sharedpreference。

android可以使用Content provider来使你的私有数据暴漏给其他应用程序。

一.sharedpreference

得到sharedpreference的两种方法:

1.getSharedPreferenced():使用这个方法你可以定义多个preference文件

2.getPreferenced():只创建一个preference文件

sharedpreference不是严格用来储存“用户配置”的,比如说储存用户的铃声。若你的应用程序对创建用户配置感兴趣,可以使用PreferenceActivity、

二.内置储存

创建并写一个文件的步骤:

使用openFileOutPut得到FileOutputStream,通过这个流来写数据。

从内置储存读数据步骤:

使用openFileInput得到FileInputStream,通过这个流来读数据。

如果你想在编译的时候在你应用中保存一个静态的文件,可以保存在res/raw/路径,通过调用openRawResource传入R.raw.<filename>打开。

如果你想缓存数据而不是将数据持久化,那当你想缓存数据时可以使用openCacheDir()来打开一个内部储存空间的文件。

当设备的内置储存空间不足时,Android会删除这些文件来恢复空间。然而你不必主动删除这些文件,但是你应该对缓存文件占的空间大小做个限制,不如说1M.

其他有用的方法:

getFileDir():得到你内置文件的绝对路径。

getDir()创建(或打开一个存在)的路径。

deleteFile()删除一个内置文件

fileList()返回当前应用程序中所有内置文件列表

三.外部储存

如果你既想write外部储存,又想read外部储存,只需请求 WRITE_EXTERNAL_STORAGE 的权限。

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
                     android:maxSdkVersion="18" />
    ...
</manifest>

(当版本低于18的使用添加权限)

从Android4.4开始,若想使用应用程序的私有文件不许要读写外部储存的权限。

可以通过将文件放入Music/,Pictures/,RingTone/来和其他应用分享这个文件。

若你不想系统的多媒体浏览器可以浏览你的多媒体文件,可以在你的文件夹中添加.nomedia的文件。

得到公共文件夹的方法 getExtenrnalStoragePublicDirectory()将参数DIRECTORY_MUSIC/DIRECTORY_PICTURES/DIRECTORY_RINGTONE传入。

以下为在公共图片文件夹下添加一个相册:

public File getAlbumStorageDir(String albumName) {
    // Get the directory for the user‘s public pictures directory.
    File file = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES), albumName);
    if (!file.mkdirs()) {
        Log.e(LOG_TAG, "Directory not created");
    }
    return file;
}

你可以使用getExtenrnalFileDir()在外置储存中得到私有多媒体储存路径

当用户删除你的应用的时候这些文件将会被删除

这些文件不会被系统的多媒体浏览器发现但是对于有READ_EXTERNAL_STORAGE权限的应用是可access的。

通过getExternalCacheDir()来得到外置储存空间的缓存区。当应用程序被卸载时,这些文件也将被删除。

需要仔细管理缓存区,删除那些在你app生命周期不再使用的缓存

四.使用数据库

五.使用网络

android数据储存之存储方式,布布扣,bubuko.com

时间: 2024-10-06 14:44:33

android数据储存之存储方式的相关文章

Android数据储存

Android提供了三种数据储存的方式,分别为: 1.文件储存--文件存储数据使用了Java中的IO操作来进行文件的保存和读取 2.SharedPreferences储存--SharedPreferences可以存取简单的数据 3.Sqlite储存--Sqlite是一个Android内建的轻量级数据库 下面会用三个章节分别介绍这三种储存方式 Android数据储存--文件储存 Android数据储存--SharedPreferences储存 Tips:很多文章认为Android的数据储存有5种,

Android数据储存——SharedPreferences储存

SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/<包名>/shared_prefs目录下. 读取SharedPreference 1.获取SharedPreference对象 /* * name 打开的SharedPreferences文件名称(不需要.xml后缀) * mode 打开的SharedPreferences模式 */ SharedPrefere

Android数据储存——Sqlite

1.什么是Sqlite? SQLite是轻量级的.嵌入式的.关系型数据库. 2.Sqlite储存在Android系统的哪? 数据库存储的位置在data/data/<packagename>/databases/ 3.使用Sqlite基本流程 [1]创建一个类继承SQLiteOpenHelper并复写其中方法 [2]通过SQLiteOpenHelper的方法获取SQLiteDatabase对象 调用SQLiteOpenHelper的getWritableDatabase()获取一个能读能写的SQ

第三十五讲:Android数据储存之SharedPreferences

人的一生,总是难免有浮沉.不会永远如旭日东升,也不会永远痛苦潦倒.反复地一浮一沉,对于一个人来说,正是磨练.因此,浮在上面的,的,不必骄傲:沉在底下的,更用不着悲观.必须以率直.谦虚的态度,乐观进取.向前迈进. -- 松下幸之助 本讲内容:SharedPreferences 数据储存 一.SharedPreferences的作用 应用程序在运行的时候,可能会随着用户的使用而保持该用户的配置信息,如上次播放时的eq设置,音量设置等等,这些小量 的信息可以通过SharedPreferences来保持

Android 开发笔记___存储方式__共享参数__sharedprefences

Android 的数据存储方式有四种,这次是[共享参数__sharedprefences] 听起来挺别扭的,平时看到的app里面,当用户删除了一些软件以后下次安装,发现原来的设置还在,这种情况就是把一些用户的设置保存在手机里面的一个存储区域, 格式是XML key__Value 不方便保存关系比较复杂的数据 write 1 package com.example.alimjan.hello_world; 2 3 /** 4 * Created by alimjan on 7/4/2017. 5

Android数据储存之SQLiteDatabase 简单增删改查

SQLiteDatabase 使用 SQLiteDatabase提供如下方法来打开一个文件对应的数据库: openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)  打开path文件所代表的文件 openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)   打开或创建(如果不存在时)path文件所代表的文件 openOr

Android学习笔记之数据的内部存储方式实习数据的读写

(1)目录结构 (2) 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

android数据储存之应用安装位置

原文地址:http://developer.android.com/guide/topics/data/install-location.html#Compatiblity 从API8開始,你能够将你的应用安装在外部储存.这是一个可选的特征,你能够在你的应用的manifest中声明:android:installLocation属性.假设你不声明这个属性,你的应用程序将会被安装在内部储存,而且不能被移到外置储存. <manifest xmlns:android="http://schema

Android数据储存——文件储存

文件存储数据使用了Java中的IO操作来进行文件的保存和读取.针对文件的操作主要是以下三种: 1.创建或打开文件 2.读取文件 3.删除文件 创建文件: 1.通过Context.openFileOutput获取输出流 /* * name 打开或创建文件的名称 * mode 打开或创建文件的模式 */ FileOutputStream openFileOutput (String name, int mode) Tip:创建的存储文件保存在/data/data/<package name>/fi