2012-07-10 20 views
17

Mam kilka ogólnych pytań dotyczących klas ApplicationInfo i PackageInfo. Oto one:Różnica między ApplicationInfo a PackageInfo?

  1. Czy ktoś może opisać różnicę między ApplicationInfo a PackageInfo?
  2. W jaki sposób korelują one ze sobą?
  3. W jakich przypadkach wykorzystywana jest ApplicationInfo i kiedy używana jest PackageInfo?

Dziękuję za pomoc!

EDIT:

Przede wszystkim, przed wysłaniem takie pytanie Czytałem oficjalnej dokumentacji i google. Oto kilka dodatkowych pytań, które są dla mnie niejasne. Przepraszam, może nie zapytałem ich odpowiednio:

  1. PackageInfo może mieć obiekt ApplicationInfo z wartością NULL. Kiedy jest to możliwe? (Chyba jest to związane z odinstalowanymi pakietami)
  2. ApplicationInfo zawiera identyfikator aplikacji. Czy jest możliwe, że PackageInfo nie ma uid (gdy ApplicationInfo ma wartość null?).

Takiego rodzaju pytania. Nie rozumiem tych połączeń.

Odpowiedz

3

PackageInfo zawiera ApplicationInfo (PackageInfo.applicationInfo).

Informacje o pakiecie to wszystkie informacje z pliku manifestu, ApplicaitonInfo to informacje z tagu <application> w manifeście.

Kiedy są używane? zależy to od tego, jakich informacji szukasz, lub od metod API, z których korzystasz.

+0

Zobacz moją aktualizację w pytaniu. – Yury

28
  1. Czy ktoś może opisać różnicę między ApplicationInfo i PackageInfo?

    PackageInfo reprezentuje cały AndroidManifest.xml.ApplicationInfo jest w rzeczywistości polem/atrybutem PackageInfo, odnosząc się tylko do tagu aplikacji. Patrz this.

  2. W jaki sposób korelują one ze sobą?

    Jak już wspomniałem ApplicationInfo jest w rzeczywistości atrybutem/polem PackageInfo, który sam w sobie jest złożonym obiektem i ma własne metody/pola.

  3. W jakich przypadkach wykorzystywana jest ApplicationInfo i kiedy używana jest PackageInfo?

    Aby uzyskać dostęp do informacji w obrębie znacznika aplikacji, które mogą być związane z usługami lub aktami lub odbiorcami, używamy ApplicationInfo.Data powiązanego z resztą AndroidManifest.xml można uzyskać za pośrednictwem innych pól/metod w klasie PackageInfo

+0

Zobacz moją aktualizację w pytaniu! – Yury

+0

Bardzo dobra odpowiedź, więc Upvote. Dlaczego ta odpowiedź nie jest wybrana? –