如果把source code放到Android下编译,可以参照其它Andorid.mk写对应的Makefile。
如果在编译Android之前已经有编译好的库或者配置文件时,如何加入到Android中呢?
Android提供了Prebuilt编译方法,两个文件prebuilt.mk和multi_prebuilt.mk,对应的方法宏是BUILD_PREBUILT和 BUILD_MULTI_PREBUILT。
prebuilt.mk就是prebuilt的具体实现,它是针对独立一个文件的操作,multi_prebuilt.mk是针对多个文件的,它对多个文件进行判断,然后调用prebuilt对独立一个文件进行处理。
如果直接用prebuilt.mk的话还是比较麻烦的,得仔细看好需要的宏,如果使用multi_prebuilt.mk会更方便些,很多它都帮忙处理了。
## prebuilt etc
#include $(CLEAR_VARS)
#LOCAL_MODULE :=
#LOCAL_MODULE_TAGS := eng
#LOCAL_MODULE_CLASS :=
#LOCAL_MODULE_PATH :=
#LOCAL_SRC_FILES :=
#include $(BUILD_MULTI_PREBUILT)
## prebuilt so/a
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := *.so/*.a
include $(BUILD_MULTI_PREBUILT)
更容易的方式是:
$(call add-prebuilt-files, ETC, pv_player.cfg)
它会将pv_player.cfg copy to system/etc下,还可以设定类型:
ETC,APPS,EXECUTABLES,SHARED_LIBRARIES,STATIC_LIBRARIES
add-prebuilt-files的定义是在build/core/definitions.mk下
2、集成动态库
3、集成可执行程序 1: LOCAL_PATH := $(call my-dir)
4、集成pre-build Android应用程序(APK)
如果在编译Android之前已经有编译好的库或者配置文件时,如何加入到Android中呢?
Android提供了Prebuilt编译方法,两个文件prebuilt.mk和multi_prebuilt.mk,对应的方法宏是BUILD_PREBUILT和 BUILD_MULTI_PREBUILT。
prebuilt.mk就是prebuilt的具体实现,它是针对独立一个文件的操作,multi_prebuilt.mk是针对多个文件的,它对多个文件进行判断,然后调用prebuilt对独立一个文件进行处理。
如果直接用prebuilt.mk的话还是比较麻烦的,得仔细看好需要的宏,如果使用multi_prebuilt.mk会更方便些,很多它都帮忙处理了。
## prebuilt etc
#include $(CLEAR_VARS)
#LOCAL_MODULE :=
#LOCAL_MODULE_TAGS := eng
#LOCAL_MODULE_CLASS :=
#LOCAL_MODULE_PATH :=
#LOCAL_SRC_FILES :=
#include $(BUILD_MULTI_PREBUILT)
## prebuilt so/a
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := *.so/*.a
include $(BUILD_MULTI_PREBUILT)
更容易的方式是:
$(call add-prebuilt-files, ETC, pv_player.cfg)
它会将pv_player.cfg copy to system/etc下,还可以设定类型:
ETC,APPS,EXECUTABLES,SHARED_LIBRARIES,STATIC_LIBRARIES
add-prebuilt-files的定义是在build/core/definitions.mk下
=========================================================================
对于Android系统集成有源码的第三方库和程序,只需要提供Android.mk文件,把源码集成到Android编译系统中就可以了,并且有很多例子可以参考。但是对于没有源码的pre-build第三方库和程序,网上介绍的比较少,可以参考的例子也不多。本文简单介绍一下集成pre-build库和程序时候,怎样编写Android.mk。
1、集成静态库
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := libA.a \
libB.a
LOCAL_STATIC_LIBRARIES := libA \
libB
include $(BUILD_MULTI_PREBUILT)
2、集成动态库
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := libA.so
libB.so
include $(BUILD_MULTI_PREBUILT)
3、集成可执行程序 1: LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := hellovprc.elf
LOCAL_MODULE := hellovprc.elf
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := debug
include $(BUILD_PREBUILT)
4、集成pre-build Android应用程序(APK)
貌似原文没写 转不到