这个AVI视频播放器应用程序作为测试例子。通过这章你将扩展这个测试应用程序来试验不同的native Graphics APIs。这个例子应用程序将提供如下:
一个Android应用程序项目代用原生代码的支持。
一个静态连接的AVI库,带有展示给Java层的基本函数和绑定Activity生命周期。
一个简单的GUI来展示着avi视频的文件和原生图形Api的类型来使用来播放。
下面的步骤让AVILIB成为一个NDK导入的模块:
1.使用你最喜欢的浏览器,转到http://tcforge.brelios.de/.
2.在写时,这最新的Transcode的版本是1.1.5.接下来下载transcode-1.1.5.tar.bz2源文件的存档文件。
3.打开一个窗口终端如果你正在使用Mac OS或LInux,或者Cygwin如果你正在使用Windows。
4.改变当前目录到Android NDK导入模块目录通过使用如下命令:
cd $Android_ndk_home/sources
5.解压下载的压缩文件 tar jxvf <Download Location>/transcode-1.1.5.tar.bz2
6.改变着目前的目录到Transcode的avilib子目录,通过:cd transcode-1.1.5/avilib
7.使用Eclipse打开platform.h.如下,增加粗体行在#include“config.h"的周围。
#ifdef HAVE_CONFIG_H
#endif
8.这Android NDK建立系统需要这在它拥有的Andoid.mk文件模式需要的导入模块。使用Eclipse,建立一个新的Android.mk在目前的目录,内容如下:
LOCAL_PATH := $(call my-dir)
#
# Transcode AVILib
#
# Source files
MY_AVILIB_SRC_FILES := avilib.c platform_posix.c
# Include path to export
MY_AVILIB_C_INCLUDES := $(LOCAL_PATH)
#
# AVILib static
#
include $(CLEAR_VARS)
# Module name
LOCAL_MODULE := avilib_static
# Source files
LOCAL_SRC_FILES := $(MY_AVILIB_SRC_FILES)
# Include path to export
LOCAL_EXPORT_C_INCLUDES := $(MY_AVILIB_C_INCLUDES)
# Build a static library
include $(BUILD_STATIC_LIBRARY)
#
# AVILib shared
#
include $(CLEAR_VARS)
# Module name
LOCAL_MODULE := avilib_shared
# Source files
LOCAL_SRC_FILES := $(MY_AVILIB_SRC_FILES)
# Include path to export
LOCAL_EXPORT_C_INCLUDES := $(MY_AVILIB_C_INCLUDES)
# Build a shared library
include $(BUILD_SHARED_LIBRARY)