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

相关推荐
狂热开发者5 小时前
车载中控要给鸿蒙用户,能不能和 Android 共用一个二维码?
android·华为·harmonyos
.Bryce.5 小时前
T2-LLM评测不等于Agent评测
android·java·人工智能·后端·gpt·agent·1024程序员节
美狐美颜SDK开放平台6 小时前
视频美颜SDK如何应对快速转头与大幅度面部动作?
android·人工智能·ios·音视频·直播美颜sdk·视频美颜sdk
2601_968900776 小时前
玻璃深加工的工艺窗口:4 道工序的温度与时间参数边界
android·java·javascript
好的佩奇017 小时前
Dart 之类修饰符
android·flutter·dart
YB13757 小时前
Jetpack Compose 动画Modifier.animateContentSize()
android
事圆则缓7 小时前
Android 版本号、API Level 和 JDK 版本有什么关系?
android
zhangguojia77 小时前
Android Activity 生命周期结束流程:从 finish() 到 onDestroy() 的跨进程状态调度
android
Jewel1057 小时前
文字为什么总是不居中!记录一个bug
android·flutter·ios
mmsx8 小时前
Android 并发考古:newThread 与 RxJava 共存,以及 GlobalScope 的三宗罪
android·echarts·rxjava