Skip to content

Параграф 3: Отключаем лишнее

Виджеты

Наверное, уже все современные кастомные прошивки автоматически выбирают упрощённый вариант домашнего экрана при сборке Android Go. Если это оказалось не так, то следует добавить в device.mk следующее:

makefile
PRODUCT_PACKAGES += Launcher3QuickStepGo

Чтобы приложения, которые зависят от функционала виджетов (например, сторонние лончеры из Google Play), не падали, следует добавить такой конфиг в оверлей overlay/frameworks/base/core/res/res/values/config.xml:

xml
    <!-- Launcher Go customization requires AppWidgetService, but otherwise
    home screen widgets are not supported -->
    <bool name="config_enableAppWidgetService">true</bool>

Навигация жестами

Компания Google рекомендует предоставлять пользователю навигацию жестами. Тем не менее, по крайней мере для Android 11, рекомендуется использовать по умолчанию навигацию тремя кнопками с возможностью её переключения на жестовую.

В оверлее overlay/frameworks/base/core/res/res/values/config.xml добавляем следующее для добавления жестовой навигации:

xml
    <!-- Whether or not swipe up gesture's opt-in setting is available on this device -->
    <bool name="config_swipe_up_gesture_setting_available">true</bool>

Либо, если решено предоставлять только навигацию тремя кнопками. В оверлее overlay/frameworks/base/core/res/res/values/config.xml:

xml
    <bool name="config_swipe_up_gesture_setting_available">false</bool>

В device.mk также добавим:

makefile
PRODUCT_PACKAGES += NoNavigationBarModeGestural

Многооконность

Android Go многооконность не поддерживает. Она отключается автоматически при выставлении свойства ro.config.low_ram=true, однако в дополнение к этому рекомендуется также отключить этот функционал и в оверлее overlay/frameworks/base/core/res/res/values/config.xml:

xml
    <!-- True if the device supports at least one form of multi-window.
    E.g. freeform, split-screen, picture-in-picture. -->
    <bool name="config_supportsMultiWindow">false</bool>

Живые обои

Живые обои - достаточно ресурсоёмкое удовольствие. Не удивительно, что в Android Go оно не поддерживается.

Из device.mk следует исключить перечисленные ниже модули:

makefile
PRODUCT_PACKAGES += \
    LiveWallpapers \
    LiveWallpapersPicker \
    VisualizationWallpapers \
    librs_jni

Также вместо full_base.mk следует подключать generic.mk:

makefile
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)

Многопользовательский режим

На слабых и устаревших устройствах это явно неуместная функция. И хотя в последних версиях Android Go её наличие допустимо, на старых устройствах её лучше отключить, добавив в device.mk следующее:

makefile
PRODUCT_PROPERTY_OVERRIDES += fw.max_users=1

В overlay/frameworks/base/core/res/res/values/config.xml:

xml
    <!-- Whether UI for multi user should be shown -->
    <bool name="config_enableMultiUserUI">false</bool>

    <!--  Maximum number of supported users -->
    <integer name="config_multiuserMaximumUsers">1</integer>

    <!-- Maximum number of users we allow to be running at a time -->
    <integer name="config_multiuserMaxRunningUsers">1</integer>

Экран блокировки

На слабых устройствах рекомендовано отключить алгоритм блокировки ложных срабатываний при разблокировке экрана.

В оверлей overlay/frameworks/base/packages/SystemUI/res/values/config.xmlдобавляем:

xml
    <!-- If true, enable the advance anti-falsing classifier on the lockscreen. On
    some devices it does not work well, particularly with noisy touchscreens. Note
    that disabling it may increase the rate of unintentional unlocks. -->
    <bool name="config_lockscreenAntiFalsingClassifierEnabled">false</bool>