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数据储存之存储方式的更多相关文章
- Android 开发笔记___存储方式__共享参数__sharedprefences
Android 的数据存储方式有四种,这次是[共享参数__sharedprefences] 听起来挺别扭的,平时看到的app里面,当用户删除了一些软件以后下次安装,发现原来的设置还在,这种情况就是把一 ...
- Android数据储存之SQLiteDatabase 简单增删改查
SQLiteDatabase 使用 SQLiteDatabase提供如下方法来打开一个文件对应的数据库: openDatabase(String path, SQLiteDatabase.Cursor ...
- android数据储存之应用安装位置
原文地址:http://developer.android.com/guide/topics/data/install-location.html#Compatiblity 从API8開始,你能够将你 ...
- Android数据储存之SharedPreferences总结
写在前面:本文是我参考李刚老师的<疯狂Android讲义>以及API所写的读书笔记,在此表示感谢,本人小白,如有错误敬请指教. SharedPreferences的使用背景: 有时候,应用 ...
- Android数据储存之SQLiteDatabase SQLiteOpenHelper类的简单使用
SQLiteOpenHelper 简介: SQLiteOpenHelper是一个借口!所以不能直接实例化!那我们想要得到SQLiteOpenHelper对象就需要实现该接口!创建该接口的实现类对象! ...
- Android数据储存之File
openFileOutStream 和 openFileInStream FileInputStream fileInputStream = openFileInput(name); 打开应用下文件 ...
- Android数据储存之SharedPreferences
Android中SharedPreferences通常与Editor连用 接口SharedPreferences常用方法: boolean contains(String str):判断SharedP ...
- Android数据存储方式
Android提供了5种方式存储数据: 1.使用SharedPreferences存储数据:它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中.只能在同一个 ...
- Android 数据存储五种方式
1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用Shared ...
随机推荐
- Nginx 防止SQL注入、XSS攻击的实践配置方法
下班的时候,发现博客访问缓慢,甚至出现504错误,通过 top -i 命令查看服务器负载发现负载数值飙升到3.2之多了,并且持续时间越来越频繁直至持续升高的趋势,还以为是被攻击了,对来访IP进行了阈值 ...
- Centos6.6 系统优化
1:最小化安装 2:修改网卡 vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0HWADDR=52:54:00:0e:c2:c3TYPE ...
- linux 空间不够了 修改 /boot
1> 查看空间多少:df -h2> 查看当期内核: uname -r3> 查找内核 rpm -qa | grep kernel4> 删除多余的内核 yum remo ...
- scrapy爬取boss直聘实习生数据
这个..是我最近想找实习单位..结果发现boss上很多实习单位名字就叫‘实习生’.......太不讲究了 == 难怪一直搜不到..咳,其实是我自己水平有限,有些简历根本就投不出去 == 所以就想爬下b ...
- SpringMVC案例3----spring3.0项目拦截器、ajax、文件上传应用
依然是项目结构图和所需jar包图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVuamFtaW5fd2h4/font/5a6L5L2T/fontsi ...
- Android中的消息机制
在分析Android消息机制之前.我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第10章节--SP2013中OAuth概览 创建和管理应用程序身份
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第10章节--SP2013中OAuth概览 创建和管理应用程序身份 在之前的部分.你看到应用程序怎样像用 ...
- spark 类标签的稀疏 特征向量
一个向量(1.0,0.0,3.0)它有2中表示的方法 密集:[1.0,0.0,3.0] 其和一般的数组无异 稀疏:(3,[0,2],[1.0,3.0]) 其表示的含义(向量大小,序号,值 ...
- SPFA的两种优化
SPFA是可以优化的,这个大家都是晓得的吧. 下面介绍两种SPFA的神奇优化(我只代码实现了的一种) SLF:Small Label First策略,设要加入的节点是j,队首元素为i,若dist(j) ...
- Python json数据中文输出问题。
这个问题困扰了我好久好久,最后看了一眼官方文档,解决问题了. 问题描述:从web上获取的json数据,然后对应的保存到了python的类型中.再次输出这个数据时,中文总会变成\u1234这种形式. P ...