Android数据处理技术

来源:互联网 发布:马泰尔家族知乎 编辑:程序博客网 时间:2024/05/20 03:42

前言

作为移动设备,数据的序列化,反序列化,存储,加密,有着举足轻重的作用,数据如何保存和解析等,都存在很多知识点,作为一个靠谱的Android工程师,对数据处理的要求不可小瞧

一、序列化

1.1 Serializable

Serializable技术是java语言的特性, 他说最简单也是应用最广的序列化方案之一,只有实现了Serializable接口的java对象才可以实现序列化,这种序列化是将java对象转化成字节序列的过程,而反序列化的过程是将字节回复称java对象的过程
 Serializable是一种接口标识,也就是没有实现任何方法,虚拟机会对对象进行操作,缺点就是使用了反射机制,在序列化的过程中创建了很多临时对象,很容易触发垃圾回收机制,序列化过程比较慢,对于性能要求比较高的地方不要使用。

1.2 Parcelable

Parcelable 是Android SDK提供的 它基于内存的,由于内存的读写速度高于磁盘,因此在Android中跨进程对象的传递一般使用的是Parcelable.

1.2.1 在Android Stuido中安装一个Android Parcelable code generator 的插件会容易写出模板代码

二、数据库 SQLiteDatabase

SQLite 是一款轻量级的关系型数据库,它的运算速度特别快,占用资源特别小,这个数据库一般用来存储复杂的数据关系。由于原生的API比较不友好,开源社区给出了很多SQLite的封装框架,在安全性方面我们需要对在数据库内的数据进行加密,使用的时候再解密,一个简单的方法就是使用开源框架https://github.com/sqlcipher.sqlcipher 数据库一般存储在data/data/PACKAGE_NAME/database

三、 SharedPreferences

SharedPreferences是Android平台提供的一个轻量级的API一般来保存应用的配置信息,其本质是一个键值对的存储,SharePreference支持常用的数据类型存储和读取,
SharedPreferences 的简单使用
获取SharedPreferences 对象SharedPreferences mPreferences =context.getsharedPreference(PREFERENCES_NAME,Context.MODE_PRIVATE)SharedPreferences 对象读取存储在SharedPreferences 中的数据mPreferences .getBoolean(key,defValue)SharedPreferences.Editor  mEditor=mPreferences.edit();mEditor.putBoolean(key,b);mEditor.commit()
其实SharedPreferences是将信息以xml文件的形式保存在data/data/package_name/shared_prefs 所以要随数据进行加密

四JSON

JSON 是一种轻量级的数据交互方式,由于Android原生的解析API性能很差,所以,开源社区有了大量高效率的快加