当前位置: 首页 > news >正文

Android AMS——创建Application(七)

        与在 App 内部启动一个 Activity 的不同之处在于,点击桌面 Launcher 首次启动一个应用程序的时候,会先去创建一个该应用程序对应的进程,然后执行 ActivityThread 的 main() 方法去创建该应用对应的 Application,然后再去启动首页 Activity。前面已经分析了进程的创建和启动首页 activtiy,这一篇文章我们对创建该应用对应的 Application 单独分析。

一、创建Application

        前面分析通过 Process 里的 start 创建新的进程,AMS 通过 Zygote 创建应用进程,应用进程启动完成后通知 AMS,AMS 再通知应用创建 Application 对象。而 ActivityThread 类的 main() 函数是应用的入口函数。

1、ActivityThread

源码位置:/frameworks/base/core/java/android/app/ActivityThread.java

main

public static void main(String[] args) {……//创建一个主线程的looperLooper.prepareMainLooper();……ActivityThread thread = new ActivityThread();// 创建applicationthread.attach(false, startSeq);……Looper.loop();throw new RuntimeException("Main thread loop unexpectedly exited");
}

attach

http://www.lryc.cn/news/178236.html

相关文章:

  • html 边缘融合加载
  • ElasticSearch - 在 微服务项目 中基于 RabbitMQ 实现 ES 和 MySQL 数据异步同步(考点)
  • Springboot+vue的企业人事管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
  • 初识Java 11-1 函数式编程
  • 【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6HDP3.3.1问题总结
  • 李宏毅机器学习第一课(结尾附作业模型详细分析)
  • 对日项目工作总结
  • 设计模式探索:从理论到实践的编码示例 (软件设计师笔记)
  • 【内网穿透】在Ubuntu搭建Web小游戏网站,并将其发布到公网访问
  • 在cesuim上展示二维模型
  • c/c++中如何输入pi
  • python爬虫:JavaScript 混淆、逆向技术
  • Vue error:0308010C:digital envelope routines::unsupported
  • gitee 远程仓库操作基础(一)
  • DRM全解析 —— ADD_FB2(0)
  • 01Redis的安装和开机自启的配置
  • 进入IT行业:选择前端开发还是后端开发?
  • Java集成Onlyoffice以及安装和使用示例,轻松实现word、ppt、excel在线编辑功能协同操作,Docker安装Onlyoffice
  • 编程面试_动态规划
  • ip地址可以精确定位吗
  • Xamarin体验:使用C#开发iOS/Android应用
  • 聊聊druid连接池的监控
  • CentOS 7 安装 Docker 的详细步骤
  • 竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别
  • 数据结构之【泛型】
  • 华为ac无线侧命令行配置思路和步骤
  • 十六)Stable Diffusion教程:出图流程化
  • SpringBoot全局异常处理源码
  • 设计模式——7. 装饰者模式
  • 安卓玩机-----反编译apk 修改apk 去广告 去弹窗等操作中的一些常识