mishkin
mishkin

Reputation: 6242

Who provides implementation(s) of the PackageManager class?

I am looking at source code for the PackageManager class and it is abstract as well as all the methods. Are manufacturers supposed to write a real implementation for it, or I am missing something?

Upvotes: 8

Views: 4975

Answers (4)

zmeeagain
zmeeagain

Reputation: 559

For anyone stumbling upon this old question, go to the source (android.googlesource.com) https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/pm/PackageManagerService.java, grepcode is long gone.

Upvotes: 2

Alvaro Gutierrez Perez
Alvaro Gutierrez Perez

Reputation: 3887

It is ApplicationPackageManager, and it is created in ContextImpl.getPackageManager().

Upvotes: 6

RamboWang
RamboWang

Reputation: 272

The real implementation for the PackageManager is PackageManagerService located at frameworks/base/services/java/com/android/server/

You can find the source code here in the GrepCode.

Upvotes: 9

Samuh
Samuh

Reputation: 36484

PackageManager is abstract and a concrete implementation needs to be provided in order to invoke instance methods. An implementation of this class can be found as a package private static class of ApplicationContext which itself is available in ContextImpl. (For source code see here). Note that this implementation of PackageManager is final and so cannot be overriden.

There is also a MockPackageManager implementation that might interest you.

Upvotes: 7

Related Questions