Android中使用第三方库
1. 两个编译宏
- 如果在编译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会更方便些,很多它都帮忙处理了。
2. 示例
-
示例1
## 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
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_PREBUILT_LIBS := libmovextractor.so include $(BUILD_MULTI_PREBUILT)