2012-07-10 16 views
17

Tôi có một số câu hỏi chung về các lớp ApplicationInfo và PackageInfo. Dưới đây là:Sự khác biệt giữa ApplicationInfo và PackageInfo?

  1. Ai đó có thể mô tả sự khác biệt giữa ApplicationInfo và PackageInfo?
  2. Làm cách nào để chúng tương quan với nhau?
  3. Trong trường hợp nào ApplicationInfo được sử dụng và khi PackageInfo được sử dụng?

Cảm ơn sự giúp đỡ của bạn!

EDIT:

Trước hết, trước khi gửi bài như vậy một câu hỏi tôi đã đọc tài liệu chính thức và googled. Dưới đây là một số câu hỏi bổ sung không rõ ràng với tôi. Rất tiếc, có thể tôi đã không yêu cầu họ một cách thích hợp:

  1. PackageInfo có thể có đối tượng ApplicationInfo với giá trị NULL. Khi nào thì là có thể? (Tôi đoán điều này được kết nối với các gói đã gỡ cài đặt)
  2. ApplicationInfo chứa uid của ứng dụng. Có thể là PackageInfo không có uid (khi ApplicationInfo là null?).

Vì vậy, các loại câu hỏi này. Tôi không hiểu những kết nối này.

Trả lời

3

PackageInfo chứa ApplicationInfo (PackageInfo.applicationInfo).

Thông tin gói là tất cả thông tin của bạn từ tệp kê khai, ApplicaitonInfo là thông tin từ thẻ <application> trong tệp kê khai của bạn.

Khi chúng được sử dụng? nó phụ thuộc vào thông tin bạn đang tìm kiếm hoặc phương thức API nào bạn đang sử dụng.

+0

Xem cập nhật của tôi trong câu hỏi. – Yury

28
  1. Ai đó có thể mô tả sự khác biệt giữa ApplicationInfo và PackageInfo?

    PackageInfo đại diện cho toàn bộ AndroidManifest.xml.ApplicationInfo thực sự là một trường/thuộc tính của PackageInfo, chỉ tham chiếu đến thẻ ứng dụng. Tham khảo this.

  2. Làm cách nào để chúng tương quan với nhau?

    Như tôi đã đề cập, ApplicationInfo thực sự là một thuộc tính/trường của PackageInfo tự nó xảy ra là một đối tượng phức tạp và có các phương thức/trường riêng của nó.

  3. Trong trường hợp này, ApplicationInfo được sử dụng và khi sử dụng PackageInfo?

    Để truy cập thông tin trong thẻ ứng dụng có thể liên quan đến dịch vụ hoặc hành động hoặc người nhận phát, chúng tôi sử dụng ApplicationInfo.Data liên quan đến phần còn lại của AndroidManifest.Bạn có thể lấy xml thông qua các trường/phương thức khác trong lớp PackageInfo

+0

Xem cập nhật của tôi trong câu hỏi! – Yury

+0

Câu trả lời rất hay, do đó, Upvote. Tại sao câu trả lời này không được chọn? –