2012-07-10 3 views
17

У меня есть несколько общих вопросов о классах ApplicationInfo и PackageInfo. Вот они:Разница между ApplicationInfo и PackageInfo?

  1. Может ли кто-нибудь описать разницу между ApplicationInfo и PackageInfo?
  2. Как они соотносятся друг с другом?
  3. В каких случаях используется ApplicationInfo и когда используется PackageInfo?

Благодарим за помощь!

EDIT:

Прежде всего, прежде чем отправлять такой вопрос, который я прочитал официальную документацию и гугле. Вот некоторые дополнительные вопросы, которые мне непонятно. Извините, возможно, я не спросил их соответственно:

  1. PackageInfo может иметь объект ApplicationInfo со значением NULL. Когда это возможно ? (Я предполагаю, что это связано с деинсталлированными пакетами )
  2. ApplicationInfo содержит uid приложения. Возможно ли, что PackageInfo не имеет uid (когда ApplicationInfo равно null?).

Так что такие вопросы. Я не понимаю эти связи.

ответ

3

PackageInfo содержит ApplicationInfo (PackageInfo.applicationInfo).

Информация о пакете - это вся ваша информация из вашего файла манифеста, ApplicaitonInfo - это информация из тега <application> в вашем манифесте.

Когда они используются? это зависит от того, какую информацию вы ищете или какие методы API вы используете.

+0

См. мое обновление в вопросе. – Yury

28
  1. Может кто-то описать разницу между ApplicationInfo и PackageInfo?

    PackageInfo представляет собой весь AndroidManifest.xml.ApplicationInfo - фактически поле/атрибут PackageInfo, ссылающийся только на тег приложения. См. this.

  2. Как они соотносятся друг с другом?

    Как я уже говорил, ApplicationInfo фактически является атрибутом/полем PackageInfo, который сам по себе является сложным объектом и имеет свои собственные методы/поля.

  3. В каких случаях используется ApplicationInfo и когда используется PackageInfo?

    Для доступа к информации в теге приложения, которая может быть связана с услугами или действиями или широковещательными приемниками, мы используем ApplicationInfo.Data, относящуюся к остальной части AndroidManifest.xml можно получить с помощью других полей/методов в поле PackageInfo

+0

См. Мое обновление в вопросе! – Yury

+0

Очень хороший ответ, поэтому Upvote. Почему это не выбрано? –

 Смежные вопросы

  • Нет связанных вопросов^_^