最后,我们使用include $(BUILD_PREBUILT)命令来编译和链接预编译的库文件。 编译和链接示例 在你的项目中,你可以创建一个名为Android.mk的文件,并将上述代码复制到该文件中。然后,在项目的根目录下运行ndk-build命令,即可开始编译和链接预编译的库文件。 总结 本文介绍了在Android开发中使用Android.mk文件中的BUILD...
LOCAL_SRC_FILES:=hello.cinclude$(BUILD_EXECUTABLE) 1. 2. 3. 4. 5. 6. 7. 8. 9. 这个文件定义了我们要编译的模块名称(hello),以及其源文件(hello.c)。 3. 定义Prebuilt设置 在Android.mk中添加Prebuilt设置,以便在构建时引用已编译的二进制文件。 # Prebuilt.mkLOCAL_PATH:=$(callmy-dir)includ...
BUILD_HOST_STATIC_LIBRARY BUILD_HOST_SHARED_LIBRARY BUILD_STATIC_LIBRARY BUILD_SHARED_LIBRARY BUILD_EXECUTABLE BUILD_HOST_EXECUTABLE BUILD_PACKAGE BUILD_PREBUILT BUILD_MULTI_PREBUILT BUILD_HOST_PREBUILT BUILD_JAVA_LIBRARY BUILD_STATIC_JAVA_LIBRARY BUILD_HOST_JAVA_LIBRARY 通过名称大概就可以猜出每个变量...
0: include $(BUILD_MULTI_PREBUILT) 2、集成动态库 1: LOCAL_PATH := $(call my-dir) 2: include $(CLEAR_VARS) 3: 4: LOCAL_PREBUILT_LIBS := libA.so 5: libB.so 6: include $(BUILD_MULTI_PREBUILT) 3、集成可执行程序 1: LOCAL_PATH:= $(call my-dir) 2: include $(CLEAR_VARS) ...
常见的有: BUILD_HOST_STATIC_LIBRARY BUILD_HOST_SHARED_LIBRARY BUILD_STATIC_LIBRARY BUILD_SHARED_LIBRARY BUILD_EXECUTABLE BUILD_HOST_EXECUTABLE BUILD_PACKAGE BUILD_PREBUILT BUILD_MULTI_PREBUILT BUILD_HOST_PREBUILT BUILD_JAVA_LIBRARY BUILD_STATIC_JAVA_LIBRARY BUILD_HOST_JAVA_LIBRARY 不同类型的模块的...
build/core/Makefile:25: *** Prebuilt apk found in PRODUCT_COPY_FILES: device/ti/nexttab/google_paly/Gmail.apk:system/app/Gmail.apk, use BUILD_PREBUILT instead!. Stop. 解决: gedit build/core/Makefile #Tommy Delete 删除如下代码 #define check-product-copy-files ...
BUILD_PREBUILT BUILD_MULTI_PREBUILT BUILD_HOST_PREBUILT BUILD_JAVA_LIBRARY BUILD_STATIC_JAVA_LIBRARY BUILD_HOST_JAVALIBRARY 通过名称大概就可以猜出每个变量所对应的模块类型。(在模块的 Android.mk 文件中,只要包含进这里对应的常量便可以执行相应类型模块的编译。对于 Android.mk 文件的编写请参见后文:“添...
从这个文件,可以看到,编译出来的主要有两个文件,一个am.jar(BUILD_JAVA_LIBRARY指定编译结果),同时还有一个am脚本(BUILD_PREBUILT 指定此文件已经是最终文件),最终放置在/system/bin目录,打开这个文件,可以看到: 从第一行的#!/system/bin/sh可以看到,是个sh脚本,具体含义等会讲解。 am.jar是将当前目录下的src...
:=true# 指定使用动态分区PRODUCT_BUILD_SUPER_PARTITION :=false# 指定不编译 super 分区# Soong namespacesPRODUCT_SOONG_NAMESPACES+=\$(LOCAL_PATH)# 指定 soong 命名空间# Update enginePRODUCT_PACKAGES+=\otapreopt_script\# 编译 otapreopt 脚本update_engine\# 编译 update_engineupdate_engine_sideload\# ...
:=true# 指定使用动态分区PRODUCT_BUILD_SUPER_PARTITION :=false# 指定不编译 super 分区# Soong namespacesPRODUCT_SOONG_NAMESPACES+=\$(LOCAL_PATH)# 指定 soong 命名空间# Update enginePRODUCT_PACKAGES+=\otapreopt_script\# 编译 otapreopt 脚本update_engine\# 编译 update_engineupdate_engine_sideload\# ...