Launcher3--初识Launcher3

article/2025/11/7 3:14:48
一、Launcher简介
    Launcher时开机完成后第一个启动的应用,用来展示应用列表和快捷方式、小部件等。Launcher作为第一个(开机后第一个启动的应用)展示给用户的应用程序,其设计的好坏影响到用户的体验,甚至影响用户购机的判断。所以很多品牌厂商都会不遗余力的对Launcher进行深度定制,如小米的MIUI、华为的EMUI等。Android默认的Launcher没有过多的定制,更加简洁,受到源生党的追捧,Google的Nexus系列手机基本都是用的源生Launcher,目前Android源生的Launcher版本是Launcher3,后面的相关内容也都是已Launcher3为基础。
    本篇就先来了解Launcher3的界面和功能。

二、界面和功能
   Launcher3是分两层显示的,第一层就是开机启动和用户按Home键后显示的页面(桌面),第二层是用来展示系统中所有需要显示到Launcher上的应用(我们常说的抽屉)。当然,并非所有的Launcher都有两层结构,比如小米Launcher就只有一层结构,可根据实际需求进行设计。

1.第一层的UI


图1
    如图1,就是Launcher3的第一层,上面放置了应用图标、搜索栏、小部件等,这是我们直观的可以看到的;从代码设计的角度来说,这一个简单的界面其实是分了好几个部分的,图1中已经对各个部分做了一些注释标记,具体含义如下:
    Workspace:用来放置CellLayout,可存在多个,进行滑动、拖拽等操作
    SearchDropTarget:正常情况下显示搜索框,长按应用或小部件时,显示删除(第一层)或者卸载和应用信息(第二次)或者应用信息(不可卸载应用)
    CellLayout:用来放置应用快捷方式和小部件
    PageIndicator:页面指示器,一般情况下不止一个CellLayout
    Hotseat:热键,一般可放置四个热键,中间那个按钮点击进入第二层。

    当然,如果有很多的图标和小部件的话,一个页面肯定放不下,这样就会分多个页面展示,可同左右滑动来切换,如图2,

图2

    基本功能
    1)点击图标打开某个应用,相当于应用快捷方式;
    2)长按图标移动位置或删除,如图3和图4;
    3)也可以长按空白处,看到页面缩小了(概率图模式),显示壁纸和小部件按钮,如图5,用来设置壁纸和添加小部件。
   
图3                                     图4

图5

2.第二层的UI(抽屉)


图6
    抽屉展示了所有需要显示在Launcher上的应用,这里每页显示20个,页数会根据应用的总数动态创建。提供的功能一个是启动应用,这个跟第一层结构一样;另一个是长按事件,需要区分的是系统内置应用和可卸载应用,如图7和图8),长按系统内置应用时隐藏了卸载功能,因为系统内置应用时不可卸载的。
 
图7                                     图8
    虽然整个Launcher3的界面是十分简洁,但是包含大量复杂的自定义view以及触摸事件、拖拽处理等等,所以整个的实现还是比较复杂的,也是要重点分析的。

三、项目代码
    Launcher3作为一个系统组件,系统编译的时候会一同编译,但我们在分析时,为了简单起见,只需要将其作为一个app,并不需要整个的Android编译环境,所以我们用一个Launcher3的AndroidStudio版本就可以了。AndroidStudio版本也在源码的基础上将一些编译错误修改,添加了gradle编译,跟源生的基本一致。
    AndroidStudio的Launcher3代码结构,

图9
    有两个子工程,launcher3和wallpaperpick,launcher3当然就是核心代码了,wallpaperpick是壁纸选择器,在我们这个工程里面,wallpaperpick只存放了一些资源文件,相关的代码实现也是放在launcher3目录下的。
    提供一个下载地址链接: http://download.csdn.net/detail/dingfengnupt88/9564616 ,后续就用这套代码来做分析。


http://chatgpt.dhexx.cn/article/ZVSAyY54.shtml

相关文章

Android Launcher3分析及定制主题实现

一. Launcher3 简介 **launcher3是在Launcher2的基础上进化的版本,从Android 4.4 开始就使用Launcher3 .(kk版,kk2版)作为桌面使用,以前我们都在使用Launcher2,我们使用的是KK版本,具体区别后面再说. ** 1 Launcher3 桌面变成了动态管理,launcher2 里面默认最多加载五个worksp…

Android Launcher3简介

一.Launcher3概述 Launcher顾名思义,就是桌面的意思,也是android系统启动后第一个启动的应用程序,这里以android11为例,和其他应用并无区别,只是增加了对其他app和widget的管理窗口,且可以为用户定制化一些…

详细理解准确率、精准率、召回率,F1值等评价指标的含义

转载文章 原博客地址:详解准确率、精确率、召回率、F1值等评价指标的含义 机器学习问题之中,通常需要建立模型来解决具体问题,但对于模型的好坏,也就是模型的泛化能力,如何进行评估?我们可以定一些评价指标…

详解准确率、精确率、召回率、F1值等评价指标的含义

机器学习问题之中,通常需要建立模型来解决具体问题,但对于模型的好坏,也就是模型的泛化能力,如何进行评估呢? 很简单,我们可以定一些评价指标,来度量模型的优劣。比如准确率、精确率、召回率、…

分类性能评价指标——精确率,召回率,F1值详细解释

分类性能的评价指标 准确率 准确率是全部参与分类的文本中,与人工分类结果吻合的文本所占的比例。 即:预测与真实标签相同的比例 A c c u r a c y T P T N T P T N F P F N Accuracy\frac{TPTN}{TPTNFPFN} AccuracyTPTNFPFNTPTN​ 精确率 也称…

准确率、精确率、召回率、F1值

1.TP、TN、FP、FN 先粘一个官方形式的。 用新冠来举例理解。下方正方形为样本,其中 圆的部分认定为检测后是阳性的,其余部分为检测为阴性的(但是现在的情况是检测并不完全准确,有可能检测时阴性,但实际上已经有新冠…

机器学习中的二分类问题评价指标之精确率、召回率、F1值通俗理解

引言:对于分类问题,我们在评估一个模型的好坏时,通常想到的是把该模型在测试集上分类结果正确的样本数量比上测试集的样本数量的比值结果,即准确率(精确率)作为评价准则。但除此之外,还有精确率…

【转】一些因素对F1值的影响

截自:https://blog.csdn.net/qq_27590277/article/details/88374695 https://blog.csdn.net/qq_27590277/article/details/88367082 一些因素对F1值的影响 如果还没了解F1值的话,这里有我之前写的通俗易懂的文章 详谈P(查准率),R(查全率)&…

keras计算precision、recall、F1值

近期写课程作业,需要用Keras搭建网络层,跑实验时需要计算precision,recall和F1值,在前几年,Keras没有更新时,我用的代码是直接取训练期间的预测标签,然后和真实标签之间计算求解,代码…

F1值(F-Measure)、准确率(Precision)、召回率(Recall) 菜鸡版理解

前置知识: T(True): 正确的 F (False) : 错误的 P (Positive) : 正向的/积极的 N (Negetive): 负向的/消极的 则: TP:正确的 预测了 正向的 FN:错误的 预测了 负向的 FP&#xff1a…

准确率、精确率、召回率、F1值学习笔记

一、TN、TP、TN、FP、FN概念 TP与TN都是分对了情况,TP是正类,TN是负类。则推断出,FP是错误的正类,FN是错误的负类。 举例:我们需要从一个班级中的人中寻找所有女生,如果把这个任务当成一个分类器的话,那么女生就是我们…

为何选用F1值(调和平均数)衡量P与R?

二分类问题的性能度量为何选用 F 1 F_1 F1​ 值? 已知混淆矩阵 prediction positiveprediction negativeactuality positiveTrue Positive(TP)False Negative(FN)actuality negativeFalse Positive(FP)True Negative(TN) 其中:Precise(精…

精确度/召回率/F1值/Micro-F1和Macro-F1的理解

如下图所示,假设有若干张图片,其中12张是狗的图片其余是猫的图片.现在利用程序去识别狗的图片,结果在识别出的8张图片中有5张是狗的图片,3张是猫的图片(属于误报). 图中,…

混淆矩阵、精确率、召回率、F1值、ROC曲线、AUC曲线

假设一个分类器A,分类器A的作用是告诉你一张图片是不是汉堡,我们如果想知道这个分类器的效果到底好不好,如何做? 最简单的方法就是将手机里所有的图片都扔给分类器A看,让分类器告诉我们哪些是汉堡 我们无法直观的看到…

python实现计算精度、召回率和F1值

python实现计算精度、召回率和F1值 摘要:在深度学习的分类任务中,对模型的评估或测试时需要计算其在验证集或测试集上的预测精度(prediction/accuracy)、召回率(recall)和F1值。本文首先简要介绍如何计算精…

模型评价指标—F1值

最近空余时间在参加数字中国创新大赛,比赛规则是根据模型的F1值对参赛者进行排名。为了更深刻地理解这个指标,我最近对它做了一些梳理,现在把它分享给更多有需要的人图片。最近在参赛时也发现了一个问题,就是算法在训练集上完全拟…

精确率、召回率、F1 值、ROC、AUC等分类模型评价指标含义与作用详解

文章目录 摘要一、精确率、召回率、F函数、准确率和错误率1、定义2、区别与应用 二、ROC曲线、P-R曲线、AUC1、P-R曲线2、ROC曲线3、AUC 摘要 在涉及机器学习领域的分类问题时(尤其是衡量推荐系统性能时),经常会遇到诸如准确率、召回率、ROC…

机器学习F1值的概念

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、什么是F1-score二、计算过程1.首先定义以下几个概念:2.通过第一步的统计值计算每个类别下的precision和recall3. 通过第二步计算结果计算每个类别下…

【数学建模】分类问题的几种常见指标(一)——准确率、召回率、F1值

分类问题的几种常见指标(一)——错误率、精度、准确率、召回率、F1值 前言1 错误率与精度2 准确率与召回率2.1 混淆矩阵2.2 准确率(Precision)2.3 召回率(Recall) 3 F1值(F1-score)4…

准确率、精确率、召回率、F1值、ROC/AUC整理笔记

文章目录 前言 一、TP、TN、FP、FN概念二、准确率、精确率(精准率)、召回率、F1值1.准确率(Accuracy)2.精确率(Precision)查准率3.召回率(Recall)查全率4.F1值(H-mean值&…