我想知道函数getPackageInfo的实现(因为我想知道它们所指的包存储在哪里),所以我去了this看源代码,但只找到了一个抽象方法.
public abstract PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException;
方法的实施在哪里?
最佳答案 getPackageInfo方法的实现在com.android.server.pm.PackageManagerService中
@Override
public PackageInfo getPackageInfo(String packageName, int flags, int userId) {
// reader
synchronized (mPackages) {
PackageParser.Package p = mPackages.get(packageName);
if (DEBUG_PACKAGE_INFO)
Log.v(TAG, "getPackageInfo " + packageName + ": " + p);
if (p != null) {
return generatePackageInfo(p, flags);
}
if((flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0) {
return generatePackageInfoFromSettingsLPw(packageName, flags, userId);
}
}
return null;
}
你可以看看here