Android11 修改桌面布局(带便捷工具)
前言
修改系统桌面布局那必须是和Launcher模块有关,以下流程是不带GMS谷歌包的修改,带GMS的高版本布局文件可能在gms包里有覆盖路径,那就得去拉取谷歌包里的布局文件修改了。咱们开始
A11的路径基本就在Android11packagesappsLauncher3
esxmldefault_workspace_5x5.xml下修改,目录下还有其他规格的布局,可以根据自己设备横竖放置的应用确定你用的是哪个布局
我的设备是5X5的布局,进去后可以看到使用的是<resolve>标签 “-101”表示下方Hotseat快捷图标的布局,这次要修改的就是Hotseat里的布局排布

先去下一个工具,方便查看桌面布局详情,安装简单直接NEXT到底
SQLiteStudio
https://sqlitestudio.pl/

将设备桌面的布局排布成你想要的样子,以下Hotseat里的排布是我随便放的用来举例

接下来通过adb Shell连接设备去到下面这个目录里,确认一下launcher包名是否正确,AOSP11源码基本就是com.android.launcher3
# 原生 Launcher3:进入数据库目录
cd /data/data/com.android.launcher3/databases
此目录可以找到launcher.db数据库将其adb pull导出到本地,然后通过上面的SQLiteStudio打开


就得到了当前桌面的布局信息包名和横纵坐标,我们只改Hotseat所以只看“-101”,这个“-100”是不小心拖了一个图标到桌面,也被获取到了,不管它。现在我们就去5X5布局文件下修改

源码是<resolve>,个人习惯用<favorite>标签简洁明了,所以全换了,根据上面的数据库信息,因为都在底部Hotseat y轴都为0,screen和x轴依次从左至右由0-4五个图标排序,需要注意的是只有Hotseat里launcher:screen是递增不会有影响,如果是桌面上的应用比如上面那个“-100” screen为1就是在第一屏,2就会在第二屏生成,所以要根据自己的需求修改对应的Screen属性值
最后就是提醒一下<favorite>标签里launcher属性各厂商在原生属性基础上扩展了专属属性
我之前用launcher:package=””指定包名,桌面布局排布未生效,后面改了launcher:packageName=””才生效,packageName是aosp11的原生属性值。以下附带AOSP11一些属性
| 属性名 | 含义 | 取值说明 | 示例 |
|---|---|---|---|
|
快捷方式的启动目标 | 支持 Intent 语法()或网址() |
|
|
快捷方式的显示名称 | 字符串,自定义快捷方式的桌面显示文字(优先级高于应用默认名称) | |
|
快捷方式的自定义图标 | 资源 ID()或图标包路径 |
|
|
关联的应用包名 | 字符串,指定快捷方式对应的应用包名(仅辅助标识,不控制启动) | |
|
关联的 Activity 类名 | 字符串,指定快捷方式对应的 Activity 类名(仅辅助标识) | |
还有各厂商拓展的一些专属属性
1. 小米 MIUI 启动器(
com.miui.home)
com.miui.home
| 属性名 | 含义 | 示例 |
|---|---|---|
|
直接指定应用包名(替代的 Intent 组件) |
|
|
直接指定 Activity 类名(配合使用) |
|
|
文件夹的显示名称 | |
|
是否隐藏快捷方式文字标签 | |
2. 华为 EMUI 启动器(
com.huawei.android.launcher)
com.huawei.android.launcher
| 属性名 | 含义 | 示例 |
|---|---|---|
|
直接指定组件路径(包名 / 类名) | |
|
小部件的唯一 ID | |
|
快捷方式的背景颜色 | |
3. OPPO ColorOS 启动器(
com.coloros.launcher)
com.coloros.launcher
| 属性名 | 含义 | 示例 |
|---|---|---|
|
快捷方式的自定义名称(同) |
|
|
自定义图标资源路径 | |
|
更精细的横向坐标(像素级) | |
|
更精细的纵向坐标(像素级) | |