美文网首页
2019-11-22

2019-11-22

作者: ncwuer | 来源:发表于2019-11-22 16:53 被阅读0次

一、广播分类:

    1.标准广播

    2.有序广播

    3.系统广播

    4.动/静态广播

    5.内部广播

    6.粘性广播

二、广播涉及源文件:(待编辑)

PackageManagerService

三、广播注册:

1.静态注册

image

设备重启后,PackageManagerService首先开始扫描。贴代码

SystemServer.java启动PackageManagerService

    pm = PackageManagerService.main(context, installer,

    factoryTest != SystemServer.FACTORY_TEST_OFF,

    onlyCore);

PackageManagerService通过单例返回一个IPackageManager,然后构造函数中:

    File preinstallAppDir = new File(Environment.getRootDirectory(), "preinstall");

        File preinstallAppDelDir = new File(Environment.getRootDirectory(),

                "preinstall_del");

        if (!SystemProperties.getBoolean("persist.sys.preinstalled", false)) {

            // mPreInstallObserver = new AppDirObserver(

            // mPreinstallAppDir.getPath(), OBSERVER_EVENTS, false);

            // mPreInstallObserver.startWatching();

            if (preinstallAppDir.exists()) {

                // scanDirLI(mPreinstallAppDir, 0, scanMode, 0);

                copyPackagesToAppInstallDir(preinstallAppDir);

            }

            // mPreInstallDelObserver = new AppDirObserver(

            // mPreinstallAppDelDir.getPath(), OBSERVER_EVENTS, false);

            // mPreInstallDelObserver.startWatching();

            if (preinstallAppDelDir.exists()) {

                copyPackagesToAppInstallDir(preinstallAppDelDir);

    deletePreinstallDir(preinstallAppDelDir);

    }

    SystemProperties.set("persist.sys.preinstalled", "1");

    }

开始拷贝preinstall目录中的apk开始复制到install目录进行安装
2.动态广播

3.广播发送

相关文章

网友评论

      本文标题:2019-11-22

      本文链接:https://www.haomeiwen.com/subject/peeqwctx.html