Android Makefile example
1. example 1
# run ndk-build in parent directory of jni
#jni/Android.mk
#jni/include/test1.h
........
#jni/include/testn.h
#jni/include/client/client1.h
.........
#jni/include/client/clientn.h
#jni/include/common/comm1.h
.......
#jni/include/common/comm2.h
#jni/client/client1.cpp
.....
#jni/client/clientn.cpp
BUILD_ROOT := `pwd`\build
LOCAL_PATH := $(call my-dir)
BUILD_PATH := $(LOCAL_PATH)/$(BUILD_ROOT)
include $(CLEAR_VARS)
CLIENT_ROOT := client
ANDROID_INC := $(ANDROID_NDK_ROOT)/platforms/android-14/arch-arm/usr/include
RTSPINC_INC := /home/frank/workspace/Vrtsp/jni/include
LOCAL_C_INCLUDES := $(ANDROID_INC)
LOCAL_C_INCLUDES += $(RTSPINC_INC)
RTSPCLI_SRC := $(CLIENT_ROOT)/rtspclient.cpp
.........
RTSPCLI_SRC += $(CLIENT_ROOT)/rtp.cpp
LOCAL_CFLAGS += -DLINUX
LOCAL_MODULE := rtspclient
LOCAL_SRC_FILES := $(RTSPCLI_SRC)
include $(BUILD_SHARED_LIBRARY)
2. example 2
Android.mk
BUILD_ROOT := `pwd`\build
LOCAL_PATH := $(call my-dir)BUILD_PATH := $(LOCAL_PATH)/$(BUILD_ROOT)
include $(CLEAR_VARS)
CLIENT_ROOT := clientANDROID_INC := $(ANDROID_NDK_ROOT)/platforms/android-14/arch-arm/usr/includeRTSPINC_INC := /home/frank/workspace/vv/jni/client/include
LOCAL_C_INCLUDES := $(ANDROID_INC)LOCAL_C_INCLUDES += $(RTSPINC_INC)
RTSPCLI_SRC := $(CLIENT_ROOT)/a.cppRTSPCLI_SRC += $(CLIENT_ROOT)/b.cpp...................................RTSPCLI_SRC += $(CLIENT_ROOT)/client.cpp
LOCAL_CFLAGS += "-DLINUX -DANDROID"LOCAL_CPPFLAGS += "-DLINUX -DANDROID"LOCAL_CXXFLAGS += "-DLINUX -DANDROID"
LOCAL_MODULE := rtspclientLOCAL_SRC_FILES := $(RTSPCLI_SRC)
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)LOCAL_C_INCLUDES := $(ANDROID_INC)LOCAL_C_INCLUDES += $(RTSPINC_INC)
LOCAL_CFLAGS += "-DLINUX -DANDROID"LOCAL_CPPFLAGS += "-DLINUX -DANDROID"LOCAL_CXXFLAGS += "-DLINUX -DANDROID"
LOCAL_MODULE := myclientLOCAL_SRC_FILES := $(RTSPCLI_SRC) include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_MODULES := rtspclient myclient
3. exe
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=\surfaceflinger.cpp\demo.c
LOCAL_MODULE:= demo
LOCAL_SHARED_LIBRARIES := libui libutils
include $(BUILD_EXECUTABLE)
4. another example
BUILD_ROOT := `pwd`\build
LOCAL_PATH := $(call my-dir)
BUILD_PATH := $(LOCAL_PATH)/$(BUILD_ROOT)
#FFMPEG_ROOT := /home/frank/workspace/AndroidFFmpeg/libs/armv7
FFMPEG_ROOT := /home/frank/workspace/onevideo/jni/ffmpeg/libs/armv7
FFMPEG_INC := $(FFMPEG_ROOT)/include
FFMPEG_LIB := $(FFMPEG_ROOT)
ANDROID_INC := $(ANDROID_NDK_ROOT)/platforms/android-14/arch-arm/usr/include
RENDER_ROOT := render
CLIENT_ROOT := client
RENDER_INC := /home/frank/workspace/onevideo/jni/render/include
CLIENT_INC := /home/frank/workspace/onevideo/jni/client/include
COMMON_INC := /home/frank/workspace/onevideo/jni/common/include
#render module
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(ANDROID_INC)
LOCAL_C_INCLUDES += $(FFMPEG_INC)
LOCAL_C_INCLUDES += $(RENDER_INC)
LOCAL_C_INCLUDES += $(COMMON_INC)
LOCAL_CFLAGS := -DLINUX -DANDROID -DRENDER
#LOCAL_LDFLAGS += $(FFMPEG_LIB)/libffmpeg.a
LOCAL_MODULE := render
LOCAL_SRC_FILES := $(RENDER_ROOT)/render.c
#LOCAL_SRC_FILES += $(RENDER_ROOT)/register.c
#LOCAL_SRC_FILES += $(RENDER_ROOT)/yuv2rgb.c
LOCAL_SRC_FILES += $(RENDER_ROOT)/yuv2rgb.s
LOCAL_SRC_FILES += $(RENDER_ROOT)/yuv2rgbtab.c
include $(BUILD_STATIC_LIBRARY)
#client module
include $(CLEAR_VARS)
CLIENT_SRC := $(CLIENT_ROOT)/rtspclient.cpp
CLIENT_SRC += $(CLIENT_ROOT)/register.cpp
CLIENT_SRC += $(CLIENT_ROOT)/client.cpp
LOCAL_C_INCLUDES := $(ANDROID_INC)
LOCAL_C_INCLUDES += $(CLIENT_INC)
LOCAL_C_INCLUDES += $(RENDER_INC)
LOCAL_C_INCLUDES += $(COMMON_INC)
LOCAL_CFLAGS := -DLINUX -DANDROID -DCLIENT -Wno-psabi -fPIC
LOCAL_LDLIBS := -llog -L$(ANDROID_NDK_ROOT)/platforms/android-14/arch-arm/usr/lib -lGLESv1_CM -L$(FFMPEG_LIB) -lffmpeg
LOCAL_MODULE := xplayer
LOCAL_SRC_FILES := $(CLIENT_SRC)
LOCAL_STATIC_LIBRARIES := render
include $(BUILD_SHARED_LIBRARY)
#NDK_TOOLCHAIN_VERSION=4.4.3
APP_MODULES := xplayer render
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer