7. LOCAL_SHARED_LIBRARIES := avcodec avdevice
此变量是此模块运行中依赖的共享库模块列表,avcodec和avdevice都是前面定义的共享模块库;
eg:
8. include $(BUILD_SHARED_LIBRARY)
此变量设置Build System提供的变量执行GNU Makefile脚本,表示指定模块的生成方式;BUILD_SHARED_LIBARAY:编译为动态库;
- BUILD_SHARED_LIBRARY:编译为动态库(*.so),这里的LOCAL_SRC_FILES的值为*.c/*.cpp;
- BUILD_STATIC_LIBRARY:编译为静态库(*.a),这里的LOCAL_SRC_FILES的值为*.c/*.cpp;
- BUILD_EXECUTABLE:编译为Native C可执行程序;
- PREBUILT_SHARED_LIBRARY:编译为动态库(*.so),与BUILD_SHARED_LIBRARY不同,这里LOCAL_SRC_FILES的值不能是源文件,而是库文件;
- PREBUILD_STATIC_LIBRARY:编译静态库;
9:TARGET_PLATFORM、TARGET_ARCH_ABI和TARGET_ABI
TARGET_PLATFORM:
构建系统目标的Android API level;eg:TARGET_PLATFORM := android-22
TARGET_ARCH_ABI :
此变量将CPU和架构的ABI存储到目标;eg:TARGET_ARCH_ABI := arm64-v8a
TARGET_ABI:
设置Android API level和ABI的联结;eg:TARGET_ABI := android-22-arm64-v8a
注:Android.mk中的TARGET_xxx与Application.mk中的APP_xxx中的变量设置相似;