Android清除缓存功能来实现
生活随笔
收集整理的這篇文章主要介紹了
Android清除缓存功能来实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們都知道在Android的設置->應用程序中能夠查看應用程序的相關信息,當中有一個功能是清除緩存。
最后執行的結果:
如圖:
怎么實現這些功能呢,從Android的setting源代碼中能夠得到相關信息。
實現例如以下:
Java代碼:
package com.wang.clearcache;import java.lang.reflect.Method; import android.os.Bundle; import android.os.RemoteException; import android.app.Activity; import android.content.pm.IPackageStatsObserver; import android.content.pm.PackageManager; import android.content.pm.PackageStats;public class MainActivity extends Activity {private PackageManager pm;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pm = getPackageManager();//反射try {Method method = PackageManager.class.getMethod("getPackageSizeInfo", new Class[]{String.class,IPackageStatsObserver.class});method.invoke(pm, new Object[]{"com.wang.clearcache",new IPackageStatsObserver.Stub() {@Overridepublic void onGetStatsCompleted(PackageStats pStats, boolean succeeded)throws RemoteException {long cachesize = pStats.cacheSize;long codesize = pStats.codeSize;long datasize = pStats.dataSize;System.out.println("cachesize:"+ cachesize);System.out.println("codesize:"+ codesize);System.out.println("datasize"+ datasize);}}});} catch (Exception e) {e.printStackTrace();}} }由于得到緩存信息須要增加android.permission.GET_PACKAGE_SIZE的權限
Androidmainifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.wang.clearcache"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="17" /><uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.wang.clearcache.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest></pre><pre name="code" class="java">由于使用在代碼中使用了PackageManager的getPackageSizeInfo這個函數。可是這種方法是不正確外公開的函數,全部我們須要使用發射來調用這個函數,在該方法的內部回調了onGetStatsCompleted(PackageStats pStats, boolean succeeded)這種方法,通過該方法的pStats參數能夠得到應用的緩存,數據緩存,代碼容量緩存,在使用的過程中須要用到系統的aidl文件IPackageStatsObserver:
PackageStats:
最后執行的結果:
源代碼地址下載:
http://download.csdn.net/detail/wangbiaohome/8026535
版權聲明:本文博客原創文章,博客,未經同意,不得轉載。
總結
以上是生活随笔為你收集整理的Android清除缓存功能来实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程浅谈
- 下一篇: 请教大家,如何使用sed命令,替换文件指