android运行过程简书,android 启动过程(一)
1、由init.rc调用 app_main.cpp的main方法,启动zygote进程
3、调用AndroidRuntime.cpp 的start方法传递ZygoteInit类路径
5、AndroidRuntime.cpp的start方法主要启动java虚拟机跟注册虚拟机,调用ZygoteInit的main方法
6、ZygoteInit的main方法主要 把zygote进程注册到ZygoteServer 、预加载一些类 、启动SystemServer进程、等待ams请求。
9、通过Zygote.forkSystemServer -->nativeForkSystemServer 方法创建SystemServer进程,得到一个runnable,并运行
14、通过反射SystemServer的main方法传到MethodAndArgsCaller 线程invoke,并返回该线程。
20、runselectLoop 监听fork进程 通过ZygoteConnection.processOneCommand返回MethodAndArgsCaller--> Zygote.forkAndSpecialize()-->handleChildProc-->ZygoteInit.childZygoteInit-->RuntimeInit.findStaticMain
22、SystemServer中的startBootstrapServices()注册一些系统服务通过SystemServiceManager.startService 传递ActivityManagerService的静态内部类Lifecyle 的class,在SystemServiceManager.startService中通过反射构造函数并返回
24、startOtherService 其中windowmanagerService是通过该方法注册的
26、在ams.systemReady方法中有两个地方会运行到ams.startHomeActivityLocked,我目前也不确定这块到底会运行那个,分别是startHomeActivityLocked(currentUserId, "systemReady");和mStackSupervisor.resumeFocusedStackTopActivityLocked();
27、根据Intent.CATEGORY_HOME封装Intent对象返回
android运行过程简书,android 启动过程(一)相关推荐
- android 读写文件 简书,Android 中的文件操作
Android 文件操作 概述 Android 中的文件操作主要涉及到两个部分,一个是内部存储的读写,一个是外部存储的读写两者的主要区别如下表: 内部存储 外部存储 始终可用 它并非始终可用,因为用户 ...
- android自动登录简书,Android开发之简单登录界面
用户界面基础 Android系统的四大组件分别是活动(Activity).服务(Service).广播接收器(Broadcast Receiver).内容提供器(Content Provider). ...
- android运行过程简书,Android系统的启动流程
Android系统有哪些进程 在Linux系统启动时,会读取init.rc,里面配置了一些需要启动的进程.注意:SystemServer进程不在init.rc里,因为SystemServer进程是由z ...
- android 开发环境简书,Android Studio 开发环境快速搭建
目录 - 1.下载JDK.AS - 1.1 JDK下载 - 1.2 AS下载 - 1.3 百度云资源统一下载 - 2.安装JDK - 3.配置JDK及JAVA的环境 - 3.1 打开系统环境 - 3. ...
- android四大组件 简书,android四大组件
android有四大组件,分别是Activity, Service(服务),Content Provider(内容提供者),BoadcastReceiver广播接收器. Activity 一个Acti ...
- android权限适配 简书,Android动态权限适配
最近APP里面要添加动态权限,网上找了不少例子并经过一定的测试,基本流程有了一定的认识,需要注意的地方记录下来以备以后查阅. 一 各大手机厂商的适配 依据各大手机Rom的不同表现,可以分为三种不同的模 ...
- android 辅助服务 简书,Android AccessibilityService使用
测试demo主要使用了Android 的无障碍辅助服务(AccessibilityService),主要注意是 1. 开启服务,绑定目标app的监听(demo中根据包命绑定了体积计算的app),需要在 ...
- android 存储方式简书,Android的多种数据存储方式
1. 简介 作为一个完整的应用程序,数据存储操作是必不可少的.现在Android的离线缓存就是通过网络良好状态时将从服务器收到的数据保存到本地.Android系统中主要提供了3种方式进行数据存储,分别 ...
- android波浪动画简书,Android贝塞尔曲线————波浪效果(大波浪)
Hello大家好,很高兴又一次与大家见面,今天是农历丁酉鸡年(大年初四),现在跟大家拜年有点晚,算是拜晚年,祝大家晚年幸福. 这么快大伙都到了晚年了,Android贝塞尔曲线我也准备以一个大波浪来结束 ...
最新文章
- Java虚拟机5:常用JVM命令参数
- 产品打包工具的制作,ant,编译源码,打jar包,打tag,打war包,备份release版本等
- 电脑控制iphone_如何把苹果 iPhone/iPad 投屏到电脑
- 软件工程第一次冲刺进度条(1-10天)
- POJ 3233 Matrix Power Series 矩阵快速幂 + 二分
- html option ajax,Ajax实现简单下拉选项效果【推荐】
- linux网络编程——webserver服务器编写
- python local variable 'xxx' referenced before assignment
- 视频rtmp协议简介
- TI DSP 28335 自学之路,到此止步
- wifi配网过程的详细介绍
- XRecyclerView Scrapped or attached views may not be recycled
- Swift - 设置UILabel、UITextView的文字行间距
- 学界:为代码自动添加注释,让 Java 程序的阅读和开发更高效
- Android11 热点配置信息保存分析
- GitLab秘钥添加
- Java 中的三角函数
- Android之指纹解锁
- LINUX提权入门手册
- 智芯传感MEMS压力传感器产品助力电子血压计安全性能大幅提升
热门文章
- [译] 用 Shadow DOM v1 和 Custom Elements v1 实现一个原生 Web Component
- 移动wabAPP 开发 viewport 注意事项
- django 修改日期
- 圆形卡尺测量后创建模板
- halcon create_ocr_class_svm 使用SVM分类器创建OCR分类器
- tidevice.exceptions.MuxServiceError: Could not start service: com.apple.testmanagerd.lockdown.secure
- 学习笔记(19):Python网络编程并发编程-互斥锁
- 学习笔记(07):Python网络编程并发编程-客户端与服务端代码bug修复
- Pytorch基础(八)——正则化
- 用基本信号画出如下的信号_股市入门基本知识丨下跌时期可以抄底的安全信号有哪些...