java - 为什么这些函数是抽象的,到哪里去找它们的主体(具体实现)?

标签 java android android-source

Screenshot

我想知道函数 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/

相关文章:

android - 如何在 Eclipse 中设置 Android CTS?

java - 我的 Java 程序 20-30 分钟后 CPU 使用率达到 80%

java - 获取 equals 函数中使用的所有实例字段的名称

android - 如何使用拉边手势调整 View 大小?

android - 如何在android中单击具有相应数据的不同字母时刷新水平布局

android - 尝试编译 AOSP 7.1.1 第 6 版时缺少 'libaudiopolicyservice_intermediates"?

安卓浏览器,这个菜单叫什么?

java - 如何使用 Java 流将两个数组合并到一个映射中?

java - 使用电话标准将字母转换为数字

android - Firebase 返回多个 ID,哪个是唯一的?