Android預裝應用的方法


Android預裝應用有很多種方法:

推薦第三種

一、在Vender文件夾內預裝不可卸載應用

另一種預裝應用存放方式,存放目錄為W:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps在該文件夾下存放所需APP文件夾,在文件夾內存放APK文件和MK文件,其Android.mk形式為:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TESTAPP
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)

另外還需在W:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps\apps.mk中增加如此描述

PRODUCT_PACKAGES += TESTAPP

二、在Package文件夾內預裝不可卸載應用

另一種預裝應用存放方式,存放目錄為W:\Code\px30-jd4_android8\AIO-PX30-JD4\packages\apps在該文件夾下存放所需APP文件夾,在文件夾內存放APK文件和MK文件,其Android.mk形式為:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# Module name should match apk name to be installed
LOCAL_MODULE := BILIBILI
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PRIVILEGED_MODULE := false
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

另外還需在W:\Code\px30-jd4_android8\AIO-PX30-JD4\device\rockchip\common\device.mk中增加如此描述

PRODUCT_PACKAGES += BILIBILI

三、在Device下預裝應用

該方法可預裝:

  • 不可卸載應用
  • 可卸載應用,重置后恢復
  • 可卸載應用,重置后不可恢復

先講下流程,在W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\common\device.mk文件內有如下代碼:

# Prebuild apps
ifneq ($(strip $(TARGET_PRODUCT)), )
    TARGET_DEVICE_DIR=$(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_PRODUCT)/BoardConfig.mk')
    TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(TARGET_DEVICE_DIR)))
#    $(info device-rockchip-common TARGET_DEVICE_DIR: $(TARGET_DEVICE_DIR))
    $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_DEVICE_DIR) preinstall bundled_persist-app)
    $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_DEVICE_DIR) preinstall_del bundled_uninstall_back-app)
    $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_DEVICE_DIR) preinstall_del_forever bundled_uninstall_gone-app)
    -include $(TARGET_DEVICE_DIR)/preinstall/preinstall.mk
    -include $(TARGET_DEVICE_DIR)/preinstall_del/preinstall.mk
    -include $(TARGET_DEVICE_DIR)/preinstall_del_forever/preinstall.mk
endif

其主要內容為,根據預裝APP文件,生成相應的文件。

1、不可卸載應用

將應用放入該文件夾內

W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\preinstall

2、可卸載應用,重置后可恢復

將應用放入該文件夾內

W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\preinstall_del

3、可卸載應用,重置后不可恢復

將應用放入該文件夾內

W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\preinstall_del_forever

最后在W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\device.mk文件內添加所要增加的應用名,如下所示:

PRODUCT_PACKAGES += \
	BILIBILI \
	NeteaseCloudMusi \
	Quark_Browser_unins \
	tim

在make工程后,會發現之前放進去的APK文件會,會被生成一個文件夾,文件夾內有Android.mk文件和apk文件,有些應用還會有lib文件

END

預裝應用的默認權限,請參考該文章《Android 默認打開應用權限》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM