android 启动新 app 的activity 新进程的创建

本文详细介绍了在Android中如何启动一个新进程并创建Activity,涉及到process的启动过程,包括设置debug标志、确定CPU类型、配置文件填充,以及通过Zygote孵化新进程来执行Activity的main函数,从而启动新的应用程序进程。
摘要由CSDN通过智能技术生成

上面是说到 activity的启动,看到进程启动的地方就结束了。
现在看看process的启动过程

  final ProcessRecord startProcessLocked(String processName, ApplicationInfo info,
            boolean knownToBeDead, int intentFlags, String hostingType, ComponentName hostingName,
            boolean allowWhileBooting, boolean isolated, int isolatedUid, boolean keepIfLarge,
            String abiOverride, String entryPoint, String[] entryPointArgs, Runnable crashHandler) {
        long startTime = SystemClock.elapsedRealtime();
        ProcessRecord app;

   //app ==null的时候,是全新启动一个应用,上面的代码略过

        if (app == null) {
            checkTime(startTime, "startProcess: creating new process record");

 //根据上面 启动activity 读到的 ApplicationInfo 创建相应的processinfo
 //在系统的pkglist中 注册应用的packagename 等等,填写相应的uid 之类的信息。

            app = newProcessRecordLocked(info, processName, isolated, isolatedUid);
            if (app == null) {
                Slog.w(TAG, "Failed making new process record for "
                        + processName + 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值