android获取应用程序缓存的数据

在我们日常的开发过程中,我们的app经常需要缓存一些数据,比如已经登陆的用户信息,比如是不是首次登陆,比如某个页面的引导有没有展示。。。等等这些。那么这些一般来说不外乎几种做法:

1.使用SharedPreference来进行缓存,缓存的位置在/data/data/xxx.xxx.xxx/shared_prefs中。xxx.xxx.xxx是你的包名。

2.使用sqlite来进行缓存,缓存的数据在/data/data/xxx.xxx.xxx/databases/xxx.db中。

3.文件缓存到sd卡上面等。

怎么样进行缓存不在本文的讨论范围之内,故不深入讨论。


那些数据缓存了之后,我们怎么去获取它们呢?不外乎下面几种方法:

1.使用代码把数据读取出来然后显示,一般程序开发也就是这个步骤。

2.问你的后台,访问以下你的数据库来获取必要的信息。

3.根据程序的行为,比如你进入了某个第一次进入需要引导的页面而没有发生引导操作,那么....。如果你使用的是缓存的方式来判断的话。

4.从android系统里面进行查询。


我们要说的就是最后一个方法:

说明:本人使用的ubuntu12.04,所以如果你使用的是windows需要变动的地方请自行变动,其实也没有什么不一样。

1.使用adb连接上你的手机,至于怎么样连接请自行搜索,如果你的手机无法被读取,请转战这里:ubuntu下adb无法找到真机的问题解决

2.你如果要读取/data/data下面的数据,你需要取得root权限,如果你的手机已经root了,那么就没有什么好说的了,如果没有,你可以使用su命令来请求root权限,这个时候,你的手机会出现root权限请求弹框,点击允许就可以了。

3.进入缓存文件目录,可以看到我们缓存的很多的数据分别存储在各个文件目录中。

android获取应用程序缓存的数据_第1张图片

2.进入SharedPreference缓存的数据,一般缓存为xml,在这个里面,我们可以看到我们缓存的一些数据,使用xml的键值对的方式存储,这也解释了,为什么我们把读取SharedPreference缓存的数据放在主线程中做的时候,android的日志系统会给我们报耗时操作警告的原因了,应为我们就是在读取磁盘数据。xml的名称就是我们在存储时指定的名称。

android获取应用程序缓存的数据_第2张图片

3.接下来,我们来进入sina微博的缓存数据文件夹看一看。

android获取应用程序缓存的数据_第3张图片

5.它们缓存的数据真的是很多呢,我们可以随便打开一个看一下。我们可以看到,是否登陆的缓存标记,当前登陆账号,当前安装的版本等等,有些我们可以从字面上面去理解,有些...,你别问我,我也不知道。

android获取应用程序缓存的数据_第4张图片

接下来无论你是进行修改或者进行删除,那么都无所谓了,只要你清楚自己是在干什么就可以了。

你可能感兴趣的:(android常见问题系列)