Launcher3--初识Launcher3

一、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 ,后续就用这套代码来做分析。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值