ApplicationThread.bindApplication()//创建Application-->AcitvityThread.bindApplication()-->Application.oncreate()//启动Activity-->ActivityStackSupervisor.attachApplicationLocked()-->ActivityStackSupervisor.realStartActivityLocked()-->ActivityThread.scheduleLaunchActivity()//进入UI线程-->handleLaunchActivity()--...
关键代码1处就是获得Activity的堆栈信息,我们继续看关键代码2 调用了realStartActivityLocked()方法,这方法也是之前《Android应用程序启动详解(一)之Android系统和Android应用的启动过程》中“从startActivity()到ActivityThread.main()流程源码分析”提到要先记住,这是也是从应用中启动Activity所调用的方法,请看源码: final...
按下桌面的程序快捷图标,启动应用程序的第一个Activity的过程,因此根Activity的启动过程也可以理解为应用程序的启动过程。 普通Activity的启动 程序内从一个Activity打开另外一个Activity的过程的启动。 一般情况下我们说的Activity的启动就是指第一种:根Activity的启动。所以我们就来分析根Activity的启动流程。 根Activity...
创建并初始化 Application和Activity ActivityThread的main()调用ActivityThread#attach(false)方法进行 Binder 通信,通知system_server进程执行ActivityManagerService#attachApplication(mAppThread)方法,用于初始化Application和Activity。 在system_server进程中,ActivityManagerService#attachApplication(mAppThread)里依次初始化了Appli...
接下来打开我们的IDE,创建一个名叫ActivityDemo的Android Application Project 工程默认已经为我们创建了一个Activity,现在我们手动添加一个名叫SecondActivity的类 点击finish完成SecondActivity类的创建。完了我们为这个Activity创建一个布局文件activity_second 点finish完成布局的创建。
注释1:通知ActivityThread启动application; 注释2:调用ActivityStackSupervisor,启动第一个Activity; 3.2ActivityStackSupervisor 启动Activity: booleanattachApplicationLocked(ProcessRecordapp)throwsRemoteException{//获取应用的进行名称finalStringprocessName=app.processName;booleandidSomething=false;for(intdisplayNdx=mActivityDi...
Android中Application类用法 Application类 Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息。 Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(singleton)模式的一个类。
4. 启动Activity 经过前两个步骤之后, 系统已经拥有了该application的进程. 后面的调用顺序就是普通的从一个已经存在的进程中启动一个新进程的activity了。 实际调用方法是realStartActivity(),是下面要重点阐述的内容。 二、Activity的启动流程 这里各个API版本的启动稍微有一点点差别,但是主要流程还是不变的。这里以...
淘宝app未开启过,所以 AMS 启动新的进程,并且在新进程中创建 ActivityThread 对象,执行其中的 main 函数方法。 淘宝app主线程启动完毕后通知 AMS,并传入 applicationThread 以便通讯。 AMS 通知淘宝绑定 Application 并启动 MainActivity。 淘宝启动 MainActivitiy,并且创建和关联 Context,最后调用 onCreate 方法。
<application android:icon="@drawable/YOUR_ICON" <!-- THIS ICON(IMAGE) WILL BE SHOWN IN YOUR APPS --> android:label="MY APP NAME " > <!-- HERE LABEL(APP NAME) --> <activity android:name=".application's starting activity" <!-- (.)dot means current dir, if your activity is in...