Android 4.4 (KK)开始Launcher默认使用Launcher3,Launcher3较Launcher2 UI 有部分调整,主要包括:
(1)
状态栏透明,App List 透Wallpaper;
(2)
增加overview模式,可以调整workspace上页面的前后顺序;
(3)
动态管理屏幕数量;
(4)widget列表与app list分开显示;
(5)默认不支持预置appwidget,需要用户指定权限;
(6)
提供类似小米只有workspace的桌面机制
;
(7)
Wallpaper 的代码全部搬移到Launcher包;
(8)类似Cling等细节的小变化;
针对这些feature,代码逻辑的调整相比Launcher2还是比较大,尤其是workspace的设计部分差异很多。下面是几个界面的截图:
Overview mode,可以对workspace的Celllayout进行排序,也是Wallpaper、App Widget的选择入口;

Launcher3 workspace上页数动态调整,可以动态增减,默认最少有一页。添加icon时会增加空白页,当前空白页没有内容会自动删除。
针对之前介绍的Google Launcher信息,在目前Launcher3的架构上,会有些客制化受到限制或者存在Bug,例如:
(1)
无法预置空白的workspace页面,主要是与动态增减页面数量相冲突;
(2)如果
预置workspace页面大于一页,无法指定非第一页为主页面,主要是与动态增减页面数量相冲突,导致Exception;
(3)
安装到SD卡的应用,桌面创建快捷图标后,关机再开机如果SD卡挂载慢,桌面快捷图标会消失,包括Folder中图标也类似。这是Google Default设计,可以参考FAQ修改为不消失;
(4)
打开类似小米桌面的Feature存在bug,Google在L版本修正此问题,KK可以参考FAQ修改;
(5)
MTK Launcher2 循环滑动功能在Launcher3 Bug很多无法解决,主要是由于Launcher3 Workspace结构大修改,目前无法做到有效的循环滑动,Launcher3暂时不support此feature;
(6)
Quicksearchbox(QSB)不能固定某一页,主要是由于QSB是draglayer上的一个view,不是appwidget,因此无法实现这样的需求,除非重新设计Launcher的view tree。
以上类似的Feature不建议做客制化,否则会比较难控制隐患。
|
Workspace
功能描述
Workspace中文翻译通常叫
桌面,也有人称为
Idle界面,主要作用是摆放用户常用的一些Appwidget及App的icon,也可以创建Folder。
功能操作
(1)左右滑动切换页面;
(2)长按workspace空白处会进入overview mode,用于选择Wallpaper和Appwidget、或者快速启动setting应用;也可以调整Workspace上页面之间的顺序;
(3)长按workspace上图标可以删除图标(卸载/显示App Info)、移动图标位置,创建folder等;
(4)Workspace的状态栏支持透明,不过前提是系统Ram大于512M,否则framework中不支持透明的Feature。
数据存储
Workspace上
数据的存储是通过Database的方式,在第一次开机时Launcher会通过读取
Default_workspace.xml 获取桌面配置的信息,之后创建对应的
launcher.db,之后再开机会从DB中捞取桌面上摆放的应用的资讯,绘制画面。
DB的存储方式决定了对workspace客制化时一定要操作DB,否则默认界面是不会有刷新的变化的,这也是常见客制化所需要关注的点。
客制化需求
Workspace客制化需求较多,但是并不是所有需求在目前Launcher3的架构上都合适,下面是常见客制化汇总,可以对照对应的FAQ或者说明来评估(未写说明的可以参考FAQ实现,其他有限制的无法做客制化)
(1)桌面的配置
桌面cell 行列配置,图标大小的配置: FAQ11476
桌面默认显示应用的配置、默认显示几页、默认创建Folder:FAQ04293 FAQ05878
桌面默认显示应用顺序的配置:FAQ04293
桌面默认显示STK图标:FAQ12135
预置Appwidget:FAQ11225 & FAQ04293
(2)HotSeat的配置
All App Button 位置的更改:FAQ10350
HotSeat图标、名字的配置:FAQ04293 FAQ03774
(3)桌面背景
桌面状态栏透明:FAQ11629
去掉桌面背景渐变色:FAQ07999
去掉Quick Seatch Box:FAQ04350
Quick Search Box位置固定:这个feature无法实现,在第一节limitation中有介绍原因
(4)桌面滑动
桌面循环滑动:这个feature无法实现,在第一节limitation中有介绍原因
|
App List
功能描述
App List中文翻译通常叫主菜单,主要显示系统安装的可以在Launcher显示的应用。只有Activity带了 “android.intent.action.MAIN”和“android.intent.category.LAUNCHER”的才可以被query到,在App List中显示。不过APP自己的行为也可以让带了这两个filter的Activity不显示在Allapplist,例如Android keyboard。
功能操作
(1)启动对应的应用程序;
(2)左右滑动切换页面;
(3)固定App显示位置;
客制化需求
(1)隐藏某个App:FAQ10474 FAQ08658
(2)固定App显示位置:FAQ04294
(3)设置显示列表行数列数:FAQ11441
(4)按照安装时间排序:FAQ08556
(5)去掉主菜单,应用全部摆放在桌面:FAQ11625
(6)循环滑动:此feature目前不支持,原因在第一节limitation中有介绍
|
AppWidget
中文翻译通常叫
小部件,主要是用于桌面和锁屏之上,可以更直观的显示应用的信息,而不需要启动这个应用程序本身。
Launcher提供了
AppWidget选择的入口,但是
并不是所有的Widget都一定会在这个列表中显示出来,例如,如果widget需要的宽度大于Launcher桌面配置的n个cell的格子总宽度,这个widget就无法在Launcher的列表显示;
另外,
这个list里面除了AppWidget还显示了一些shortcut,例如Contact、Setting,这些并非是AppWidget,因此他们的表现就会与Widget不同,例如设置了setting的电池的shortcut,当切换语言时会发现默认这个名字不会变。

客制化需求
(1)Widget列表中隐藏某个widget:FAQ10400
(2)列表按照安装时间排序:FAQ08556
(3)循环滑动:这个feature不支持,主要原因在第一节Limitation中有介绍
FAQ ID | Title | Category![]() | Release Date |
---|---|---|---|
FAQ10400 | 如何在AllApp List的widget列表中隐藏某个widget | SW > ALPS > Application - Launcher | 2014-06-23 |
FAQ11031 | 非4x4的Launcher widget摆放不居中 | SW > ALPS > Application - Launcher | 2014-06-23 |
FAQ03880 | 【AppWidget】如何关闭yahoo 天气的窗口小部件 | SW > ALPS > Application - WallPaper/AppWidget | 2014-06-23 |
FAQ03759 | 【AppWidget】如何去掉视频播放器窗口小部件 | SW > ALPS > Application - WallPaper/AppWidget | 2012-12-25 |
FAQ03881 | 【AppWidget】窗口小部件无法更新的分析方法 | SW > ALPS > Application - WallPaper/AppWidget | 2014-06-23 |
FAQ04680 | Video Favirate应用介绍 | SW > ALPS > Application - WallPaper/AppWidget | 2012-12-25 |
FAQ05714 | 最爱联系人(Video Favorite)小部件显示不全 | SW > ALPS > Application - WallPaper/AppWidget | 2013-03-06 |
FAQ07751 | 在appwidget应用中添加自定义的view显示"widget load problem" | SW > ALPS > Application - WallPaper/AppWidget | 2014-07-24 |
FAQ07752 | MTK天气应用输入城市名字后点击搜索,会提示"很抱歉,天气服务已停止运行" | SW > ALPS > Application - WallPaper/AppWidget | 2014-07-24 |
FAQ10519 | 世界时钟小部件中如何增加城市 | SW > ALPS > Application - WallPaper/AppWidget | 2014-06-23 |
FAQ11622 | GMS包中Drive的widget显示缺少camera按钮 | SW > ALPS > Application - WallPaper/AppWidget | 2014-05-12 |
WallPaper
中文翻译通常叫壁纸,主要包括Image wallpaper、live wallpaper以及MTK的video wallpaper。
Launcher提供的是wallpaper选择的入口,可以对图库、系统壁纸进行选择,同时提供裁剪功能,可以对图库中图片进行裁剪。
| |||||||||||||||||||||||||||||||||||||||||||||||||
1Total: 1 pages (11 items) |
|
| |||||||||||||||||||||||||||||||||||||||||||||||||
1Total: 1 pages (11 items) |