一、常用类
- BaseIconFatory.java : Launcher图标的工厂类,控制了图标UI的展示功能,可以全局搜索
- OverviewToAllAppsTouchController.java:横向控制抽屉式应用界面的触摸类
- PortraitStateTouchController.java:竖向控制抽屉式应用界面的触摸类
- BubbleTextView.java:Launcher所有图标文字显示的父类,包括文字的大小,文字刷新的父类
- CellLayout.java:Launcher布局的计算类,图标的显示边距等,组成workspace的view,继承自viewgroup即是一个dragSource又是一个dropTarget,可以将它里面的item拖出去,也可以容纳拖过来的item,在workspace_screen里面定了一些它的view参数
- secondaryDropTartget.java:长按APP图标的操作类,对图标进行移动、删除、移除、取消、卸载等操作
- DeviceProfile.java:图标大小、各个图标间距、布局等计算实体类、可配置各个参数的全局变量
- Launcher.java:launcher主要的activity,是launcher桌面第一次启动的activity,UI的主要入口
- Workspace.java:抽象的桌面。由N个cellLayout组成从cellLayout更高一级的层面上对事件的处理
- CippedFolderIconLayoutRule.java:文件夹图标内部显示小图标缩略图的计算类别,常见4宫格9宫格显示的实体类
- FolderGridOrganizer.java:显示文件夹显示的计算逻辑类,文件图标呈现是网格状,此类主要给文件夹各营业图标制定显示规则,比如3*3
- LoaderTask.java:加载各个模块Task的显示类,如workspace工作区icon、all工作区icon初始化工作
- PackageUpdatedTask.java:PMS安装应用后显示更新Launcher3图标及逻辑的实现类
- device_profile.xml:默认Launcher的网格配置,主要有以下几点:
①workspace的行和列
②文件夹中配置的行和列
③图标大小
⑤图标名称文字大小
⑥默认选择加载哪个网格xml的配置文件 - default_workspace_xxx.xml:默认排序各图标位置的配置文件,包括文件夹默认创建显示及位置
- folder_shapes.xml:默认workspace工作区图标大小控制文件。
二、桌面布局(加载到workspace)
2、1布局配置
位于xml/device_profile.xml中,一般grid-option和display-option标签是一组
<grid-option //网格配置项
launcher:name="5_by_5" //名称
launcher:numRows="5" //待机界面应用行数
launcher:numColumns="5" //待机界面和抽屉应用列数
launcher:numFolderRows="4"//文件中的行数
launcher:numFolderColumns="4"//文件中的应用列数
launcher:numHotseatIcons="5"//Hotseat应用图标数量
launcher:dbFile="launcher.db" //此grid-option下使用的数据库名称
launcher:defaultLayoutId="@xml/default_workspace_5x5" >//默认布局的名称
<display-option //显示属性配置项(用于决定桌面应用图标和应用名称的大小)
launcher:name="Large Phone" //配置信息名称
launcher:minWidthDps="406"//应用被允许的最小宽度
launcher:minHeightDps="694"//应用被允许的最小高度
launcher:iconImageSize="56" //图标大小
launcher:iconTextSize="14.4" //字体大小
launcher:canBeDefault="true" />//是否可以作为默认配置
</grid-option>
2、2workspace
在vaule/config.xml中进行配置
2、3配置桌面图标、widget、快捷方式、超链接和文件夹
在xml/default_workspace.xml
支持的标签
widget:桌面控件
favorite:应用程序快捷方式
shortcut:链接例如网址等
search:搜索框
clock:桌面上的时钟Widget
folder:桌面文件夹
属性
launcher:title:图标下面的文字,目前仅支持引用
launcher:icon:图标引用
launcher:uri:链接地址,链接网址使用
launcher:packageName:应用程序的包名
launcher:className:应用程序的启动类名
launcher:screen:图标所在的屏幕编号
launcher❌图标在横向排列上的序号
launcher:y:图标在纵向排列上的序号
- 快捷方式:
<favorite //程序快捷键属性标签
launcher:packageName="" //该应用的包名
launcher:className="" //该应用的类,点击图标时,需要启动的类
launcher:screen="1" //第1屏,0-4屏共5屏
launcher:x="0" //图标X位置,左上角第一个为0,向右递增,共 cell_count_x 个
launcher:y="0" //图标Y位置,左上角第一个为0,向下递增,共 cell_count_y个
/>
- 桌面widget的标签
<appwidget //插件
launcher:className="" //该应用的类
launcher:packageName="" //该应用的包名
launcher:screen=""//第1屏,0-4屏共5屏
launcher:x="" //图标X位置,左上角第一个为0,向左递增,共cell_count_x个
launcher:y="" //图标Y位置,左上角第一个为0,向下递增,共cell_count_y个
launcher:spanX="" //在x方向上所占格数
launcher:spanY="" /> //在y方向上所占格数
- 搜索框
<search //搜索框
launcher:screen="1" //从0开始,第二屏
launcher:x="0" //图标x
launcher:y="1"从 //图标Y
- 链接:
<shortcut
launcher:title="" //链接的标签
launcher:icon="" //链接的icon
launcher:srceen=""
launcher:x=""
launcher:y=""
launcher:uri="http://www.baidu.com" //链接的uri地址,支持网址、action等
launcher:screen="1" //第1屏
launcher:x="0" //图标X位置
launcher:y="3" /> //图标Y位置
常用launcher.uri的写法:
①跳转到网页:“http:www.google.com”
②跳转到设置的辅助功能:“#Intent;action=android.settings.ACCESSIBILITY_SETTINGS;end”
③打开音乐文件:file:///mnt/sdcard/song.mp3#Intent;action=android.intent.action.VIEW;type=audio/mp3;end
④:指定程序打开音乐文件
“file:///mnt/sdcard/song.mp3#Intent;action=android.intent.action.VIEW;type=audio/mp3;component=com.android.music/.MusicBrowserActivity;end”
- 文件夹:
<folder launcher:title="@string/WS_Utility"
launcher:x="4"
launcher:y="0"
launcher:screen="2"
>
<favorite launcher:packageName="" launcher:className="" launcher:x="0" launcher:y="0" />
<favorite launcher:packageName="" launcher:className="" launcher:x="1" launcher:y="0" />
<favorite launcher:packageName="" launcher:className="" launcher:x="2" launcher:y="1" />
</folder>
- resovle(待机界面图标)一般是预置需要自适应的应用图标
<resolve
launcher:container="-101"
launcher:screen="1"
launcher:x="1"
launcher:y="0" >
<favorite launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.APP_MESSAGING;end" />
<favorite launcher:uri="sms:" />
<favorite launcher:uri="smsto:" />
<favorite launcher:uri="mms:" />
<favorite launcher:uri="mmsto:" />
</resolve>
2、4hostseat的配置
用于配置常用的app桌面图标
配置位置xml/default_workspace.xml
同workspace下的favorite应用快捷方式有不同之处
·1、launcher:container:表示应用快捷方式所在位置,-100桌面图标 ,-101是hotseat,默认-100
2、launcher:screen代表按钮的位置0是第一个位置,ALIApp按钮默认是2,所以上年没有screen为2的标签
<favorite
launcher:packageName="com.android.browser"
launcher:className="com.android.browser.BrowserActivity"
launcher:container="-101"
launcher:screen="0"
launcher:x="0"
launcher:y="0" />