Android Framework 常见解决方案(02)android系统级APP集成方案

112 篇文章 88 订阅

1 原理

在Android源码中添加一个全新的系统级应用,该应用是 需要一个用于集成的apk文件、Android.mk文件 以及 相关的配置文件。

2 修改方案(Android O P Q)

在AOSP/package/apps/路径下 添加一个全新的应用XXX_server,添加对应的Android.mk文件,如下所示:

LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := XXXServer.apk
LOCAL_MODULE_CLASS := APPS
#可以为user、eng、tests、optional,optional代表在任何版本下都编译
LOCAL_MODULE_TAGS := optional
#编译模块的名称
LOCAL_MODULE := XXXServer
#可以为testkey、platform、shared、media、PRESIGNED(使用原签名),platform代表为系统应用
LOCAL_CERTIFICATE := platform
#应用输出路径,此处为system/app
LOCAL_MODULE_PATH := $(TARGET_OUT)/app
#不设置或者设置为false,安装位置为system/app,如果设置为true,则安装位置为system/priv-app?
LOCAL_PRIVILEGED_MODULE := false
#module的后缀,可不设置
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_DEX_PREOPT := false #不进行预先优化,一般第三方应用会避免优化,而导致APP各种异常
include $(BUILD_PREBUILT)

接下来在该目录下 添加对应的 package/apps/XXXServer/XXXServer.apk文件。这样该目录就完成了编辑。

然后我们再修改下系统的配置文件(根据项目的实际需求,一般是在aosp/device/ 目录下找到对应的mk文件,对PRODUCT_PACKAGES变量进行添加,这里仅采用一种通用的方式供参考)同时修改文件

build/make/target/product/sdk_base.mk
build/make/target/product/generic_no_telephony.mk

给PRODUCT_PACKAGES 环境变量 添加新任务,如下所示:

@@ -49,7 +49,8 @@ PRODUCT_PACKAGES := \
     EasterEgg \
     WallpaperPicker \
     WidgetPreview \
+    XXXServer \
 
# Define the host tools and libs that are parts of the SDK.
-include sdk/build/product_sdk.mk

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图王大胜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值