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.进入缓存文件目录,可以看到我们缓存的很多的数据分别存储在各个文件目录中。

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

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

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

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

时间: 2024-10-19 15:08:45

android获取应用程序缓存的数据的相关文章

android获取某应用的帧数据

android获取某应用的帧数据: 说明: (打开手机 开发者选项-GPU显示配置文件(显示于 adb shell dumpsys gfxinfo)勾上,只有4.1以上支持) 在android4.1中,谷歌提供了一个工具来,叫做" GPU呈现模式分析(Profile GPU rendering)", 在开启这个功能后,系统就会记录保留每个界面最后128帧图像绘制的相关时间信息 开始操作: 命令行 adb shell dumpsys gfxinfo com.taobao.mobile.d

android获取高校教务系统的数据原理分析

获取原理 想要获取到高校教务系统的数据,原理只有一个: 获取到教务系统的登陆Cookie的信息. 下面我拿我大学的学校的教务系统来分析分析: 首先我们要准备一个抓包的工具,推荐:win下Fiddler ,Mac下Charles. 接下来我将使用Charles这款工具,Charcles的使用需要注意的是不要开其他代理服务.比如翻墙的代理. 登陆系统 下面进入我们学校的电费查询系统,网址为:http://jn.hhtc.edu.cn:8021/XSCK/: 进入系统,如图: 打开抓包工具,勾选Mac

Android 获取应用程序版本号

功能:获取版本号 思路:版本号位置在AndroidManifest.xml文件中,需要找到一个类可以获取该位置的信息 需要使用到getPackageInfo和 PackageManager 这两个类. 一.getPackageInfo介绍和用法 介绍:PackageInfo类封装了从配置文件(AndroidManifest.xml)中获取的所有信息,描述了包内容的整体信息. Overall information about the contents of a package. This cor

Android获取应用程序版本信息

private PackageInfo getVersionInfo() { try { PackageManager packageManager = getPackageManager(); // getPackageName()是你当前类的包名,0代表是获取版本信息 PackageInfo packInfo = packageManager.getPackageInfo( getPackageName(), 0); } catch (Exception e) { e.printStackT

获取apache ignite缓存中的数据行数少于实际行数

我将ignite项目打包放到linux下,在linux下获取window中存放在oracle数据库中的数据,linux服务器作为ignite的服务端节点,我在本地启动tomact,作为ignite客户端获取linux中缓存的数据.在未使用ignite的情况下,即在本地使用jdbc直接连接oracle数据库.获取出来的数据行数为94217使用了ignite,启动一个服务端节点(linux中)和一个客户端节点(window中),获取出来的数据行数为94107使用了ignite,启动两个服务端节点(l

Android中获取应用程序(包)的信息----PackageManager

本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下:   第一部分: 获取应用程序的packagename.label.icon等 :             第二部分:获取应用程序的占用大小,包括:缓存大小(cachsize).数据大小(datasize). 每部分都为您准备了简单丰富的实例,您一定不会错过. Android系统为我们提供了很多服务管理的类,包括ActivityManager.Po

Android中获取应用程序(包)的信息-----PackageManager的使用(一)

本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下:  第一部分: 获取应用程序的packagename.label.icon等 :             第二部分:获取应用程序的占用大小,包括:缓存大小(cachsize).数据大小(datasize). 每部分都为您准备了简单丰富的实例,您一定不会错过. Android系统为我们提供了很多服务管理的类,包括ActivityManager.Pow

Android 关于使用LruCache缓存你想缓存的数据

又是好久没写博客.. 今天我们来一起学习一下缓存技术,相信大家做开发的时候都知道请求网络数据的重要,但是有一些只用请求一次就过时性的消息比如某些新闻信息,如果我们每次进入新闻界面就从新从网络上获取势必会给用户带来不好的体验,所以我们需要缓存技术来帮我们解决这一问题. 1,LruCache介绍 核心的类是LruCache (此类在android-support-v4的包中提供) .这个类非常适合用来缓存图片,它的主要算法原理是把最近使用的对象用强引用存储在 LinkedHashMap 中,并且把最

android 卸载程序、清除数据、停止服务用法

要实现卸载程序.清除数据.停止正在执行的服务这几大模块,如今将代码粗略总结例如以下: 主要运用到的类有 PackageManager ActivityManager ApplicationInfo RunningServiceInfo Method 还有两个android.pm下的源文件用于生成桩,IPackageStatsObserver.java 和 IPackageDataObserver.java,由名字能够看出,他们是跟包的状态和大小有关的,在网上找到这两个文件的源代码后,把他们放在p