在开始前应该先搞清楚安卓手机的数据分类,我个人认为安卓中主要有两个数据分类
(1)数据库类
安卓手机各类手机的APP都使用SQLITE数据库来管理数据,这里解释下为什么要用数据库。
可能有人认为没必要用数据库,反正手机的数据量也不大,在这个“大数据”时代可能说这些都有点落伍,数据库和普通文件的区别就在于高效率、集中性方面。
比如我们的短信、通讯录或者更直接一点的QQ、微信一类的,每天的聊天记录就有很多,如果一条记录就保存成一个文件,这样不超过1小时就会产生N个文件,程序去加载这些“琐碎”的小文件会很没有效率。而数据库则只有一个DB文件,然后通过规范的SQL语言做“插入”操作,数据库不但会把这些“琐碎”的小文件关联起来,而且还会管理的很好。在数据库的内部有一套相当成熟的管理算法,形象的来说数据库就像是一个合格且高效的“管家”,当使用数据时,手机的软件不用关心这个“管家”如何去工作,只需要看到“结果”就可以了。
而涉及到数据库方面又有一个问题,用什么数据库?安卓系统继承自LIUNX,而有其自身的特点,主要在硬件方面---手机的内部存储是有限的。这就要求必须使用一款“轻量”级的数据库,因为安卓所运行的硬件环境所决定,这就是为什么安卓使用SQLITE的原因,SQLITE的优势就在于“轻量”级,占用空间及小。
目前已知的使用SQLITE的APP至少有以下这些:
安卓系统自带的通讯录、通话记录、短信、记事本
腾讯的QQ、微信
陌陌
支付宝
........
还有很多,可以说只要有APP就会产生SQLITE的数据库,这在安卓中相当普遍,我们在安卓系统的DATA逻辑盘下就能找到这些数据库。
下图为安卓手机的data逻辑盘(因为安卓中是使用mount挂载盘符为文件所以data盘在安卓系统中会体现为/data文件夹)
如下图为安卓自带的APP通讯录和通话记录所在路径:/data/data/com.android.providers.contacts/contacts2.db
(2)多媒体类
多媒体类则比较简单比如照片、视频、录音 等,这些类型的文件其结构和PC上的并没有什么区别。比如像照片使用的是JPG类型的文件,那么JPG文件的结构无论是在什么系统下是不会变化的。视频和录音也是同样的道理,这也是为什么文件能跨平台的原因。
如下图为JPG文件的文件头
本文中涉及的软件可以到以下地址去下载:
http://www.chs163.com/down/html/?17.html