1、)首先Android系统启动的时候会启动一个应用程序管理服务PackageManagerService,这个服务主要是由SystemServer组件启动的,同时还有ActivityManagerService服务。不过通过源码你会发现在ActivityManagerService的构造函数中也初始化了BroadcastQueue、ProviderMap、ActiveServices、ActivityStackSupervisor,相信大家都已经猜出来了不错这个服务就是用来管理Android四大组件的,而PackageManagerService服务是用来解析Apk的,其实主要解析的是AndroidManifest.xml文件,得到应用程序相关信息(如:Activity、Service、BroadcastReceiver和Content Provider等),完成应用程序的安装过程。如果我们想要在Android桌面上看到这些应用程序,还需要有一个Home应用程序,负责从PackageManagerService服务中把这些安装好的应用程序取出来,并以友好的方式在桌面上展现出来,例如以快捷图标的形式。在Android系统中,负责把系统中已经安装的应用程序在桌面中展现出来的Home应用程序就是Launcher了。

2、)桌面上icon图标(快捷图标)应用程序都是以Launcher(DEFAULT默认、HOME、PREFERENCE、LAUNCHER、BROWSABLE浏览器、GADGET内嵌非桌面)管理并启动App的,点击桌面icon图标触发Launcher的onItemClick事件,通知ActivityMangerService(所有Activity管家)启动当前程序的MainActivity(通过当前应用程序包名+当前标识位主Launcher位置Activity)。如果属于未启动状态,那么通知为该程序创建一个进程(uid + process属性组合),通过Process.start()导入android.app.ActivityThread类,并且执行它的main函数:

1、在该进程main函数中先创建并绑定Looper对象;

2、然后创建ActivityThread实例调用它的attach函数启动ActivityMangerService调用attachApplication传递参数ApplicationThread类型的Binder对象(mAppThread)进程间通信进入ApplicationThread进程创建Application,然后ApplicationThread调度scheduleLaunchActivity也就是MainActivity,接着使用Handler消息机制启动Activity调度attach方法创建PhoneWindow、parentContent(即DecorView)根容器以及调用onCreate方法setContentView通过源码分析即parentContent.addView,接着ApplicationThread调度scheduleResumeActivity也就是MainActivity的onResume生命周期还是通过Handler消息机制启动把跟容器添加到窗口上wm.addView(parentView,1)窗口本身有一个RootView接着根View开始调用requestLayout从而调度performTraversals(执行遍历一次performMeasure、performLayout、performDraw也就是View控制层测量,布局,绘制)接下来的生命周期也就依次执行了;

3、进入loop消息循环了。

更多相关文章

  1. android开机启动流程简单分析
  2. Android(安卓)中加载延时加载动画
  3. Android(安卓)启动分析 --- init.c (system/core/init/init.c)
  4. 阅读《Android(安卓)从入门到精通》(35)——后台服务
  5. 【Android】ReactNative Android端启动流程
  6. Android开发者指南(18) —— Web Apps Overview
  7. mono for android之文件系统与应用程序首选项
  8. ubuntu genymotion 启动adb 被占用5037端口
  9. Android启动activity的几种方式

随机推荐

  1. Android读取Txt文件
  2. Android软件更新
  3. Android实现网易新闻客户端侧滑菜单(2)
  4. Android应用程序启动过程源代码分析(4)
  5. android中读取联系人和通话记录
  6. Android资源加载过程分析
  7. android收藏
  8. SeekBar
  9. Android第三十八期 - 评价标签FlowLayout
  10. ScrollVie滚动条