a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

解析Android 如何獲得已安裝應用大小

2020-04-11 12:11:21
字體:
來源:轉載
供稿:網友
應用層面如何獲得已經安裝應用的大?。?BR>網上找了一下有兩種方法:
1、直接拿到data目錄下對應的包,然后用File.length()方法獲得。然后會發現和設置里顯示的大小不同。
2、通過反射調用設置里源碼的方法獲得PackageStats類的實例。
兩種方法都不想用...
后來自己找到解決辦法:
PackageManager類有個getPackageSizeInfo方法如下:
復制代碼 代碼如下:

public abstract void getPackageSizeInfo(String packageName,
            IPackageStatsObserver observer);

只是這個方法是hide的。
自己編譯一下的android2.3的Framework框架,把jar包拷出來,只需要把框架導入到library,設置在默認的android的lib之上遍可以優先使用自己編譯的框架了,其實也就是讓自己應用層能調用框架中的接口。
framework下載:點擊此處
下載好后,通過添加lib后把classes.jar添加到此lib中,如圖:






然后將自己的lib up到sdk提供的Android2.3.3之上。注意不能直接使用Add External JARs直接導入。




下面就是直接使用方法了。

復制代碼 代碼如下:

pm.getPackageSizeInfo(packageInfo.packageName,
     new IPackageStatsObserver.Stub() {
      public void onGetStatsCompleted(PackageStats stats,
        boolean succeeded) {
       Log.v("King", stats.codeSize);
       Log.v("King", stats.dataSize);
       Log.v("King", stats.cacheSize);
      }
     });

第一個參數是包名,想必大家都能拿到。
第二個參數是實現AIDL生成的JAVA接口的匿名內部類。在回調方法里即可處理程序大小數據。
stats.codeSize:應用程序大小
stats.dataSize:數據大小
stats.cacheSize:緩存大小
一般大家可能都是用listView去顯示每個應用的大小,而調用getPackageSizeInfo方法是不能立刻拿到值的,所以要和其他數據異步顯示。

可以通過handler講數據發送出去后,然后調用Adapter的notifyDataSetChanged()方法更新顯示應用大小。
也許你還想點擊每一項可以可以直接跳轉到設置里的應用管理界面,而不自己去寫卸載、清除緩存等方法。設置源碼的方法如下,可以搬過來照樣用:
復制代碼 代碼如下:

Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,Uri.fromParts("package",包名 ,null));
// start new activity to display extended information
startActivityForResult(intent, 1);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩精品一区在线 | 九九久久精品 | 精品国产污网站污在线观看15 | 欧美男人的天堂 | 欧美国产精品一区二区 | 亚洲精品一区二区在线观看 | av一级久久 | 亚洲视频在线播放 | 6080亚洲精品一区二区 | 国产精品久久久久久 | 欧美在线视频播放 | 亚洲综合色视频在线观看 | 在线播放黄色 | 天堂资源av | 亚洲免费人成在线视频观看 | 欧美一区二区三区电影 | 国产一区欧美 | 亚洲欧美日韩高清 | 黄色片视频免费 | 欧美色图第一页 | www.99精品 | 中文字幕在线观看av | 欧洲一区二区视频 | 人人草视频在线观看 | 日韩欧美二区 | 青青草免费在线观看 | 韩日电影在线观看 | 国产一区二区三区久久久久久久久 | 日本免费www| 国产不卡在线视频 | 久在线 | 欧美在线网站 | 黄色毛片在线 | 精品国产乱码久久久久久久软件 | 久久精品99国产精品日本 | 国产精品一区视频 | 亚洲免费av片 | 国产精品视频二区不卡 | 国产成人精品亚洲7777 | 亚洲视频手机在线观看 | 日韩和欧美的一区二区 |