Android11 修改桌面布局(带便捷工具)

前言

修改系统桌面布局那必须是和Launcher模块有关,以下流程是不带GMS谷歌包的修改,带GMS的高版本布局文件可能在gms包里有覆盖路径,那就得去拉取谷歌包里的布局文件修改了。咱们开始

A11的路径基本就在Android11packagesappsLauncher3
esxmldefault_workspace_5x5.xml下修改,目录下还有其他规格的布局,可以根据自己设备横竖放置的应用确定你用的是哪个布局

我的设备是5X5的布局,进去后可以看到使用的是<resolve>标签 “-101”表示下方Hotseat快捷图标的布局,这次要修改的就是Hotseat里的布局排布

Android11 修改桌面布局(带便捷工具)

先去下一个工具,方便查看桌面布局详情,安装简单直接NEXT到底

SQLiteStudioAndroid11 修改桌面布局(带便捷工具)https://sqlitestudio.pl/

Android11 修改桌面布局(带便捷工具)

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

Android11 修改桌面布局(带便捷工具)

接下来通过adb Shell连接设备去到下面这个目录里,确认一下launcher包名是否正确,AOSP11源码基本就是com.android.launcher3



# 原生 Launcher3:进入数据库目录
cd /data/data/com.android.launcher3/databases

此目录可以找到launcher.db数据库将其adb pull导出到本地,然后通过上面的SQLiteStudio打开

Android11 修改桌面布局(带便捷工具)Android11 修改桌面布局(带便捷工具)

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

Android11 修改桌面布局(带便捷工具)

源码是<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一些属性

属性名 含义 取值说明 示例

launcher:uri
快捷方式的启动目标 支持 Intent 语法(
#Intent;...;end
)或网址(
http://...

launcher:uri="#Intent;action=android.intent.action.MAIN;component=com.gproglobal.rfiddemo/.MainActivity;end"

launcher:title
快捷方式的显示名称 字符串,自定义快捷方式的桌面显示文字(优先级高于应用默认名称)
launcher:title="RFID演示"

launcher:icon
快捷方式的自定义图标 资源 ID(
@drawable/xxx
)或图标包路径

launcher:icon="@drawable/ic_rfid_demo"

launcher:packageName
关联的应用包名 字符串,指定快捷方式对应的应用包名(仅辅助标识,不控制启动)
launcher:packageName="com.gproglobal.rfiddemo"

launcher:className
关联的 Activity 类名 字符串,指定快捷方式对应的 Activity 类名(仅辅助标识)
launcher:className="com.gproglobal.rfiddemo.MainActivity"

还有各厂商拓展的一些专属属性

1. 小米 MIUI 启动器(
com.miui.home

属性名 含义 示例

launcher:package
直接指定应用包名(替代
uri
的 Intent 组件)

launcher:package="com.gproglobal.rfiddemo"

launcher:className
直接指定 Activity 类名(配合
package
使用)

launcher:className="com.gproglobal.rfiddemo.MainActivity"

launcher:folderName
文件夹的显示名称
launcher:folderName="工具"

launcher:hideLabel
是否隐藏快捷方式文字标签
launcher:hideLabel="true"

2. 华为 EMUI 启动器(
com.huawei.android.launcher

属性名 含义 示例

launcher:component
直接指定组件路径(包名 / 类名)
launcher:component="com.gproglobal.rfiddemo/com.gproglobal.rfiddemo.MainActivity"

launcher:appWidgetId
小部件的唯一 ID
launcher:appWidgetId="200"

launcher:background
快捷方式的背景颜色
launcher:background="#FFFFFF"

3. OPPO ColorOS 启动器(
com.coloros.launcher

属性名 含义 示例

launcher:appName
快捷方式的自定义名称(同
title

launcher:appName="RFID演示"

launcher:iconRes
自定义图标资源路径
launcher:iconRes="assets/icons/rfid.png"

launcher:gridX
更精细的横向坐标(像素级)
launcher:gridX="300"

launcher:gridY
更精细的纵向坐标(像素级)
launcher:gridY="100"
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...