导航:首页 > 操作系统 > android获取应用缓存

android获取应用缓存

发布时间:2022-08-05 20:26:16

❶ 请教贴android本地缓存机制

Android中提供的缓存机制是利用本地存储实现的。
(1)新下载数据的时候,将数据缓存到本地。
(2)再次下载之前,先判定该资源是否已经被缓存,如果是,则优先使用本地资源;如果没有被缓存,则凑个网络上下载资源,并进行缓存。
实际上使用缓存机制的时候,还要考虑到额外的两个条件:空间和时间。
对于存储空间的条件限制,处理方法一般是结合应用下载量大小和用户选择来确定,比如以缓存文本为主的应用,由于文本本身占用极小的空间,其缓存大小可以根据用户的磁盘空间大小来确定;以缓存图片为主应用,由于图片占用空间较大,更加需要用户参与指定空间大小。
对于时间的限制,可以通过设定缓存的过期时间来实现,为下载到缓存的数据设定时间戳,在读取该缓存的时候,比较时间戳,超过时间限制的则需要更新该缓存。
在清空应用缓存的时候也需要谨慎,在存储空间已满,用户注销的时候可以考虑清空该用户的整个缓存,而在普通升级应用的情况下并不需要清空整个缓存。

❷ 如何获取android 当前app的缓存大小

第一步,修改androidmanifest.xml,添加权限;第二步,检测并引导用户开启权限;第三步,使用usagestatsmanager来获取当前运行的app;

❸ android缓存数据到本地放在哪儿最好

Android应用开发中,给我们提供了5种数据的存储方式
1 使用SharedPreferences存储数 据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
5 网络存储数据

以下是这几中数据存储方式的说明用及法:

第一种: 使用SharedPreferences存储数据
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。

第二种: 文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。
文件可用来存放大量数据,如文本、图片、音频等。
默认位置:/data/data/< >/files/***.***。

第三种: SQLite数据库存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,
并且只利用很少的内存就有很好的性能。
此外它还是开源的,任何人都可以使用它。
许多开源项目((Mozilla, PHP, Python)都使用了 SQLite
SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。
SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。

第四种 使用ContentProvider存储数据 ContentProvider其实也是通过数据库的方式来存储数据的,因此这里不再做详细介绍

第五种 网络存储数据 也就是说将数据保存在服务器,android上只需要通过httpclient发起一个请求,向服务器获取数据即可
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。

大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?

通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

如果使用上面的方法,当应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。

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

应用程序的缓存数据在data/data/包名/cache目录下,直接读取这个目录下的文件即可

❺ 安卓手机(小米2s)的应用缓存在哪里

美拍app,获取链接,电脑上网,输入链接,获取视频地址,单击打开,复制地址栏,搜狗下载
搞定!

❻ 安卓怎样获得所有的APP缓存使用getPackageSizeInfo

首先,需要获得所有已经安装的程序的基本信息通过packageManager来拿到

[java] view plain
List<PackageInfo> installedPackages = manager.getInstalledPackages(0);
拿到所有的程序基本信息后,通过for循环来拿到程序的包名,然后通过查询android源码,在setting里面找到了拿到缓存大小的源码,通过packageManager的getPackageSizeInfo方法来拿到。

[java] view plain
public abstract void getPackageSizeInfo(String packageName, int userHandle,
IPackageStatsObserver observer);
然而这个方法是隐藏的,我们通过反射来拿到这个方法

[java] view plain
Class<?> loadClass = getClassLoader().loadClass("android.content.pm.PackageManager");
Method method = loadClass.getDeclaredMethod("getPackageSizeInfo", String.class,int.class,IPackageStatsObserver.class);

❼ android 怎样获取webview的缓存

请求的url记录是保存在webviewCache.db,而url的内容是保存在webviewCache文件夹下.

为了便于理解,接下来模拟一个案例,定义一个html文件,在里面显示一张图片,用WebView加载出来,然后再试着从缓存里把这张图片读取出来并显示。

第一步:新建一个Android工程命名为WebViewCache.目录结构如下:

第二步:在assets目录下新建一个html文件,命名为index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>WebViewCacheDemo</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

</head>

<body>
<img src="http://img04.taobaocdn.com/imgextra/i4/608825099/T2nGXBXXpaXXXXXXXX_!!608825099.jpg_310x310.jpg"/>
</body>
</html>

第三步:修改main.xml布局文件,一个WebView控件一个Button(点击加载缓存图片用),代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/webView"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="从缓存读取图片"
android:id="@+id/button"/>
</LinearLayout>

第四步:修改主核心程序WebViewCacheDemo.java,这里我只加载了index.html文件,按钮事件暂时没写,代码如下:

package com.ljq.activity;

import java.io.File;
import java.io.FileInputStream;

import android.app.Activity;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.ImageView;

public class WebViewActivity extends Activity {
private WebView webView;
private static final String url="file:///android_asset/index.html";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

webView=(WebView)findViewById(R.id.webView);
webView.loadUrl(url);
}
}

第五步:在AndroidMainifest.xml文件中加访问网络的权限:
<uses-permission android:name="android.permission.INTERNET" />

❽ 安卓应用程序的缓存是在那个文件夹

在手机内存下的:system/app 里面是安装程序包括数据设置等等。 程序进程,比如数据包在:sdcard/Andioid/data以下的文件夹-com.*******.***。

❾ android本地缓存机制

方法/步骤
1/5 分步阅读
二级缓存工作机制
所谓二级缓存实际上并不复杂,当Android端需要获得数据时比如获取网络中的图片,我们首先从内存中查找(按键查找),内存中没有的再从磁盘文件或sqlite中去查找,若磁盘中也没有才通过网络获取;当获得来自网络的数据,就以key-value对的方式先缓存到内存(一级缓存),同时缓存到文件或sqlite中(二级缓存)。注意:内存缓存会造成堆内存泄露,所有一级缓存通常要严格控制缓存的大小,一般控制在系统内存的1/4。
理解了二级缓存大家可能会有个问题网络中的数据是变化的,数据一旦放入缓存中,再取该数据就是从缓存中获得,这样岂不是不能体现数据的变化?我们在缓存数据时会设置有效时间,比如说30分钟,若超过这个时间数据就失效并释放空间,然后重新请求网络中的数据。有的童鞋就问30分钟内咋办?那好吧,我也没招了,只有下拉刷新了, 实际上这不是问题。
2/5
二级缓存的实现
如何实现二级缓存,有很多技术方案,在这里我们使用 ASimpleCache框架来给大家演示一下,通过名字就可以看出它是很容易实现的。
1、ACache介绍
ASimpleCache是一个轻量级的开源cache框架,实际上就是一个叫ACache的java类。已经在商业项目中使用,运行效果不错。
2、ACache使用
我们先做一个实现数据缓存的案例,然后再归纳一下主要的方法
编写NewsListActivity主要代码如下:

3/5
创建ACache组件
ACache acache=ACache.get(context)

ACache acache=ACache.get(context,max_size,max_count)
参数说明:
max_size:设置限制缓存大小,默认为50M
max_count:设置缓存数据的数量,默认不限制
4/5
设置缓存数据
acache.put(key,data,time)或acache.put(key,data)
将数据同时上存入一级缓存(内存Map)和二级缓存(文件)中
参数说明:
Key:为存入缓存的数据设置唯一标识,取数据时就根据key来获得的
Data:要存入的数据,acache支持的数据类型如图所示:
有String、可序列化的对象、字节数组、Drawable等Time:设置缓存数据的有效时间,单位秒

5/5
从缓存中取数据
提供一系列getAsXXX()方法,如图所示。
根据不同存入数据,调用不同的方法取数据

❿ 想问一下万能的网友,安卓机的app本地缓存位置怎么查

你用ES文件管理器去查,那个软件查找功能很强,可以直接看到该APP内的所有文件包括缓存文件,而且还给你把APP图标给注明在文件夹内,很好找的。隐藏文件一般手机上是看不到的,必须连接电脑才能看到。

阅读全文

与android获取应用缓存相关的资料

热点内容
xlsx转换pdf 浏览:94
3dmax挤出命令英语 浏览:903
靶心率的定义和算法 浏览:513
3d模术师app哪里下载 浏览:474
php中文api文档 浏览:458
安卓设计怎么加入输入框 浏览:185
主根服务器什么时候开始 浏览:738
奇门遁甲完整版pdf 浏览:901
app软件怎么用的 浏览:802
电子书pdf购买 浏览:193
浪潮服务器如何做系统 浏览:111
冒险岛img格式加密 浏览:596
我的世界手游如何复制命令 浏览:659
天刀自动弹琴脚本源码 浏览:970
打开其它app微信怎么收不到 浏览:447
安卓游戏耳机怎么戴 浏览:18
不越狱怎么去除app广告 浏览:178
ipadminipdf阅读 浏览:507
文件夹无限制压缩会不会降低内存 浏览:413
荣耀怎样创建文件夹 浏览:632