Почему размер приложения Android в сведениях о приложении больше фактического размера APK? ⇐ Android
Почему размер приложения Android в сведениях о приложении больше фактического размера APK?
Я создаю APK-файл в пользовательскую прошивку, а затем прошиваю его на свое устройство. Размер APK 99M, но он отображается в настройках->Информация о приложении->Хранилище->Размер приложения составляет 214M, он намного больше размера APK. Я вижу исходный код getAppSize здесь: https://cs.android.com/android/platform ... pv=0;bpt=1 он позвонит:
if (flags & FLAG_USE_QUOTA && appId >= AID_APP_START && !ownsExternalStorage(appId)) { atrace_pm_begin("код"); for (const auto& codePath: codePaths) { Calculate_tree_size(codePath, &stats.codeSize, -1, multiuser_get_shared_gid (0, appId)); } atrace_pm_end(); atrace_pm_begin("квота"); CollectQuotaStats(uuidString, userId, appId, &stats, &extStats); atrace_pm_end(); } Функция CollectQuotaStats вызовет:
intsharedGid = multiuser_get_shared_gid(0, appId); если (sharedGid != -1) { if ((space = GetOccupiedSpaceForGid(uuid,sharedGid)) != -1) { статистика->codeSize += пробел; } } Здесь какое-то приложение вернет ноль, какое-то приложение вернет число больше 0. Итак, я хочу знать, почему какое-то приложение возвращает число больше 0?
Я прочитал эту ссылку и пытаюсь найти причину
https://source.android.com/docs/core/st ... s?hl=zh-cn https://android.stackexchange.com/quest ... e-disabled
Я создаю APK-файл в пользовательскую прошивку, а затем прошиваю его на свое устройство. Размер APK 99M, но он отображается в настройках->Информация о приложении->Хранилище->Размер приложения составляет 214M, он намного больше размера APK. Я вижу исходный код getAppSize здесь: https://cs.android.com/android/platform ... pv=0;bpt=1 он позвонит:
if (flags & FLAG_USE_QUOTA && appId >= AID_APP_START && !ownsExternalStorage(appId)) { atrace_pm_begin("код"); for (const auto& codePath: codePaths) { Calculate_tree_size(codePath, &stats.codeSize, -1, multiuser_get_shared_gid (0, appId)); } atrace_pm_end(); atrace_pm_begin("квота"); CollectQuotaStats(uuidString, userId, appId, &stats, &extStats); atrace_pm_end(); } Функция CollectQuotaStats вызовет:
intsharedGid = multiuser_get_shared_gid(0, appId); если (sharedGid != -1) { if ((space = GetOccupiedSpaceForGid(uuid,sharedGid)) != -1) { статистика->codeSize += пробел; } } Здесь какое-то приложение вернет ноль, какое-то приложение вернет число больше 0. Итак, я хочу знать, почему какое-то приложение возвращает число больше 0?
Я прочитал эту ссылку и пытаюсь найти причину
https://source.android.com/docs/core/st ... s?hl=zh-cn https://android.stackexchange.com/quest ... e-disabled
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение