我正在构建一个 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
,它会按预期工作。
有什么方法可以为预构建的应用程序提供初始配置吗?
最佳答案
如果我是你,我会遵循用户空间应用程序的常用方法,即:如果在应用程序启动时使用了目录,则让应用程序本身填充初始共享首选项(通常在 onCreate( ) 所有相关 Activity )。
这将解决正确的位置、访问权限等问题。
最简单的方法是将默认值 bundle 在 Assets 中。
关于android - 为预装应用程序设置初始 shared_prefs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54444947/