Lineageos 22.1(Android 15)Launcer简单调整初始化配置

一、前言

Launcer的初始化配置主要在如下的xml文件夹下,默认读取的5x5

这里我们把device_profiles调整一下,然后新建一个default_workspace_my.xml作为我们自己的配置就行。

二、配置

注意Lineageos 的Launcer是在lineageos/packages/apps/Trebuchet 这个目录下面,和原生aosp有点差别。

简单调整

device_profiles.xml,

xml 复制代码
 <grid-option
        launcher:name="5_by_5"
        launcher:numRows="5"
        launcher:numColumns="6"
        launcher:numFolderRows="4"
        launcher:numFolderColumns="4"
        launcher:numHotseatIcons="5"
        launcher:numExtendedHotseatIcons="6"
        launcher:dbFile="launcher.db"
        launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_split"
        launcher:defaultLayoutId="@xml/default_workspace_my"
        launcher:deviceCategory="phone|multi_display" >

        <display-option
            launcher:name="Large Phone"
            launcher:minWidthDps="406"
            launcher:minHeightDps="694"
            launcher:iconImageSize="56"
            launcher:iconTextSize="12.0"
            launcher:allAppsBorderSpace="16"
            launcher:allAppsCellHeight="104"
            launcher:canBeDefault="true" />

        <display-option
            launcher:name="Large Phone Split Display"
            launcher:minWidthDps="406"
            launcher:minHeightDps="694"
            launcher:iconImageSize="56"
            launcher:iconTextSize="12.0"
            launcher:allAppsBorderSpace="16"
            launcher:allAppsCellHeight="104"
            launcher:canBeDefault="true" />

        <display-option
            launcher:name="Shorter Stubby"
            launcher:minWidthDps="255"
            launcher:minHeightDps="400"
            launcher:iconImageSize="48"
            launcher:iconTextSize="12.0"
            launcher:allAppsBorderSpace="16"
            launcher:allAppsCellHeight="104"
            launcher:canBeDefault="true" />

    </grid-option>

就调整了两行代码

xml 复制代码
  launcher:numColumns="6"
  launcher:defaultLayoutId="@xml/default_workspace_my"

然后是 default_workspace_my.xml

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<favorites xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3">

    <!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
    <!-- Dialer, Messaging, Contacts, Browser, Camera -->
    <resolve
        launcher:container="-101"
        launcher:screen="0"
        launcher:x="0"
        launcher:y="0" >
        <favorite launcher:uri="#Intent;action=android.intent.action.DIAL;end" />
        <favorite launcher:uri="tel:123" />
        <favorite launcher:uri="#Intent;action=android.intent.action.CALL_BUTTON;end" />
    </resolve>

    <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>

    <resolve
        launcher:container="-101"
        launcher:screen="2"
        launcher:x="2"
        launcher:y="0" >
        <favorite launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.APP_CONTACTS;end" />
    </resolve>

    <resolve
        launcher:container="-101"
        launcher:screen="3"
        launcher:x="3"
        launcher:y="0" >
        <favorite launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.APP_BROWSER;end" />
        <favorite launcher:uri="http://www.example.com/" />
    </resolve>

    <resolve
        launcher:container="-101"
        launcher:screen="4"
        launcher:x="4"
        launcher:y="0" >
        <favorite launcher:uri="#Intent;action=android.media.action.STILL_IMAGE_CAMERA;end" />
        <favorite launcher:uri="#Intent;action=android.intent.action.CAMERA_BUTTON;end" />
    </resolve>

    <!-- Screen 0 -->
<!--    <appwidget-->
<!--        launcher:packageName="com.google.android.googlequicksearchbox"-->
<!--        launcher:className="com.google.android.googlequicksearchbox.SearchWidgetProvider"-->
<!--        launcher:screen="0"-->
<!--        launcher:x="0"-->
<!--        launcher:y="0"-->
<!--        launcher:spanX="5"-->
<!--        launcher:spanY="1" />-->

    <appwidget
        launcher:packageName="com.android.deskclock"
        launcher:className="com.android.alarmclock.DigitalAppWidgetProvider"
        launcher:screen="0"
        launcher:x="0"
        launcher:y="1"
        launcher:spanX="6"
        launcher:spanY="2" />

    <!-- Google Folder -->
    <!-- Google, Gmail, Maps, YouTube, Drive, YouTube Music, Play Movies, Duo, Photos -->
    <folder
        launcher:title="@string/google_folder_title"
        launcher:screen="0"
        launcher:x="0"
        launcher:y="4">
        <favorite
            launcher:packageName="com.google.android.googlequicksearchbox"
            launcher:className="com.google.android.googlequicksearchbox.SearchActivity"/>
        <favorite
            launcher:packageName="com.google.android.gm"
            launcher:className="com.google.android.gm.ConversationListActivityGmail"/>
        <favorite
            launcher:packageName="com.google.android.apps.maps"
            launcher:className="com.google.android.maps.MapsActivity"/>
        <favorite
            launcher:packageName="com.google.android.youtube"
            launcher:className="com.google.android.youtube.app.honeycomb.Shell$HomeActivity"/>
        <favorite
            launcher:packageName="com.google.android.apps.docs"
            launcher:className="com.google.android.apps.docs.app.NewMainProxyActivity"/>
        <favorite
            launcher:packageName="com.google.android.apps.youtube.music"
            launcher:className="com.google.android.apps.youtube.music.activities.MusicActivity"/>
        <favorite
            launcher:packageName="com.google.android.videos"
            launcher:className="com.google.android.youtube.videos.EntryPoint"/>
        <favorite
            launcher:packageName="com.google.android.apps.tachyon"
            launcher:className="com.google.android.apps.tachyon.MainActivity"/>
        <favorite
            launcher:packageName="com.google.android.apps.photos"
            launcher:className="com.google.android.apps.photos.home.HomeActivity"/>
    </folder>

    <favorite
        launcher:screen="0"
        launcher:x="4"
        launcher:y="4"
        launcher:packageName="com.android.vending"
        launcher:className="com.android.vending.AssetBrowserActivity"/>

    <!-- Screen 1 -->
<!--    <appwidget-->
<!--        launcher:packageName="org.lineageos.twelve"-->
<!--        launcher:className="org.lineageos.twelve.ui.widgets.NowPlayingAppWidgetProvider"-->
<!--        launcher:screen="1"-->
<!--        launcher:x="0"-->
<!--        launcher:y="0"-->
<!--        launcher:spanX="5"-->
<!--        launcher:spanY="1" />-->

    <resolve
        launcher:screen="1"
        launcher:x="0"
        launcher:y="-1" >
        <favorite launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.APP_EMAIL;end" />
        <favorite launcher:uri="mailto:" />
    </resolve>

    <resolve
        launcher:screen="1"
        launcher:x="1"
        launcher:y="-1" >
        <favorite launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.APP_GALLERY;end" />
        <favorite launcher:uri="#Intent;type=images/*;end" />
    </resolve>

    <favorite
        launcher:packageName="org.lineageos.twelve"
        launcher:className="org.lineageos.twelve.MainActivity"
        launcher:screen="1"
        launcher:x="2"
        launcher:y="-1" />

    <favorite
        launcher:packageName="com.android.settings"
        launcher:className="com.android.settings.Settings"
        launcher:screen="1"
        launcher:x="3"
        launcher:y="-1" />

</favorites>

这里也调整了几个地方,把时钟弄成了6x2,然后移除了第二屏的音乐widget。

最后我们编译一下

bash 复制代码
make -j13 TrebuchetQuickStep  

这里更新直接安装apk就行,但是因为Launcer只有第一次会读取xml并保存到数据库,所以要删除db

bash 复制代码
adb root;adb remount
adb shell rm /data/data/com.android.launcher3/databases/launcher.db
adb reboot

重启后第二屏幕的music没有了,然后列数也变成了6列。

相关推荐
Android系统攻城狮9 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
传奇开心果编程13 小时前
【Compose Multiplatform 跨端开发学与练】第7课 平台适配与互操作
android·windows·学习·ui·ios·kotlin·composer
mmsx13 小时前
Android 地图数据链路:从 GDAL、KML 到多引擎适配
android·kotlin
2601_9689007713 小时前
大模型版本回归评估实战:从能力指标到额度口径的完整链路
android·数据挖掘·回归
ao-weilai15 小时前
MySQL数据库:基本查询
android·数据库·mysql
事圆则缓16 小时前
Kotlin 泛型方差实战:out、in、星投影与类型擦除
android·开发语言·kotlin
传奇开心果编程18 小时前
【Compose Multiplatform 跨端开发学与练】第5课 网络与数据层
android·网络·学习·ui·ios·kotlin·composer
ao-weilai19 小时前
MySQL数据库:内置函数
android·数据库·mysql
SWAGGY..19 小时前
【C++进阶】:(7)红黑树的原理与 C++ 实现:结构设计、插入调整及性质验证
android·java·开发语言·c++·算法
Android打工仔19 小时前
CoroutineScheduler 设计解析(上)—— 为什么 Dispatchers.IO 会创建更多线程?
android·kotlin·源码阅读