我正在构建Android映像,并使用以下Android.mk
预安装应用程序:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MyApplication
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_SRC_FILES := com.foobar.myapplication.apk
include $(BUILD_PREBUILT)
现在,我还要预安装一些配置文件。为此,我必须将文件复制到/data/data/com.foobar.myapplication/shared_prefs/
。我试图通过我的Makefile中的PRODUCT_COPY_FILES
来执行此操作,但是这些文件没有正确的权限,因此应用程序无法访问它们。
我唯一能想到的解决方案是从init.rc
调用一个脚本,该脚本在首次运行时填充我的配置文件。但是,将配置文件创建为该应用程序的正确Linux用户将非常棘手。如果我手动(出于测试目的)在文件上使用chmod a+rw
,它将按预期工作。
有什么办法可以为预置的应用程序提供初始配置吗?
答案 0 :(得分:1)
如果我是您,我将遵循用户空间应用程序的常用方法,即:如果在应用程序启动时使用了目录,则让应用程序本身填充初始共享首选项(通常在onCreate( )的所有相关活动)。
这将解决诸如正确位置,访问权限等问题。
简单的方法是将默认值捆绑在资产中。