安卓手机软件怎么打开,安卓手机链接怎么直接打开软件

首页 > 实用技巧 > 作者:YD1662023-11-11 14:20:09

通知AMS已经暂停,启动新的App

暂停当前Activity后,通知AMS已经暂停,可以继续AMS还没完成的事,启动新的App,主要是调用了Process.start函数,通过LocalSocket和ZygoteServer通信,fork一个新的进程。注意这里使用的是Socket通信,并不是Binder。因为zygote进程内加载了preload()方法中的所有资源,当需要fork新进程时,采用copy on write技术,所以fork出的新进程可以直接使用预加载的资源,并调用ZygoteInit.nativeZygoteInit()执行Binder驱动程序初始化的相关工作了,才使得进程中的Binder对象能够顺利地进行Binder进程间通信,最后执行新进程中的android.app.ActivityThread类中的Main函数,在main函数调用了attach,接着又调用AMS的attachApplication,用于生命周期的回调。

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(5)

通过Binder驱动程序,执行流程又回到AMS中,调用ActivityManagerService的attachApplication函数中,主要做了2件事:1、通过Binder驱动程序调用ApplicationThread的bindApplication。 2、通过Binder驱动调用ApplicationThread的scheduleLaunchActivity。

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(6)

通过Binder驱动程序调用ApplicationThread的bindApplication。然后利用mH.sendMessage最终会执行到ActivityThread中的handleBindApplication函数,在这个函数主要是创建了Application,并调用了attach和onCreate方法。

 创建Activity

通过Binder驱动程序调用ApplicationThread的scheduleLaunchActivity。然后利用mH.sendMessage最终会执行到ActivityThread中的handleLaunchActivity函数,在这个函数主要是创建了Activity,并调用了attach和onCreate等生命周期方法。

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(7)

调用performLaunchActivity,创建Activity,并调用onCreate,onStart,onPostCreate以及onRestoreInstanceState(分情况调用),接下来我们继续看:

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.