全志A63_SDK_User_Manual,全志A63_Android N快速移植手册

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/szx940213/article/details/99957440

为了快速移植及配置全志A63平台方案,可以参照文档中的一些配置项进行简单的定制化修改。实现快速移植方案。

2. 方案定制

方案目录 device/vendor‐name/device‐name/

2.1.overlay 说明

Android overlay 机制允许在不修改 apk 或者 framework 源代码的情况下,实现资源的定制。

以下几类能够通过 overlay 机制定义:

1. Configurations (string, bool, bool‐array)

2. Localization (string, string‐array)

3. UI Appearance (color, drawable, layout, style, theme, animation)

4. Raw resources (audio, video, xml)

扫描二维码关注公众号,回复: 7204442 查看本文章

2.1.1. 为产品添加 Overlay 目录

有两种不同的 overlay 目录定义:

1. PRODUCT_PACKAGE_OVERLAYS

用于指定产品

2. DEVICE_PACKAGE_OVERLAYS

用于同一设备模型的一系列产品

如果包含同一资源,那么 PRODUCT_PACKAGE_OVERLAYS 将覆盖 DEVICE_PACKAGE_OVERLAYS 。

如果要定义多个 overlays 目录,需要用空格隔开,同一资源的定义,将使用先定义的目录中的资源。

在方案目录下创建 overlay 和 product‐name/overlay 目录,分别用于 device 通用及 product 使用的 overlay 文件夹。

2.1.2. 改变 mk 文件来添加 overlays 的编译项

在文件 device/vendor‐name/device‐name/product‐name.mk 中添加:

PRODUCT_PACKAGE_OVERLAYS := \

device/vendor‐name/device‐name/product‐name/overlay \

$(PRODUCT_PACKAGE_OVERLAYS)

DEVICE_PACKAGE_OVERLAYS := \

device/vendor‐name/device‐name/overlay \

$(DEVICE_PACKAGE_OVERLAYS)

注:必须加上$(PRODUCT_PACKAGE_OVERLAYS)变量否则将找不到默认资源。

2.1.3. 在 overlay 目录下创建资源文件
在 overlay 目录下创建和要替换资源所在文件相同的路径的文件,此路径是相对于 android
platform 目录。如替换 framework‐res 路径为:platform/framework/base/core/res/res/value/config.xml
中的某一项,则在 overlay 中创建对应的路径:overlay/framework/base/core/res/res/value/config.xml
并添加要修改的一向配置,如:

<?xml version="1.0" encoding="utf‐8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<integer name="config_multiuserMaximumUsers">4</integer>
</resources>

2.2.预装 APK
预装 apk 安装有两种方法,可以安装到 system/app 目录下,也可以安装到 system/preinstall 目录下。
注:apk 名字不能含有中文、空格等特殊字符。

2.2.1. 默认预装 APK
由于涉及版权问题,建议不安装 GAPP 应用。若通过 GMS 认证需安装 Google 提供的正版 GAPP应用。

2.2.2. 预装到 system/app 目录
1. 在目录 vendor/aw/public/prebuild/apk/中创建一个目录存放对应 APK。
2. 将 apk 放入该目录中。
3. 在该目录中创建 Android.mk 文件,并编辑:

# Example
LOCAL_PATH := $(call my‐dir)
include $(CLEAR_VARS)
LOCAL_MODULE := APK_MODULE_NAME(模块的唯一名字)
LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED(签名方式)
#LOCAL_OVERRIDES_PACKAGES := OVERRIDES_MODULE(要替代的模块)
LOCAL_SRC_FILES := name.apk(apk 的文件名,一般与 MODULE 同名)
include $(BUILD_PREBUILT)

4. 在方案 mk 文件(device/vendor‐name/device‐name/product‐name.mk)中 PRODUCT_PACKAGES

中加入:

PRODUCT_PACKAGES += APK_MODULE_NAMEapk 模块名字,预装多个 apk 用空格隔开)

猜你喜欢

转载自blog.csdn.net/szx940213/article/details/99957440