我想知道函数 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
关于java - 为什么这些函数是抽象的,到哪里去找它们的主体(具体实现)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34460440/