[pm/metrics] add apk size in the log
Sum up all apk sizes in the code path and record in the log.
Test: atest android.content.pm.cts.PackageManagerShellCommandTest#testSplitsInstallStdIn
Test: out/host/linux-x86/bin/statsd_testdrive 263
event_metrics {
data {
elapsed_timestamp_nanos: 1543983836620
atom {
package_installer_v2_reported {
is_incremental: true
package_name: ""
duration_millis: 327
return_code: 1
size: 2512345
}
}
}
}
BUG: 152913040
Change-Id: Idde0adb6b639163627c092ed248631edfba2e952
Change-Id: I0eaf226513ee5a1b5f73726f4480c6ee73210b0d
This commit is contained in:
@@ -9327,6 +9327,8 @@ message PackageInstallerV2Reported {
|
||||
// Return_code 1 indicates success.
|
||||
// For full list, see frameworks/base/core/java/android/content/pm/PackageManager.java
|
||||
optional int32 return_code = 4;
|
||||
// Total size of the APKs installed for this package
|
||||
optional int64 apks_size_bytes = 5;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1812,7 +1812,33 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
|
||||
isIncrementalInstallation(),
|
||||
packageNameToLog,
|
||||
currentTimestamp - createdMillis,
|
||||
returnCode);
|
||||
returnCode,
|
||||
getApksSize());
|
||||
}
|
||||
|
||||
private long getApksSize() {
|
||||
final PackageSetting ps = mPm.getPackageSetting(mPackageName);
|
||||
if (ps == null) {
|
||||
return 0;
|
||||
}
|
||||
final File apkDirOrPath = ps.codePath;
|
||||
if (apkDirOrPath == null) {
|
||||
return 0;
|
||||
}
|
||||
if (apkDirOrPath.isFile() && apkDirOrPath.getName().toLowerCase().endsWith(".apk")) {
|
||||
return apkDirOrPath.length();
|
||||
}
|
||||
if (!apkDirOrPath.isDirectory()) {
|
||||
return 0;
|
||||
}
|
||||
final File[] files = apkDirOrPath.listFiles();
|
||||
long apksSize = 0;
|
||||
for (int i = 0; i < files.length; i++) {
|
||||
if (files[i].getName().toLowerCase().endsWith(".apk")) {
|
||||
apksSize += files[i].length();
|
||||
}
|
||||
}
|
||||
return apksSize;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user