當前位置:首頁 » 安卓系統 » android本地緩存

android本地緩存

發布時間: 2022-12-07 01:39:03

⑴ android開發中怎樣清除本地緩存文件夾

java">

/** * 本應用數據清除管理器 */

public class DataCleanManager {

/** * 清除本應用內部緩存(/data/data/com.xxx.xxx/cache) * * @param context */

public static void cleanInternalCache(Context context) {

deleteFilesByDirectory(context.getCacheDir());

}


/** * 清除本應用所有資料庫(/data/data/com.xxx.xxx/databases) * * @param context */

public static void cleanDatabases(Context context) {

deleteFilesByDirectory(new File("/data/data/com.example.orderfood"));

}


/**

* * 清除本應用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) * * @param

* context

*/

public static void cleanSharedPreference(Context context) {

deleteFilesByDirectory(new File("/data/data/com.example.orderfood/shared_prefs"));

}


/** * 按名字清除本應用資料庫 * * @param context * @param dbName */

public static void cleanDatabaseByName(Context context, String dbName) {

context.deleteDatabase(dbName);

}


/** * 清除/data/data/com.xxx.xxx/files下的內容 * * @param context */

public static void cleanFiles(Context context) {

deleteFilesByDirectory(context.getFilesDir());

}


/**

* * 清除外部cache下的內容(/mnt/sdcard/android/data/com.xxx.xxx/cache) * * @param

* context

*/

public static void cleanExternalCache(Context context) {

if (Environment.getExternalStorageState().equals(

Environment.MEDIA_MOUNTED)) {

deleteFilesByDirectory(context.getExternalCacheDir());

}

}


/** * 清除自定義路徑下的文件,使用需小心,請不要誤刪。而且只支持目錄下的文件刪除 * * @param filePath */

public static void cleanCustomCache(String filePath) {

deleteFilesByDirectory(new File(filePath));

}


/** * 清除本應用所有的數據 * * @param context * @param filepath */

public static void cleanApplicationData(Context context, String... filepath) {

cleanInternalCache(context);

cleanExternalCache(context);

cleanDatabases(context);

cleanSharedPreference(context);

cleanFiles(context);

for (String filePath : filepath) {

cleanCustomCache(filePath);

}

}


/** * 刪除方法 這里只會刪除某個文件夾下的文件,如果傳入的directory是個文件,將不做處理 * * @param directory */

private static void deleteFilesByDirectory(File directory) {

if (directory != null && directory.exists() && directory.isDirectory()) {

for (File item : directory.listFiles()) {

item.delete();

}

}

}

}

⑵ 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 清除緩存功能如何實現

Android清除本地數據緩存代碼:

/* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除內/外緩存,清除資料庫,清除sharedPreference,清除files和清除自定義目錄 */
import java.io.File;

import android.content.Context;
import android.os.Environment;
/** * 本應用數據清除管理器 */

public class DataCleanManager {
/** * 清除本應用內部緩存(/data/data/com.xxx.xxx/cache) * * @param context */
public static void cleanInternalCache(Context context) {
deleteFilesByDirectory(context.getCacheDir());
}
/** * 清除本應用所有資料庫(/data/data/com.xxx.xxx/databases) * * @param context */

public static void cleanDatabases(Context context) {
deleteFilesByDirectory(new File("/data/data/"
+ context.getPackageName() + "/databases"));
}
/**

* * 清除本應用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) * * @param
* context
*/
public static void cleanSharedPreference(Context context) {
deleteFilesByDirectory(new File("/data/data/"
+ context.getPackageName() + "/shared_prefs"));
}
/** * 按名字清除本應用資料庫 * * @param context * @param dbName */

public static void cleanDatabaseByName(Context context, String dbName) {
context.deleteDatabase(dbName);
}
/** * 清除/data/data/com.xxx.xxx/files下的內容 * * @param context */

public static void cleanFiles(Context context) {
deleteFilesByDirectory(context.getFilesDir());
}
/**

* * 清除外部cache下的內容(/mnt/sdcard/android/data/com.xxx.xxx/cache) * * @param
* context
*/
public static void cleanExternalCache(Context context) {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
deleteFilesByDirectory(context.getExternalCacheDir());
}
}
/** * 清除自定義路徑下的文件,使用需小心,請不要誤刪。而且只支持目錄下的文件刪除 * * @param filePath */

public static void cleanCustomCache(String filePath) {
deleteFilesByDirectory(new File(filePath));
}
/** * 清除本應用所有的數據 * * @param context * @param filepath */

public static void cleanApplicationData(Context context, String... filepath) {
cleanInternalCache(context);
cleanExternalCache(context);
cleanDatabases(context);
cleanSharedPreference(context);
cleanFiles(context);
for (String filePath : filepath) {
cleanCustomCache(filePath);
}
}
/** * 刪除方法 這里只會刪除某個文件夾下的文件,如果傳入的directory是個文件,將不做處理 * * @param directory */

private static void deleteFilesByDirectory(File directory) {
if (directory != null && directory.exists() && directory.isDirectory()) {
for (File item : directory.listFiles()) {
item.delete();
}
}
}
}

主要功能清除內/外緩存,清除資料庫,清除sharedPreference,清除files和清除自定義目錄

⑷ android怎麼讓webview里的資源訪問本地緩存

android讓webview里的資源訪問本地緩存
繼承並實現一個ContentProvider
package
com.packagename.provider;
public class MyProvider extends ContentProvider {

@Override
public ParcelFileDescriptor openFile(Uri uri, String
mode){
URI fileURI = URI.create( "file://" + uri.getPath()
);
File file = new File( fileURI );

ParcelFileDescriptor parcel = null;
try {
parcel =
ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);

} catch (FileNotFoundException e) {
Log.e( TAG, "Error finding: "
+ fileURI + "\n" + e.toString() );
}

return
parcel;
}
}

注冊AndroidManifest.xml
<provider

android:name=".provider.MyProvider"

android:authorities="com.packagename" />

⑸ 如何為Android緩存數據到本地

緩存數據到本地有三種方式:
1:通過文件File方式;
2:通過SQLite資料庫的方式;
3:通過shareprefences

⑹ android webview 怎麼使用本地緩存

android
webview使用本地緩存的話,思路如下:
定義一個離線下載的服務Service
啟動後台服務Service來執行非同步下載
存儲到本地資料庫中
每一次載入url之前,先判斷資料庫是否存在緩存內容
5.如果存在緩存,優先載入本地緩存,如果不存在,才執行聯網請求

⑺ 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()方法,如圖所示。
根據不同存入數據,調用不同的方法取數據

⑻ Android緩存處理和清除數據,清除緩存,一鍵清理的區別

清除數據、清除緩存、一鍵清理的區別
清除數據
  清除數據主要是清除用戶配置,比如SharedPreferences、資料庫等等,這些數據都是在程序運行過程中保存的用戶配置信息,清除數據後,下次進入程序就和第一次進入程序時一樣;
清除緩存
  緩存是程序運行時的臨時存儲空間,它可以存放從網路下載的臨時圖片,從用戶的角度出發清除緩存對用戶並沒有太大的影響,但是清除緩存後用戶再次使用該APP時,由於本地緩存已經被清理,所有的數據需要重新從網路上獲取。
一鍵清理
  一鍵清理是系統級別的功能,它主要是殺後台進程,以達到釋放內存的目的。

⑼ android系統怎麼清除緩存

清除應用數據和緩存有以下幾種方式: 進入手機設置>應用程序>已經安裝的程序,找到想清除的程序,選擇清除應用數據和緩存即可。 可以使用安全軟體(例如:手機管家)對手機進行一鍵清除軟體緩存和垃圾,減少程序的佔用,提高手機速度。

⑽ Android 的三級緩存指

網路載入,不優先載入,速度慢,浪費流量
本地緩存,次優先載入,速度快
內存緩存,優先載入,速度最快
首次載入Android App時,肯定要通過網路交互來獲取圖片,之後我們可以將圖片保存至本地SD卡和內存中,之後運行APP時,優先訪問內存中的圖片緩存,若內存中沒有,則載入本地SD卡中圖片,最後選擇訪問網路。

熱點內容
使用mysql資料庫 發布:2023-01-29 18:20:32 瀏覽:181
如何搭建ftp列印機 發布:2023-01-29 18:20:26 瀏覽:874
c程序設計語言網盤 發布:2023-01-29 18:18:42 瀏覽:289
安卓11有什麼特色 發布:2023-01-29 18:18:37 瀏覽:967
Labview實例編程 發布:2023-01-29 18:18:34 瀏覽:983
nginx配置訪問url 發布:2023-01-29 18:15:35 瀏覽:543
matlab實時編譯器怎麼打開 發布:2023-01-29 18:15:34 瀏覽:928
linuxpython安裝路徑 發布:2023-01-29 18:12:56 瀏覽:583
致享配置低怎麼樣自己加裝 發布:2023-01-29 18:09:19 瀏覽:49
java註解繼承 發布:2023-01-29 18:08:24 瀏覽:698