美文网首页
Android中的数据存储

Android中的数据存储

作者: Android_Liu | 来源:发表于2017-05-19 17:32 被阅读22次

1. Android中的数据存储方式:

1). SharedPreferences存储

2). 手机内部file存储

3). 手机外部file存储 m

4). Sqlite数据库存储

5). 远程服务器存储

2. SharedPrefrence存储

1). 存储的位置

/data/data/packageName/share_prefs/xxx.xml

2). 特点

私有的以key--value的形式保存的小数据

应用卸载时会自动删除

3). 相关API

a. SharedPreferences

context. getSharedPreferences (String name, int mode): 得到SP对象

name: 文件名(不带.xml)

mode: 生成的文件模式(是否是私有的,即其它应用是否可以访问)

Editor sp.edit() : 得到Editor对象

Xxx sp.getXxx(name,defaultValue): 根据name得到对应的数据

b. Editor

Editor put(name, value) : 保存一个键值对, 没有真正保存到文件中

Editor remove(name)

commit(): 提交, 数据真正保存到文件中了

3. 手机内部文件存储

1). 存储的位置

/data/data/packageName/files/xxx.xxx

2). 特点

私有的文件(图片, 数据库文件, 其它)

应用卸载时会自动删除

3). 相关API

a. Context

读取文件

FileInputStream fis = openFileInput("logo.png");

保存文件

FileOutputStream fos = openFileOutput("logo.png", MODE_PRIVATE)

得到files文件夹对象

File filesDir = getFilesDir();

得到能操作assets下的文件的管理器

AssetManager manager = getAssets();

b. AssetManager

得到文件输出流: InputStream open(String fileName)

c. BitmapFactory

加载图片得到图片对象: Bitmap BitmapFactory.decodeFile(String pathName)

4. 手机外部文件存储

1). 存储的位置

a. /storage/sdcard/Android/data/packageName/files/

b. /storage/sdcard/xxx/

2). 特点

a. 私有的文件(图片, 数据库文件, 其它), 应用卸载时会自动删除

b. 其它应用可以直接访问, 应用卸载时不会删除

3). 如何选择

主要看应用卸载后, 文件是否还有存在的必要

4). 相关API

Environment :  操作SD卡的工具类

得到SD卡的状态:Environment.getExternalStorageState()

得到SD卡的路径:Environment.getExternalStorageDirectory()

SD卡可读写的挂载状态值:Environment.MEDIA_MOUNTED

context.

getExternalFilesDir(): 得到/mnt/sdcard/Android/data/pageckage_name/files/

操作SD卡的权限:

android.permission.WRITE_EXTERNAL_STORAGE

5. Sqlite数据库存储

1). 存储的位置

/data/data/packageName/databases/xxx.db

2). 特点

有一定关系结构的数据

应用卸载自动删除

3). Sqlite的特点:

a. 小: 几百K

b. 快: 数据量不是特别大时

4). 相关API:

a. SQLiteOpenHelper: 数据库操作的抽象帮助类

abstract void onCreate(SQLiteDatabase db): 用于创建表

abstract void onUpgrade(): 用于版本更新

SqliteDatabase getReadableDatabase() : 得到数据库连接

b. SqliteDatabase: 代表与数据库的连接的类

long insert(): 用于执行insert SQL, 返回id值

int update(): 用于执行update SQL

int delete(): 用于执行delete SQL

Cursor query(): 用于执行select SQL, 返回包含查询结果数据的Cursor

Cursor rawQuery(String sql, String[] selectionArgs)

beginTransaction(): 开启事务

setTransactionSuccessful(): 设置事务是成功的

endTransaction(): 结束事务, 可能提交事务或回滚事务

static openDatabase(String path, CursorFactory factory, int flags):  得到数据库连接

c. Cursor : 包含所有查询结果记录的结果集对象(光标,游标)

int getCount() : 匹配的总记录数

boolean moveToNext() : 将游标移动到下一条记录的前面

Xxx getXxx(columnIndex) : 根据字段下标得到对应值

int getColumnIndex(columnname): 根据字段名得到对应的下标

相关文章

网友评论

      本文标题:Android中的数据存储

      本文链接:https://www.haomeiwen.com/subject/plnyxxtx.html