1. 程式人生 > >關於android使用自己的launcher替換默認launcher的方法

關於android使用自己的launcher替換默認launcher的方法

tps lec UNC 出現 ctu 免費 啟動 再次 運行

關於android使用自己的launcher替換默認launcher的方法

有時候,你可能希望用你自己的launcher程序替換默認的android launcher2和launcher3。而且希望作為系統起來就啟動你的launcher程序,而不需要用戶選擇。

特別是如果你的launcher程序和默認launcher程序共存時,即使你的launcher已經被用戶選擇為默認啟動launcher,突然運行時,你的程序出現crash,那麽系統會再次彈出選擇哪個launcher進行啟動的選擇框,而不是直接重啟你的launcher程序。

所以解決方法是用你的launcher程序在系統rom編譯時,替換默認的launcher。

即在你的Android.mk文件加入:
LOCAL_OVERRIDES_PACKAGES := Launcher2 Launcher3 Home
這條語句即可。
例如
你的launcher程序的Android.mk如下內容:
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := XXXlauncher
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PREBUILT_JNI_LIBS :=
@lib/arm64-v8a/libBugly.so

LOCAL_OVERRIDES_PACKAGES := Launcher2 Launcher3 Home
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

關於這一點,其實你在android自動的Launcher3的Android.mk文件中已經能找到類似的語句:
packages/apps/Launcher3
LOCAL_OVERRIDES_PACKAGES := Launcher2

需要註意的是,你加入此語句後,需要make clean或者在out目錄中清除上次已經編譯的Launcher2和Launcher3的中間文件和apk文件。

當然,由於此LOCAL_MODULE_TAGS := optional, 所以需要在相關的device.mk類似的.mk文件中加入
PRODUCT_PACKAGES += XXXlauncher

當然在out目錄中運行 Find . | grep -i launcher可以找到這些中間文件。

另外我的相關培訓視頻請看:
歡迎觀看我發布的各個課程: https://edu.51cto.com/lecturer/8896847.html

另外我的免費的linux各種驅動開發課程如下:
https://edu.51cto.com/course/17138.html

關於android使用自己的launcher替換默認launcher的方法