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

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 徽章系列1: Top 30 android 开源项目徽章
  2. Android中用Toast.cancel()方法优化toast
  3. Android之-android-support-v4.jar的混淆
  4. Java Android 32位16位 MD5加密
  5. Android 三角标签控件、角标(AvatarLabelV
  6. 配置OpenCV for Android
  7. Android 捕获异常
  8. Android studio 编译异常信息记录
  9. Android判断是否有拍照权限
  10. Android向服务器提交数据(方式:get、post、