並加入一些操作細節, 以解決 build error
1. Create Android application project
2. Create <project>/jni
3. Change current directory to <project>/jni
4. git clone http://git.chromium.org/webm/bindings.git
5. git clone http://git.chromium.org/webm/libvpx.git
6. ./libvpx/configure --target=armv7-android-gcc --disable-examples -disable-neon --sdk-path=<full path to ndk>
7. Change current directory to <project>/jni/bindings/JNI
8. git clone http://git.chromium.org/webm/libwebm.git
9. Download ogg library from http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz, extract to bindings/JNI
10. cd llibogg-1.3.0 && ./configure && cd..
11. Download libvorbis from http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
12. svn checkout http://libyuv.googlecode.com/svn/trunk libyuv-read-only
這時你的 bindings/JNI 目錄下會有以下目錄
libogg-1.3.0/
libvorbis-1.3.3/
libvpx/
libwebm/
13. Change current directory to <project>/jni
14. Create Application.mk with the data below
APP_ABI := armeabi-v7a
APP_OPTIM := release
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti
15. Create Android.mk with the data below
WORKING_DIR := $(call my-dir)
BINDINGS_DIR := $(WORKING_DIR)/bindings/JNI
include $(BINDINGS_DIR)/Android.mk
16. ndk-build -C <path to project>
大功告成, 你會在你的<project>/lib/armeabi-v7a 下看到 libvpx.so 等檔案
如何測試 build 出來的 .so 可以用呢? 在 README.android 裡也有介紹
在 MainActivity onCreate 加入以下的 code 就可以了
int[] major = new int[2];
int[] minor = new int[2];
int[] build = new int[2];
int[] revision = new int[2];
MkvMuxer.getVersion(major, minor, build, revision);
String outStr = "libwebm:" + Integer.toString(major[0]) + "." +
Integer.toString(minor[0]) + "." + Integer.toString(build[0]) + "." +
Integer.toString(revision[0]);
TextView tv = new TextView(this);tv.setText(outStr);
setContentView(tv);
沒有留言:
張貼留言