为预先安装的应用设置初始shared_prefs吗?

时间:2019-01-30 16:17:08

标签: android android-source

我正在构建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,它将按预期工作。

有什么办法可以为预置的应用程序提供初始配置吗?

1 个答案:

答案 0 :(得分:1)

如果我是您,我将遵循用户空间应用程序的常用方法,即:如果在应用程序启动时使用了目录,则让应用程序本身填充初始共享首选项(通常在onCreate( )的所有相关活动)。

这将解决诸如正确位置,访问权限等问题。

简单的方法是将默认值捆绑在资产中。