Разница между ApplicationInfo и PackageInfo?
У меня есть несколько общих вопросов о классах ApplicationInfo и PackageInfo. Вот они:
- Может кто-то описать разницу между ApplicationInfo и
PackageInfo?
- Как они соотносятся друг с другом?
- В каких случаях используется ApplicationInfo и когда используется PackageInfo?
Спасибо за помощь!
EDIT:
Прежде всего, прежде чем публиковать такой вопрос, я прочитал официальную документацию и отправил в Google. Вот некоторые дополнительные вопросы, которые мне непонятно. Извините, возможно, я не спросил их надлежащим образом:
- PackageInfo может иметь объект ApplicationInfo со значением NULL. Когда это
возможно? (Я предполагаю, что это связано с удаленным
пакеты)
- ApplicationInfo содержит uid приложения. Возможно ли, что
PackageInfo не имеет uid (когда ApplicationInfo имеет значение null?).
Итак, такие вопросы. Я не понимаю эти соединения.
Ответы
Ответ 1
-
Может кто-нибудь описать разницу между ApplicationInfo и
PackageInfo?
PackageInfo представляет весь AndroidManifest.xml.ApplicationInfo - это поле/атрибут PackageInfo, ссылающийся только на тег приложения. Обратитесь к этому.
-
Как они соотносятся друг с другом?
Как я уже говорил, ApplicationInfo фактически является атрибутом/полем PackageInfo, который сам по себе является сложным объектом и имеет свои собственные методы/поля.
-
В каких случаях используется ApplicationInfo и когда используется PackageInfo?
Чтобы получить доступ к информации в теге приложения, которая может быть связана с услугами или действиями или широковещательными приемниками, мы используем ApplicationInfo.Data, относящуюся к остальной части AndroidManifest.xml, можно получить с помощью других полей/методов в классе PackageInfo
Ответ 2
PackageInfo содержит ApplicationInfo (PackageInfo.applicationInfo
).
Информация о пакете - это вся ваша информация из вашего файла манифеста, ApplicaitonInfo - это информация из тега <application>
в вашем манифесте.
Когда они используются? это зависит от того, какую информацию вы ищете или какие методы API вы используете.