以前做手机ROM定制,写了一些源码分析,现在把它整理出来往以后能用。
一、系统启动Luancher入口

代码路径:
frameworks/base/services/java/com/android/server/SystemServer.java
frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.java
frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.java
20161009
二、开机启动流程:
1、先执行systemservice.java 调用,在执行ActivityManagerService.java里面的startHomeActivityLocked函数,创建一个意图
intent.category.home,获取含有这个意图的activity应用接口,待luncher启动时再打开。应用程序在配置文件要有两个属性:
Action类型为Intent.ACTION_MAIN,并且Category类型为Intent.CATEGORY_LAUNCHER。
2、通过这个PackageManagerService.queryIntentActivities接口来查询所有Action
类型为Intent.ACTION_MAIN,并且Category类型为Intent.CATEGORY_LAUNCHER的Activity了
3、PackageManagerService会把系统中的应用程序都解析一遍,然后把解析得到的Activity都保存在
mActivities变量中,这里通过这个mActivities变量的queryIntent函数返回符合条件intent的Activity。
4、加载应用图标的icon,名称。
5、launcher3 -->onclick():点击home键展开系统应用程序。
6、启动对应的应用程序接口方法:点击应用程序图标的时候,执行的是tag instanceof ShortcutInfo这个case。最终通过调用
final Intent intent = ((ShortcutInfo) tag).intent; 和 boolean success = startActivitySafely(v, intent, tag);来启动
应用程序的入口activity。
在其他应用启动的流程,按键点击启动流程。
二、launcher桌面区域划分
1、seachtoptargetbar :屏幕最上方有个搜索框,在我们拖动图标的时候,搜索框会替换成“删除“
2、workspace:左右滑动屏幕的容器
3、hotseat:常用应用
4、pageindicator:workspace的指示器
5、celllayout:负责应用图标和小部件
三、更改图标和字体及hotseat应用默认设置涉及的类
1、hotseat.java–>显示常用allapps图标名称
2、workspace.java–>显示文件夹、应用图标名称
3、deviceprofile.java–>调整hotseat图标区域
4、cellayout.java–>区域高度
5、launchermodle–>建立器数据库
6、launcherappstate.java–>初始化添加广播和监听器。

更多相关文章

  1. Android退出应用最优雅的方式(改进版)
  2. 列出Android设备中所有启动的服务,及判断某个服务是否开启
  3. Android(安卓)1.5 1.6 2.0 2.1 2.2的区别
  4. 实现Android屏幕控制Androidscreencast应用
  5. Android(安卓)UI开发第二十三篇――分享书架UI实现
  6. Android(安卓)app中调用启动其他应用(系统应用和第三方应用)2016.1
  7. 大话企业级Android应用开发实战 文件下载
  8. Android开机流程
  9. Android(安卓)中加入SD card 应用

随机推荐

  1. 进度条与拖动条的使用学习
  2. android 相对布局属性说明
  3. 关于相对布局RelativeLayout的各种属性
  4. [转]Android进程管理
  5. Android(安卓)多媒体扫描过程(Android(安
  6. [转]Android(安卓)EditView属性
  7. Android(安卓)Activity onNewIntent() 详
  8. Android(安卓)NDK编程浅入深出之--了解ND
  9. android adb命令 抓取系统各种 log
  10. Android实现九宫格