android 工程模式的启动流程
时间: 2024-06-12 11:10:14 浏览: 20
Android 工程模式的启动流程如下:
1. 系统启动后,会先启动 init 进程,init 进程会读取 init.rc 文件,启动 Zygote 进程。
2. Zygote 进程是所有应用进程的孵化器,它会预加载常用的 Java 类和资源,以提高应用进程的启动速度。
3. 当需要启动一个应用时,Zygote 进程会 fork 出一个新的应用进程,并在应用进程中执行 ActivityThread.main() 方法。
4. ActivityThread.main() 方法会初始化 Looper、创建 Application、启动 Activity 等。
5. 应用进程启动完成后,会通过 Binder 机制与系统服务进行通信,获取各种资源和服务。
相关问题
Android启动模式
Android启动模式是指在多个Activity跳转的过程中,通过设置不同的启动模式来决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。常见的启动模式有以下四种:
1. standard(标准模式):每次启动Activity都会创建一个新的实例,并放入任务栈中。
2. singleTop(栈顶复用模式):如果要启动的Activity已经位于任务栈的栈顶,那么不会创建新的实例,而是重用栈顶的实例,并调用它的onNewIntent()方法。如果要启动的Activity不在栈顶,那么会创建新的实例并放入任务栈中。
3. singleTask(栈内复用模式):如果要启动的Activity已经存在于任务栈中,那么会重用这个实例,并把这个实例以上的所有Activity全部出栈,使得该实例位于栈顶。如果要启动的Activity不存在于任务栈中,那么会创建新的实例并放入任务栈中。
4. singleInstance(单例模式):在一个新的任务栈中创建该Activity的实例,并且这个任务栈中只有这一个Activity实例。这种启动模式一般用于需要和其他应用程序分离的Activity,例如闹钟提醒等。
Android的启动模式
Android的启动模式决定了Activity的创建和使用方式。默认情况下,Activity的启动模式是标准模式。每次启动一个Activity都会创建一个新的实例入栈。除了标准模式,Android还提供了其他几种启动模式,包括单例模式、单任务模式、单顶部模式和无历史记录模式。
- 单例模式(singleTop):如果要启动的Activity已经处于栈顶,那么不会创建新的实例,而是重用已存在的实例。否则,会创建一个新的实例。
- 单任务模式(singleTask):如果要启动的Activity已经存在于栈中,那么会将该Activity上面的所有Activity都销毁掉,使得该Activity成为栈顶。如果要启动的Activity不存在于栈中,则会创建一个新的实例。
- 单顶部模式(singleInstance):该模式下的Activity会独自使用一个栈,并且该栈只包含一个实例。其他应用程序的Activity不会放入该栈中。
通过在Manifest.xml文件中设置activity的launchMode属性或在intent中指定启动模式,可以指定Activity的启动模式。