/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.content.pm; import android.os.Parcel; import android.os.Parcelable; /** * implementation of PackageStats associated with a * application package. */ public class PackageStats implements Parcelable { /** Name of the package to which this stats applies. */ public String packageName; /** Size of the code (e.g., APK) */ public long codeSize; /** * Size of the internal data size for the application. (e.g., * /data/data/<app>) */ public long dataSize; /** Size of cache used by the application. (e.g., /data/data/<app>/cache) */ public long cacheSize; /** * Size of the secure container on external storage holding the * application's code. */ public long externalCodeSize; /** * Size of the external data used by the application (e.g., * <sdcard>/Android/data/<app>) */ public long externalDataSize; /** * Size of the external cache used by the application (i.e., on the SD * card). If this is a subdirectory of the data directory, this size will be * subtracted out of the external data size. */ public long externalCacheSize; /** Size of the external media size used by the application. */ public long externalMediaSize; /** Size of the package's OBBs placed on external media. */ public long externalObbSize; public static final Parcelable.Creator<PackageStats> CREATOR = new Parcelable.Creator<PackageStats>() { public PackageStats createFromParcel(Parcel in) { return new PackageStats(in); } public PackageStats[] newArray(int size) { return new PackageStats[size]; } }; public String toString() { final StringBuilder sb = new StringBuilder("PackageStats{"); sb.append(Integer.toHexString(System.identityHashCode(this))); sb.append(" packageName="); sb.append(packageName); sb.append(",codeSize="); sb.append(codeSize); sb.append(",dataSize="); sb.append(dataSize); sb.append(",cacheSize="); sb.append(cacheSize); sb.append(",externalCodeSize="); sb.append(externalCodeSize); sb.append(",externalDataSize="); sb.append(externalDataSize); sb.append(",externalCacheSize="); sb.append(externalCacheSize); sb.append(",externalMediaSize="); sb.append(externalMediaSize); sb.append(",externalObbSize="); sb.append(externalObbSize); return sb.toString(); } public PackageStats(String pkgName) { packageName = pkgName; } public PackageStats(Parcel source) { packageName = source.readString(); codeSize = source.readLong(); dataSize = source.readLong(); cacheSize = source.readLong(); externalCodeSize = source.readLong(); externalDataSize = source.readLong(); externalCacheSize = source.readLong(); externalMediaSize = source.readLong(); externalObbSize = source.readLong(); } public PackageStats(PackageStats pStats) { packageName = pStats.packageName; codeSize = pStats.codeSize; dataSize = pStats.dataSize; cacheSize = pStats.cacheSize; externalCodeSize = pStats.externalCodeSize; externalDataSize = pStats.externalDataSize; externalCacheSize = pStats.externalCacheSize; externalMediaSize = pStats.externalMediaSize; externalObbSize = pStats.externalObbSize; } public int describeContents() { return 0; } public void writeToParcel(Parcel dest, int parcelableFlags){ dest.writeString(packageName); dest.writeLong(codeSize); dest.writeLong(dataSize); dest.writeLong(cacheSize); dest.writeLong(externalCodeSize); dest.writeLong(externalDataSize); dest.writeLong(externalCacheSize); dest.writeLong(externalMediaSize); dest.writeLong(externalObbSize); } }