App的启动过程
App的启动过程
- 所有的app都是通过launcher去启动的
- launcher自己也是一个app,一个系统级别的app,放在asystem/app/下,使用系统签名。
对代码进行分析
可以看到launcher这个类其实就是一个activity
然后找到onclick事件
StartActivitySafely()这个方法做启动a pp。接下来,跟到StartActivitySafely()这个方法
代码一直往下跟,ActivityManagerNative.getDefault()这个方法,实际上是ActivityManagerProxy,跟进去是一个接口,返回ActivityManagerService的远程接口。
接下来,进入ActivityManagerProxy这个类。在ActivityManagerNative的内部类
看到这些,原来又是android最6的东西Binder了。Parcel保存数据,resuleTo(Ibinder)一个远程接口。
通过Binder驱动程序就进入到ActivityManagerService的startActivity函数来了
此文到此为止,简单来说其实就是一个app通过调用startactivity来启动另一个app。
接下来写一下ActivityManagerService的startActivity是如何启动App。
App的启动过程的更多相关文章
- iOS App的启动过程
一.mach-O Executable 可执行文件 Dylib 动态库 Bundle 无法被连接的动态库,只能通过 dlopen() 加载 Image 指的是 Executable,Dylib 或者 ...
- [iOS基础控件 - 6.10.6] UIApplicationDelegate & 程序启动过程
A.概念 1.移动app非常容易受到其他的系统.软件事件的干扰,如来电.锁屏 2.app受到干扰的时候,UIApplication会通知delegate,来代理处理干扰事件 3.delegate可以处 ...
- 从APP的启动说起
iOS里面APP的启动,过程有些复杂,今天我们来抽丝剥茧,一步步探讨一下APP的启动会经历哪些过程. 首先,用户点击iPhone里面的某个APP的icon,Kernel内核会开始初始化空间并创建进程, ...
- Flask学习-Flask app启动过程
因为0.1版本整体代码大概只有350行,比较简单.所以本篇文章会以Flask 0.1版本源码为基础进行剖析Flask应用的启动过程. Flask参考资料flask,官网有一个最简单app: from ...
- 安卓 应用app启动过程
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 从用户点击 Launcher 上的 App 图标,到显示出 App 界面时主要发生的事情.知晓以 ...
- 在APP开发设计过程中:如何设计启动页面?
心理学上有一个“7秒理论”,说的是,一个人对另一个人的印象,在初次见面的七秒内就会形成,最近更有研究表明,这个时间可能更短——不到1秒.所以初次见面所展示的形象真的很重要.同理,用户在使用APP时,每 ...
- wxWidgets源码分析(1) - App启动过程
目录 APP启动过程 wxApp入口定义 wxApp实例化准备 wxApp的实例化 wxApp运行 总结 APP启动过程 本文主要介绍wxWidgets应用程序的启动过程,从app.cpp入手. wx ...
- Android 面试必备 - 系统、App、Activity 启动过程“一锅端”
Android 系统启动过程 从系统层看: linux 系统层 Android系统服务层 Zygote 从开机启动到Home Launcher: 启动bootloader (小程序:初始化硬件) 加载 ...
- app启动过程
调用main函数之前: App开始启动后,系统首先加载可执行文件(自身App的所有.o文件的集合),然后加载动态链接库dyld.交由 ImageLoader 读取 image,其中包含了我们的类.方法 ...
随机推荐
- 搭建Python+Django开发环境
第一步:安装python. 常见的windows系统,直接python网站下载 最新的版本python3.5. python安装好之后,配置好环境变量.使得python和 pip命令能够正常使用. 第 ...
- 注解的方式搭建springmvc步骤
1.cope jar包到lib中 2.配置web.xml文件 <servlet> <servlet-name>springmvc</servlet-name> ...
- 基于DevExpress ImageSlider实现图片轮播效果
工具:DevExpress版本为15.2.7 1.控件类型全称:DevExpress.XtraEditors.Controls.ImageSlider 2.控件所在程序集:DevExpress.Xtr ...
- JSON.stringify////////////////////////////////zzzzzzzzzzzzzz
JSON.stringify 语法实例讲解 可能有些人对系列化这个词过敏,我的理解很简单.就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json类型的).就这么简单.打个比方说,你有一个类 ...
- DataTable与实体类互相转换
/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...
- 如何运用TurboDemo创建视频示例
TurboDemo不仅可以速抓取屏幕截图,而且可高效制作出时尚美观的介绍.演示动画.软件模拟以及使用说明.下面的例子将会告诉使用者们如何分步创建一个视频示例,帮助使用者们快速的上手: 1.开启Turb ...
- python之excel自动报表
一.自动报表前期工作: 需要安装XlsxWriter模块,可以从github上下载以后解压.setup.py install. 二.程序: #!/usr/bin/env python # -*- co ...
- ping广播地址会如何(转)
来源:http://kb.cnblogs.com/a/1560881/ 首先,了解通常有4种广播地址:受限制的广播,网段的广播,子网的广播,所有子网的广播 其次,假如我的地址10.26.20.1/16 ...
- java开发中中文乱码总结
1.jsp页面内容显示乱码 这种乱码原因很简单,一般的工具或解码程序对中文字符解析时采用默认的解码方式: <%@ page contentType="text/html; charse ...
- myeclipse快捷键
转: 当时我看到struts2讲解视频的时候,讲解员居然能一下子注释掉好几行代码,而且注释的很整齐,然我大吃一惊,上网搜了下Myeclipse的快捷键还真多选择你要注释的那一行或多行代码,按Ctrl+ ...