目录需求:实现方法:具体实现步骤:1、APK源码中设置应用为桌面应用2、Android源码中设置应用为系统预装应用3、Android源码中设置应用为系统桌面应用

需求:

要设置一应用为桌面应用,且重启开机时不弹出选择弹窗,直接默认非原系统应用。

实现方法:

实现方法一共两种:

读取当前有多少应用是桌面应用,在开机启动时,匹配所需应用为默认应用。

直接把所需应用设置为系统桌面应用。

前一种方法,可以实现系统内多个桌面应用切换,当不想用第三方应用时,可以从设置中切换回原生桌面应用。第二种方法就比较绝,相当于直接把第三方应用当作系统桌面应用,但是若该应用出BUG时,桌面就不能启动,因为桌面就是该应用。

第一种方法实现非常繁琐,第二种方法实现较为简单,所以本方法采用第二种方法。

具体实现步骤:

1、APK源码中设置应用为桌面应用

只需APK的AndroidMainfest.xml中修改如下即可:

修改后即可实现如下效果:

但是,以上修改在每次开机时还会弹出此框,所以需要对Android源码加以修改。

2、Android源码中设置应用为系统预装应用

在T:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps文件夹下建立一文件夹,名称为EV_WebViewTest,在该文件夹下放入APK文件,重命名为EV_WebViewTest.apk,并建立一个Android.mk文件,文件内容如下:

# EV_WebViewTest

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := EV_WebViewTest

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_TAGS := optional

LOCAL_BUILT_MODULE_STEM := package.apk

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

#LOCAL_PRIVILEGED_MODULE :=

LOCAL_CERTIFICATE := PRESIGNED

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

#LOCAL_REQUIRED_MODULES :=

#LOCAL_PREBUILT_JNI_LIBS :=

include $(BUILD_PREBUILT)

并在T:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps\apps.mk的文件内添加以下代码:

PRODUCT_PACKAGES += \

EV_WebViewTest

这样编译完固件烧录后,就会在系统内多了一个预装APK,其名称不一定是EV_WebViewTest,以APK项目设置为准。

3、Android源码中设置应用为系统桌面应用

本操作十分简单,只需在T:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps\EV_WebViewTest\Android.mk中添加以下即可:

LOCAL_OVERRIDES_PACKAGES := Launcher3

解释一下:该语句的意思就是说,系统原生的Launcher3应用将不会被编进系统,被EV_WebViewTest这个应用给替换了。

LOCAL_OVERRIDES_PACKAGES这个语句通常用于替换系统原生内置应用。

仔细观察T:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps该文件下许多应用,都用到了该语句,如什么TVLauner,就是干电视盒子的。


德国世界杯战绩 历年 德国4次世界杯冠军
欧洲杯预选赛 瑞典 3-2 荷兰