Launcher3整体概述
2024-01-27 本文已影响0人
奔跑吧李博
概述
launcher其实就是一个app,从功能上说,是对手机上其他app的一个管理和启动,从代码上说比其他app多了一个属性,就是在AndroidManifest.xml文件中多了一个“<category android:name="android.intent.category.HOME" />”属性 和<action android:name="android.intent.action.MAIN" />。如果系统只安装了一个launcher,就会直接开启此launcher,如果装有多个Launcher,运行的时候会弹出对话框供我们选择。
目录结构
代码包下功能:
allapps 目录:主要存放主菜单界面相关代码
anim目录:存放动画相关
badge目录:存放图标标识相关
compat目录:存放解决兼容性相关
config目录:配置Launcher相关功能的宏开关
dragndrop目录:存放拖拽相关
folder:存放桌面文件夹相关
graphics目录:存放处理图标大小、颜色、自适应
model目录:存放Launcher加载流程相关模块化
notification目录:存放通知相关
pageindicators目录:存放桌面页面指示器相关
popup目录:存放长按图标显示popup弹出框相关
provider目录:存放Launcher数据库相关
qsb目录:存放搜索功能相关
shortcuts目录:存放桌面所属应用某些功能的快捷图标相关
widget目录:桌面小部件功能相关
桌面结构
图一 图二- Workspace:
最外层,也就是手机显示层是一个叫做Workspace的控件。其实在Workspace外层还有一个DragLayer层。 - searchDropTargetView:
为顶部搜索栏。 - CellLayout:
CellLayout为中间主题屏幕,有一个或者多个,主要用来装快捷方式或者一些小部件,(负一屏一般是一个独立的View,不是CellLayout)。 - PageIndicator:
中间的指示点叫做PageIndicator,用来指示当前处在哪个CellLayout。 - Hotseat:
Hotseat是底部的四个小图标主要放电话,短信等常用应用图标。左右滑动屏幕时,Hotseat不做滑动处理。
当用户长安桌面时,中间的CellLayout会缩小,下面的Hotseat,pageIndicator和上面的搜索栏SearchDropTargetView会隐藏,显示出隐藏的三个菜单按钮(壁纸,小部件,设置 即:WALLPAPERS,WIDGETS,SETTINGS)此布局叫做Overviewpanel。三个菜单按钮点进去都有一个View。