Android StudioandroidAndroid JNI

学习Android NDK MakeFile

2017-05-11  本文已影响253人  阳春面

MakeFile介绍

NDK中的MakeFile有Application.mk和Android.mk两个文件组成,
Application.mk是对整个项目的全局性描述,比如编译的平台,编译的优化选项等;Android.mk是项目中某一个模块的编译脚本,在其中指定Module的名称,需要编译的代码文件,以及需要包含的头文件等。

Application.mk

Application.mk 相对较少,我们一般只需要关注以下几个常用的选项

APP_ABI := armeabi-v7a 
APP_PLATFORM := android-5
APP_STL := gnustl_static

- APP_PROJECT_PATH
指定项目的路径,一般我们的项目是放在jni目录下的,可以不用指定。

- APP_BUILD_SCRIPT
指定NDK编译脚本的文件名称,如果编译脚本名称为Android.mk, 可以不用指定。

Android.mk

基础结构

Android.mk编写我们一般有一些固定的顺序, 以下是最简单的Android.mk结构

LOCAL_PATH := $(call my-dir)
 
include $(CLEAR_VARS)
 
LOCAL_MODULE    := test
LOCAL_SRC_FILES := test.c
 
include $(BUILD_SHARED_LIBRARY)

引用外部动态链接库

首先中Android.mk文件中将共享库声明为一个独立的模块

include $(CLEAR_VARS)
LOCAL_MODULE := avcodec 
LOCAL_SRC_FILES := prebuilt/ffmpeg/libavcodec.so    
include $(PREBUILT_SHARED_LIBRARY) 

在自己的模块中再使用以下代码引用这个模块

LOCAL_C_INCLUDES :=  prebuilt/ffmpeg/include/
LOCAL_SHARED_LIBRARIES:=avcodec

使用系统库

如果我们在代码中需要使用系统库,比如LOG库,我们需要加入以下代码, 就可以引用系统的/system/lib/liblog.so了。

LOCAL_LDLIBS := -llog
上一篇下一篇

猜你喜欢

热点阅读