首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android源代码中添加预构建的二进制文件

在Android源代码中添加预构建的二进制文件
EN

Stack Overflow用户
提问于 2012-06-13 12:20:50
回答 3查看 16.4K关注 0票数 10

我有一个本机二进制文件,我想将它包含到Android的源代码中,所以当我编译它时,我的二进制文件将包含在/system/bin中。

我已经将二进制文件复制到文件夹/预置/ Android.mk /My-二进制文件中,并创建了一个新的Android.mk,其内容如下:

代码语言:javascript
运行
复制
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := my-binary
LOCAL_MODULE := my-binary
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)

但是,当我运行make时,我在日志中获得的唯一引用是:

代码语言:javascript
运行
复制
target Prebuilt: my-binary (out/target/product/generic/obj/EXECUTABLES/my-binary_intermediates/my-binary)

二进制文件根本没有安装到system.img中。在Installing a prebuilt binary on Android: "not found"中有一个几乎相同的问题,但是提问者已经知道了基本的过程,根本就没有解释过。如果我运行make我的二进制,我得到了相同的行,我张贴。

我也尝试过运行make /target/product/generic/system.img我的-二进制,但它也不起作用。我的二进制文件显示在out子文件夹中,但它不会包含在system.imng中

我是不是遗漏了什么?有没有办法让我的二进制文件只运行make -j#就可以包含在/system/bin中?

EN

回答 3

Stack Overflow用户

发布于 2012-06-13 14:33:23

刚在我的仿真器上测试过了,而且还能用。我用这个文件夹中的gdbserver作为示例。我已经为android交叉编译了一个strace,并使用它嵌入到图像中。因此,这些指令将适用于这个可执行文件。

在prebuilt/android-arm/strace

  • Put下面创建一个文件夹--您的二进制文件(在我的例子中是strace)--

添加具有以下内容的Android.mk文件:

代码语言:javascript
运行
复制
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := strace
LOCAL_MODULE := strace
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)


prebuilt_files :=

$(call add-prebuilt-files, EXECUTABLES, $(prebuilt_files))

使用指令构建:mmm prebuilt snod -j4 (如果您已经构建了图像)或者,您当然也可以使用make -j4

票数 9
EN

Stack Overflow用户

发布于 2016-06-03 19:05:09

如果二进制文件最终位于out目录中,而不是在图像中,这是因为您没有规则将二进制文件包含在图像中。

device/<vendorname>/<devicename>/device.mk中(或者在device.mk包含的一些makefile中),您需要有两个条目中的一个:

代码语言:javascript
运行
复制
PRODUCT_PACKAGES += my-binary

或者:

代码语言:javascript
运行
复制
PRODUCT_COPY_FILES += path/to/my-binary:/root/target/path/to/my-binary

..。我建议采用PRODUCT_PACKAGES方法;PRODUCT_COPY_FILES更适合脚本和配置文件。

注意:PRODUCT_PACKAGES使用模块名,其中PRODUCT_COPY_FILES使用二进制文件的实际名称/位置。

票数 4
EN

Stack Overflow用户

发布于 2017-03-28 07:36:26

你也可以有以下对我有用的.LOCAL_MDULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)包括$(BUILD_EXECUTABLE)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11014706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档