IPackageStatsObserverで取得が可能なようです。
ただ残念ながら非公開APIらしく、標準では取得が出来ないようなのでちょっと工夫が必要。
IPackageStatsObserverを使用する方法。
参考サイト リンク1、リンク2
IPackageStatsObserverを使えるようにする方法
- プロジェクトのsrcにandroid.content.pmのパッケージを作成する
- IPackageStatsObserver.aidlとPackageStats.aidlの2つのAIDLファイルをコピーして先のパッケージへ追加する
アプリのサイズを取得する方法
- AndroidManifest.xmlへ<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>を追加する
- 以下のコードで取得が可能
Method getPackageSizeInfo =
packageManager.getClass().getMethod("getPackageSizeInfo",
String.class,
IPackageStatsObserver.class);
getPackageSizeInfo.invoke(packageManager, info.packageName, new IPackageStatsObserver.Stub() {
@Override
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)
throws RemoteException {
Log.i("AppSize", "codeSize: " + pStats.codeSize);
}
});