首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android之app启动流程(一)

    安卓应用的启动流程 直观上的操作: Android系统桌面->点击应用图标->启动App 不过在内部还是要进行许多工作的。先来了解下基础知识。...基础知识 启动进程相关 进程 介绍 Launcher进程 整个App启动流程的起点,负责接收用户点击屏幕事件,它其实就是一个Activity,里面实现了点击事件,长按事件,触摸等事件,可以这么理解,把Launcher...App进程 你要启动的App所运行的进程。...上某个应用图标 产生点击事件 点击事件被响应 通知Android系统的某个/某些进程 Android系统执行某些操作 启动App。...App启动分析 响应点击事件 android源码中对点击事件的处理: image.png 基本的逻辑如下: ==>产生点击事件 ==>判断产生点击事件的View的Tag是ShortcutInfo(即启动应用的快捷方式

    1.3K20

    如何统计Android App启动时间

    优化启动速度是几乎所有大型App应用开发者需要考虑的问题。优化启动速度之前首先需要准确测量App启动时间,这样有利于我们更准确可量化地看出优化效果,也可以指导我们进行持续优化。...Stopping: com.example.app Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER...热启动时间指在Application仍然存在的情况下,从用户点击桌面图标,到首页内容全部展示出来的时间。 App启动流程 要优化以及分析启动时间,需要先了解App的启动流程。...3.使用第三方工具 为了测试启动的过程中哪些方法比较耗时,我们可以使用Android Studio中集成的Android Monitor提供的Method Tracering或者Systrace。...通过详细了解Android应用启动的流程,进行准确的log记录,并且结合第三方工具,我们最终得到准确的启动时间统计数据以及启动优化的一些头绪。

    3.1K50

    Android源码解读-App启动过程

    WX20220113-105541.png 整个应用程序的启动过程复杂,主要分为以下五个阶段: 一.Launcher通过Binder进程间通信机制通知ActivityManagerService...,它要启动一个Activity; 二.ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态; 三....Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,于是ActivityManagerService就创建一个新的进程,用来启动一个...ActivityThread实例,即将要启动的Activity就是在这个ActivityThread实例中运行; 四.ActivityThread通过Binder进程间通信机制将一个ApplicationThread...Binder对象和它进行通信; 五.ActivityManagerService通过Binder进程间通信机制通知ActivityThread,现在一切准备就绪,它可以真正执行Activity的启动操作了

    50711

    Android组件前奏---App+module的启动

    一个App里面默认都有一个单例那就是Application,而组件化的过程中除了app这个壳工程的启动是我们时长需要设置一些默认的参数配置等操作,其实对于附加启动的module也是需要一些附加的启动或者对自身所在...那么我们怎么来实现module的Application随App一起启动做初始化操作呢? ?...我们分析一下通常会遇到的情况 我们组件化中会有多个独立Module,那么需要随App进行同时进行配置的可能会有多个,那么在我们是不需要一个统一的模版规范让读个module走循序呢?...启动前的初始化以及对应加载Module启动 2.1 自身配置的启动 public class MainApp extends BaseApp { @Override public...的启动,一个按照模版的方式完成多个Module的动态初始化加载

    88520

    Android 面试必备 - 系统、App、Activity 启动过程

    Android 系统启动过程 从系统层看: linux 系统层 Android系统服务层 Zygote 从开机启动到Home Launcher: 启动bootloader (小程序;初始化硬件) 加载系统内核...) 启动 HomeLauncher 详细解析 Android系统完整的启动过程,从系统层次角度可分为Linux系统层、Android系统服务层、Zygote进程模型三个阶段;从开机到启动Home Launcher...一、启动BootLoader Android 系统是基于Linux操作系统的,所以它最初的启动过程和Linux一样。...应用安装的流程及路径 应用安装涉及到如下几个目录: system/app ---------------系统自带的应用程序,获得adb root权限才能删除 data/app ------------...---- App 启动过程 这里以启动微信为例子说明 Launcher通知AMS 要启动微信了,并且告诉AMS要启动的是哪个页面也就是首页是哪个页面 AMS收到消息告诉Launcher知道了,并且把要启动的页面记下来

    1.6K20

    Android面试题之App的启动流程和启动速度优化

    App启动流程 ①点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求; ②system_server进程接收到请求后,向zygote...⑧到此,App便正式启动,开始进入Activity生命周期,执行完onCreate/onStart/onResume方法,UI渲染结束后便可以看到App的主界面。...,一般冷启动时间大于5s就认为时间过长(官方) 启动时间查看 在logcat里,通过Display字段过滤,可以看到系统打印的启动时间日志 用adb查看App启动时间 adb shell am start...用IDE的CPU Profile功能来查看哪些步骤启动耗时 首先需要打开AS中的CPU Profile开关,在App的run configuration设置里,找到Profile, 然后打开 start...("test") 然后在启动的入口activity的onWindowFocusChanged方法中停止 Debug.stopMethodTracing() 重新启动App以后会在SD卡上生成test.trace

    38410

    Android App优化之提升你的App启动速度之实例挑战

    可以看到启动时白屏了很长时间. Traceview上场 接下来我们结合我们上文的理论知识, 和介绍的Traceview工具, 来分析下Application的onCreate耗时....InitializeService.java代码如下: package com.anly.githubapp.compz.service;import android.app.IntentService...给我们的应用窗口弄一个PlaceHolder Android最新的Material Design有这么个建议的. 建议我们使用一个placeholder UI来展示给用户直至App加载完毕....给Window加上背景 如第3节所言, 当App没有完全起来时, 屏幕会一直显示一块空白的窗口(一般来说是黑屏或者白屏, 根据App主题)....可以避免我们的App长时间的呈现给用户一个空白的窗口. 结语 照例, 总结下. 这次关于App启动时间的优化, 写了两篇.

    71030

    Android 手机从开机到 APP 启动经过的流程

    )等服务、同时启动binder线程池,当SS进程将系统服务启动就绪以后,就会通知AMS启动Home。...AMS通过Intent隐式启动的方式启动Launcher,Launcher根据已安装应用解析对应的xml、通过findBiewById()获得一个RecycleView、加载应用图标、最后成功展示App...,建立内存空间的映像图,为最终调用系统内核准备好环境; init进程:init进程时Android系统中用户进程的鼻祖进程,主要作用是启动系统本地服务、fork出Zygoto进程; SM:ServiceManager...,和我们的App一样,也是继承自Activity,有自己的AndroidManifest;(所以才可以被AMS用Intent启动) Question 1:Zygote进程为什么使用Socket而不是Binder...其实就是服务器端的Activity对象的映像; Question 1:如何判断APP是否已经启动?

    2.3K51
    领券