電話にインストールされているアプリケーションのリストを計算し、アプリケーション名を取得する Android サービスを作成しました。
コードは大まかに次のようになります。
List<PackageInfo> appListInfo = pm.getInstalledPackages(0);
for (PackageInfo p : appListInfo) { p.applicationInfo.loadLabel(pm).toString()); }
私が観察したことは、loadLabel
すべてのオブジェクトで関数を呼び出すとpackageInfo
、メモリ消費量が大幅に増加することです。私のサービスは通常 3 ~ 5 MB かかり、このコードが実行されると 16 MB に急増します。
ただし、このメモリは最終的に (GC の実行時に) 解放され、サービスは 3 ~ 5 MB に戻ります。このスパイクを回避して目標を達成できるかどうかを知りたいです。
これが欲しい理由は、このアプリを軽量として販売することを計画しているためです。これが続くと不可能です。