`
亚当爱上java
  • 浏览: 707418 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Launcher启动的流程图【Android4.0——>Launcher系列四】

阅读更多

  先画一个Launche启动的流程图,虽然不是特别规范,但是勉强能看看,我也整理下Launcher的一系列的流程图,最近修改Launcher,又对Launcher加深了一些了解,

 

 

              图(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;

本文转载自:http://blog.csdn.net/wdaming1986/article/details/8267156

  • 大小: 64.4 KB
分享到:
评论

相关推荐

    android4.0 Launcher2

    在Android 4.0(Ice Cream Sandwich,简称ICS)版本中,官方推出了改进版的Launcher——Launcher2,相较于早期版本,它在性能、用户体验以及可定制性方面都有所提升。本文将围绕"android4.0 Launcher2"这一主题,...

    Launcher2源代码 android4.0

    Launcher2是Android 4.0(ICS,Ice Cream Sandwich)时期的默认启动器,它的源代码对于开发者来说是一份宝贵的学习资源,可以帮助我们深入了解Android系统的桌面实现机制。 首先,让我们来看看Launcher2源代码中的...

    Android 4.0 Launcher2 源码 Eclipse版

    【Android 4.0 Launcher2 源码 Eclipse版】是一个专门为Android 4.0 (Ice Cream Sandwich)系统设计的启动器源代码,适合开发者深入理解Android系统的桌面启动器工作原理,以及进行自定义开发。这个源代码版本是为...

    android 定制 launcher 4.0源码

    在Android系统中,Launcher是用户与设备交互的入口,它负责展示桌面图标、应用抽屉以及各种快捷方式,使得用户可以启动不同的应用程序。定制Launcher意味着开发者可以根据自己的需求修改默认的界面布局、添加特色...

    Launcher HD(Android 4.0)

    "Launcher HD for Android 4.0"是一款专为Android 4.0系统设计的高清启动器,它旨在提供类似于原生Android 4.0(Ice Cream Sandwich)的用户体验,但具有更高的清晰度和优化的界面设计,以适应平板电脑或高分辨率手机...

    android4.0-launcher可运行源码

    这篇内容将详述Android 4.0 Launcher的核心架构、主要组件及其工作流程。 首先,Android 4.0(代号Ice Cream Sandwich,简称ICS)的Launcher是基于Launcher2实现的,这也是压缩包中的文件名。Launcher2是在Android ...

    Android 4.0 Launcher系统源码

    Android 4.0 Launcher系统源码是Android操作系统中桌面启动器的重要组成部分,它负责管理主屏幕、应用快捷方式、小部件以及桌面布局等用户界面。深入理解这部分源码对于开发者来说,有助于定制个性化启动器或者优化...

    android 4.0 launcher分析

    回到Android 4.0 Launcher的启动流程。系统启动后,App_main进程初始化Android运行时环境,zygote进程作为所有Android应用和服务的父进程。SystemServer启动并管理各种系统服务,包括Activity Manager Service(AMS...

    Android 4.0 Launcher2可导入eclipse中直接运行

    Android 4.0 的 Launcher2 是 Android 操作系统的一个核心组件,它是用户界面的主要部分,负责桌面、应用抽屉和快捷方式的管理。这个项目是为开发者提供的源代码,允许他们深入理解 Launcher2 的工作原理,并对其...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    "安卓Android源码——Android Launcher 源码修改可编译.zip" 这个标题表明我们关注的是Android操作系统的源代码,特别是与启动器(Launcher)相关的部分。Launcher是用户与Android系统交互的主要界面,它管理应用...

    android4.0原生launcher代码

    Android 4.0(冰淇淋三明治,Ice Cream Sandwich)的 Launcher 是用户界面的核心部分,它作为系统的启动器,负责展示应用图标、小部件和主屏幕。理解其源码对于开发者深入理解 Android 系统的工作原理、定制个性化...

    android4.0 launcher源码

    总的来说,深入研究Android 4.0 Launcher的源码能帮助开发者理解Android系统的工作机制,提高定制化应用开发的能力,并为构建高效、个性化的启动器提供宝贵的参考。同时,这也有助于学习Android的UI设计原则和性能...

    Android4.0 Ice Cream Sandwich Launcher 源码

    在Android系统中,Launcher是用户界面的核心组成部分,它充当了主屏幕和应用程序抽屉的角色,让用户可以启动应用、管理桌面快捷方式以及自定义桌面布局。Android 4.0 Ice Cream Sandwich(简称ICS)对Launcher进行了...

    launcher源码(ADWlauncher+android4.0原生launcher)

    这里我们关注的是"launcher源码",包括ADW.Launcher和Android 4.0(Ice Cream Sandwich,简称ICS)的原生Launcher。这两个启动器在Android发展史上具有重要意义,为后来的许多定制和优化提供了基础。 首先,ADW....

    android4.0 launcher2

    通过分析和学习"Android 4.0 Launcher2"的源代码,开发者可以了解Android桌面启动器的设计理念,学习到如何定制自己的桌面应用,包括图标布局、动画效果、交互逻辑等方面,这对于Android开发人员深入理解系统级应用...

    android Launcher 4.0 (原生版本)

    Android Launcher 4.0,是Android操作系统的一个重要组成部分,它作为用户与系统交互的初始界面,扮演着桌面的角色。在Android 4.0(Ice Cream Sandwich,简称ICS)这个版本中,Launcher进行了诸多改进和优化,提升...

    浅谈android性能优化之启动过程(冷启动和热启动)

    1. Application 的构造器方法——>attachBaseContext()——>onCreate()——>Activity 的构造方法——>onCreate()——>配置主题中背景等属性——>onStart()——>onResume()——>测量布局绘制显示在界面上。...

    android4.0 Launcher源码

    《深入解析Android 4.0 Launcher源码》 在Android操作系统中,Launcher是用户与系统交互的首要界面,它负责展示应用图标、桌面小部件以及管理屏幕。Android 4.0(Ice Cream Sandwich,简称ICS)是Android系统的一个...

    Android 4.0 Launcher 可编译代码

    Android 4.0 Launcher 是Android操作系统的一个重要组成部分,它是用户界面的核心组件,负责管理应用程序的启动、布局和交互。在Android 4.0(Ice Cream Sandwich,简称ICS)版本中,Launcher进行了诸多改进,旨在...

    android4.0 主界面源码 launcher

    在Android 4.0(Ice Cream Sandwich)系统中,"Launcher"是主界面的核心组件,它负责呈现桌面、快捷方式和应用抽屉等用户交互界面。深入理解Launcher的源码对于Android开发者来说至关重要,因为这有助于优化用户体验,...

Global site tag (gtag.js) - Google Analytics