先画一个Launche启动的流程图,虽然不是特别规范,但是勉强能看看,我也整理下Launcher的一系列的流程图,最近修改Launcher,又对Launcher加深了一些了解,
转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/8267156
大明图(1)
说明:loadWorkspaceFirst,这个是个boolean值,加入代码:
public void run() {
// Optimize for end-user experience: if the Launcher is up and // running with the
// All Apps interface in the foreground, load All Apps first. Otherwise, load the
// workspace first (default).
final Callbacks cbk = mCallbacks.get();
final boolean loadWorkspaceFirst = cbk != null ? (!cbk.isAllAppsVisible()) : true;
keep_running: {
// Elevate priority when Home launches for the first time to avoid
// starving at boot time. Staring at a blank home is not cool.
synchronized (mLock) {
if (DEBUG_LOADERS) Log.d(TAG, "Setting thread priority to " +
(mIsLaunching ? "DEFAULT" : "BACKGROUND"));
android.os.Process.setThreadPriority(mIsLaunching
? Process.THREAD_PRIORITY_DEFAULT : Process.THREAD_PRIORITY_BACKGROUND);
}
// First Step
if (loadWorkspaceFirst) {
if (DEBUG_LOADERS) Log.d(TAG, "step 1: loading workspace");
loadAndBindWorkspace();
} else {
if (DEBUG_LOADERS) Log.d(TAG, "step 1: special: loading all apps");
loadAndBindAllApps();
}
if (mStopped) {
break keep_running;
}
// Whew! Hard work done. Slow us down, and wait until the UI thread has
// settled down.
synchronized (mLock) {
if (mIsLaunching) {
if (DEBUG_LOADERS) Log.d(TAG, "Setting thread priority to BACKGROUND");
android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
}
}
waitForIdle();
// Second step
if (loadWorkspaceFirst) {
if (DEBUG_LOADERS) Log.d(TAG, "step 2: loading all apps");
loadAndBindAllApps();
} else {
if (DEBUG_LOADERS) Log.d(TAG, "step 2: special: loading workspace");
loadAndBindWorkspace();
}
// Restore the default thread priority after we are done loading items
synchronized (mLock) {
android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_DEFAULT);
}
}
// Update the saved icons if necessary
if (DEBUG_LOADERS) Log.d(TAG, "Comparing loaded icons to database icons");
for (Object key : sDbIconCache.keySet()) {
updateSavedIcon(mContext, (ShortcutInfo) key, sDbIconCache.get(key));
}
sDbIconCache.clear();
// Clear out this reference, otherwise we end up holding it until all of the
// callback runnables are done.
mContext = null;
synchronized (mLock) {
// If we are still the last one to be scheduled, remove ourselves.
if (mLoaderTask == this) {
mLoaderTask = null;
}
}
}
这个有Frist Step和Second Step,意思就是,
当loadWorkspaceFirst=true:先加载Workspace,后加载AllApps
当loadWorkspaceFirst=false:或者先加载AllApps,后加载Workspace;
所以我画图的时候用True/False, False/True;
分享到:
相关推荐
1. Application 的构造器方法——>attachBaseContext()——>onCreate()——>Activity 的构造方法——>onCreate()——>配置主题中背景等属性——>onStart()——>onResume()——>测量布局绘制显示在界面上。...
Launcher启动Activity整个的流程图详解,使用亿图打开。
Launcher2是Android 4.0(ICS,Ice Cream Sandwich)时期的默认启动器,它的源代码对于开发者来说是一份宝贵的学习资源,可以帮助我们深入了解Android系统的桌面实现机制。 首先,让我们来看看Launcher2源代码中的...
介绍了launcher启动时各个类之间的调用次序。
在Android 4.0(Ice Cream Sandwich,简称ICS)版本中,官方推出了改进版的Launcher——Launcher2,相较于早期版本,它在性能、用户体验以及可定制性方面都有所提升。本文将围绕"android4.0 Launcher2"这一主题,...
Android 系统从 SystemServer 开始的 Launcher 启动详细流程 Android 系统启动流程是一个复杂的过程,从 SystemServer 开始到 Launcher 的启动涉及到多个组件和服务的协作。本文将详细介绍 Android 系统从 ...
在Android系统中,Launcher是用户与设备交互的入口,它负责展示桌面图标、应用抽屉以及各种快捷方式,使得用户可以启动不同的应用程序。定制Launcher意味着开发者可以根据自己的需求修改默认的界面布局、添加特色...
### android系统从systemserver开始的launcher启动详细流程 #### 概述: 在Android系统的启动过程中,用户首次交互的界面往往是Launcher应用,它作为系统主屏幕的主要组成部分,承载着展示应用程序图标、提供快捷...
在"launcher3流程图2"中,我们可以推测它可能详细描绘了launcher3在执行不同操作时的工作流程,如启动应用、搜索、添加小部件等。下面将深入讲解launcher3的关键功能和可能涉及的流程。 1. **启动过程**:当用户...
这里我们关注的是"launcher源码",包括ADW.Launcher和Android 4.0(Ice Cream Sandwich,简称ICS)的原生Launcher。这两个启动器在Android发展史上具有重要意义,为后来的许多定制和优化提供了基础。 首先,ADW....
【Android 4.0 Launcher2 源码 Eclipse版】是一个专门为Android 4.0 (Ice Cream Sandwich)系统设计的启动器源代码,适合开发者深入理解Android系统的桌面启动器工作原理,以及进行自定义开发。这个源代码版本是为...
回到Android 4.0 Launcher的启动流程。系统启动后,App_main进程初始化Android运行时环境,zygote进程作为所有Android应用和服务的父进程。SystemServer启动并管理各种系统服务,包括Activity Manager Service(AMS...
5. **应用程序抽屉**:原生的Launcher 4.0的应用程序抽屉采用网格布局,方便用户查找和启动应用。此外,还支持按字母顺序排序,使得应用查找更为便捷。 6. **小部件优化**:在ICS版本中,小部件的设计和功能得到了...
"Launcher HD for Android 4.0"是一款专为Android 4.0系统设计的高清启动器,它旨在提供类似于原生Android 4.0(Ice Cream Sandwich)的用户体验,但具有更高的清晰度和优化的界面设计,以适应平板电脑或高分辨率手机...
Android 4.0 Launcher系统源码是Android操作系统中桌面启动器的重要组成部分,它负责管理主屏幕、应用快捷方式、小部件以及桌面布局等用户界面。深入理解这部分源码对于开发者来说,有助于定制个性化启动器或者优化...
Launcher3分析之拖动图标的流程——按下 Launcher3分析之拖动图标的流程——移动 Launcher3分析之拖动图标的流程——放下 PagedView的原理 – 滑动 如何给Launcher3添加左屏 IconCache原理 找个Launcher开发 ...
讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ,清晰熟悉android 启动流程
Android 4.0(冰淇淋三明治,Ice Cream Sandwich)的 Launcher 是用户界面的核心部分,它作为系统的启动器,负责展示应用图标、小部件和主屏幕。理解其源码对于开发者深入理解 Android 系统的工作原理、定制个性化...
这篇内容将详述Android 4.0 Launcher的核心架构、主要组件及其工作流程。 首先,Android 4.0(代号Ice Cream Sandwich,简称ICS)的Launcher是基于Launcher2实现的,这也是压缩包中的文件名。Launcher2是在Android ...
总的来说,深入研究Android 4.0 Launcher的源码能帮助开发者理解Android系统的工作机制,提高定制化应用开发的能力,并为构建高效、个性化的启动器提供宝贵的参考。同时,这也有助于学习Android的UI设计原则和性能...