システムアイコンの形状の設定と初期化

時刻:
同社は 2020/11/05 より前の csdn を許可しておらず、注意事項は別の場所に書かれています。最近整理整頓された

1. アイコン形状オーバーレイのメインコード

アイコン形状のメインコードは、frameworks/base/services/core/java/com/android/server/om にあります。

frameworks/base/core/java/android/content/om/OverlayManager.java
setEnabled
setEnabledExclusiveInCategory
↑↓aidl
frameworks/base/services/core/java/com/android/server/om/OverlayManagerService.java
↓
↓真正的实现
frameworks/base/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java
updateOverlaysForUser
setEnabled
setEnabledExclusiveInCategory

2. デフォルトの形状を設定する

Frameworks/base/core/res/res/values/config.xml
形状とブール値は一緒に変更する必要があります。cts はアイコンの形状が円かどうかを検出します。

<bool name="config_useRoundIcon">true</bool>
<string name="config_icon_mask" translatable="false">"M50 0C77.6 0 100 22.4 100 50C100 77.6 77.6 100 50 100C22.4 100 0 77.6 0 50C0 22.4 22.4 0 50 0Z"</string>

3. 遭遇したバグ

アイコンの形状を丸型に設定すると、再起動後は正方形になります
。/vendor/partner_gms/products/gms.mk で、デフォルトのオーバーライド設定が再度発生します。

スプレッドラム android11

#PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
#    ro.boot.vendor.overlay.theme=com.android.internal.systemui.navbar.threebutton;com.android.theme.icon.squircle

mtk android11/
device/mediatek /system/common/ago/device.mk

ro.boot.vendor.overlay.theme=com.android.theme.icon.roundedrect

概要
フレームワークによって設定されたアイコン形状が有効にならないことが判明した場合、現在のアイコン形状のパッケージ名をグローバルに検索するか、ro.boot.vendor.overlay.theme

おすすめ

転載: blog.csdn.net/a396604593/article/details/129820851