当前位置: 萬仟网 > 移动技术>移动开发>Android > Android 数据处理方法

Android 数据处理方法

2018年09月18日  | 萬仟网移动技术  | 我要评论
xml解析方式 由于设备资源比较宝贵,内存有限,需要适合的技术来解析xml文件提高访问速度。 1.dom解析 基于文档驱动的解析。通常需要加载整个文档并构成dom树之后才开始工作。由于dom树在内存

xml解析方式

由于设备资源比较宝贵,内存有限,需要适合的技术来解析xml文件提高访问速度。
1.dom解析
基于文档驱动的解析。通常需要加载整个文档并构成dom树之后才开始工作。由于dom树在内存中是持久的,因此可以在程序中对数据与结构做出更改。
优点:简单,直观适用于xml文件较小时。
缺点:构造层次结构,消耗资源大,不适合解析大文档。
2.sax解析
基于事件的解析器。工作原理就是对文档进行顺序扫描,当扫描到文档开始与结束,元素开始与结束等地方时,会通知事件处理函数做相应的动作。
优点:解析效率高,占用内存少。
缺点:需要自己负责tag的处理逻辑(如维护父/子关系等),使用麻烦。单向导航,很难同时访问同一文档中的不同部分数据,不支持xpath。
3.pull解析
基于事件的模式。在开始处完成大部分处理。需要自己获取自己产生的操事件,然后做相应的操作。当解析到一个文档结束时,将自动生成enddocument事件。可以应用于javase开发。
优先:小巧轻便,解析速度快,简单使用。

简述json数据的特点

是一种轻量级的数据交换格式,具有良好的额可读和便于快速编写的特性。可以在不同平台间进行数据交换。
json中有且只用两种结构:对象(使用花括号{}包围)和数组(使用方括号[]包围)。
1.对象:数据结构为:{key:value,key:value…}键值对结构。
key为对象的属性,value为对应的属性值,取值方法为对象key获取属性值。
2.数组:数据结构为[“java”,”js”,”vr”…],通过索引获取值。

如何解析json数据

//json数据
{"name":"张三","age":"18","married":"true"}//json1的json对象
[1,2,3]//json2的json数组

1.使用android内置的orh.json包解析

//解析json对象
jsonobject jsonobj = new jsonobject(json1);
string name = jsonobj.optstring("name");
int age = jsonobj.optint("age");
boolean married = jsonobj.optboolean("married");
//解析json数组
jsonarray jsonarray = new jsonarray(json2);
for(int i=0;i

2.使用第三方gson解析

//解析json对象
gson gson =new gson();
person person = gson.fromjson(json1, person.class);
//解析json数组
gson gson =new gson();
type listtype = new typetoken>(){}.gettype();
list ages = gson.fromjson(json2 , listtype);

使用jsonreader解析json字符串

与xml解析中的pull方式有些类似。
在创建jsonreader对象时传递的参数是reader类型。在网络访问中,可以直接传递输入流,进而转化成reader;接着根据返回类型调用beginobject()或beginarray()方法用于开始读取对象或数组;然后调用hasnext()方法读取数据,读取完后需调用相应的endobject()或endarray()方法来关闭对象或数组;最后调用close()方法关闭reader。

操作名称 运行语句
增加 insert into 表名(字段列表) valuses(值列表)
删除 delete from 表名 where 条件子句
修改 update 表名 set 字段名 = 值 where 条件子句
查询 select * from 表名

sqlite数据库中的表与表之间的关系有:
1.一对一
a表中的一行最多只能匹配b表中的一行。
2.一对多
a表中的一行可以匹配b表中的多行,但b表中的一行只能匹配a表中的一行。
3.多对多
a表中的一行可以匹配b表中的多行。要创建这种关系,需要定义第三个表,称为结合表。

如何使用sqlitedatabase操作sqlite数据库?

sqlitedatabase代表一个数据库对象,并提供一些操作数据库的方法。

方法名称 方法描述
openorcreatedatabase(stringpath,sqlitedatabase.cursorfactory factory) 打开或创建数据库
insert(string table, string nullcolumnhack, contentvalues values) 添加一条记录
delete(string table, string whereclause, string[]whereargs) 删除一条记录
query(string table, string[] columns, string selection, string[] selectionargs, string groupby, string having, string orderby) 查询一条记录
update(string table, contentvalues values, string whereclause, string[] whereargs) 修改记录
execsql(string sql) 执行一条sql语句
close() 关闭数据库

数据库事务的处理有助于程序的稳定性与效率。一个事务中的所有操作要么都执行成功,要么都执行失败,保证数据的移植性。

如何使用sqliteopenhelper创建数据库?

是sqlitedatabase的辅助类。主要生成一个数据库,并对数据库的版本进行管理。若指定的数据库不存在,则会调用sqlitedatabase.create()方法创建一个数据库。

方法名称 方法描述
oncreate() 创建数据库时调用,在该方法生成数据库
onupgrade() 在数据库升级时调用,用于建立或删除数据表
onopen() 当打开数据库时,一般不常用该方法

cursor游标的常用方法:

方法名称 方法描述
getcount() 获得总的数据条数
isfirst() 判断是否为第一条记录
islast() 判断是否为最后一条记录
movetofirst() 移到第一条记录
movetolast() 移到最后一条记录
move(int offset) 移动到指定记录
movetonext() 移动到下一条记录
movetoprevious() 移动到上一条记录
getcolumnindexorthrow(string columnname) 根据列名称获得列索引
getint(int columnindex) 获得指定列索引的int类型值
getstring(int columnindex) 获得指定列索引的string类型值

1.base64
将数据转换成二进制数据。
比如客户端通过base64将图片转换成二进制数组(byte[]),再转换成string类型,然后以string的形式发送至服务器。若服务器以string形式将图片发送到客户端,则客户端需将string解析成二进制数据,再将二进制数组转换成图片。
2.aes加密与des加密
3.rsa加密

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
Copyright © 2017-2020  萬仟网 保留所有权利. 粤ICP备17035492号-1