開発にUbuntuを使用しているため、cygwinを使用してWindowsでこれを行う方法がわかりません。しかし、手順は同じであるべきだと思います。
- ここからファイル mupdf-0.9-source.tar.gz をダウンロードします:
http://code.google.com/p/mupdf/downloads/list?q=source
- ファイル mupdf-thirdparty.zip をダウンロードします。
- ソースを抽出します。デフォルトでは、フォルダーに抽出されます: mupdf-0.9/
- ファイル mupdf-thirdparty.zip をフォルダー mupdf-0.9/ に抽出します。
- プロジェクト mupdf-0.9 をビルドします (Windows の場合は、readme ファイルで宣言されているように VS を使用する必要があります)。
- 次に、フォルダー mupdf-0.9/android/ に移動します。
- ndk-build を実行します
- 次のエラーが発生する可能性があります。
Compile thumb : mupdfthirdparty <= jbig2.c
In file included from /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/os_types.h:53,
from /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/jbig2.c:22:
/home/yury/software/android-ndk-r6b/platforms/android-8/arch-arm/usr/include/stdint.h:48: error: redefinition of typedef 'int8_t'
/home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/os_types.h:47: note: previous declaration of 'int8_t' was here
解決策はここで説明されています: mupdf for android: ndk-build problem (error: redefinition of typedef ....)
ただし、ファイル / thirdparty/jbig2dec/os_types.h の型の定義の行にコメントを付けるだけです。
その後、2 つのライブラリを受け取ります。1 つは静的で、もう 1 つは Android アプリケーション用の共有です。
StaticLibrary : libmupdfthirdparty.a
SharedLibrary : libmupdf.so
これが最初の質問に対する答えでした。また、android/Readme.txt ファイルに優れたステップバイステップ ガイドがあります。
次に、2 番目の質問に対する回答です。Android 用のアプリケーションでは、テスト プロジェクトを見つけることができます。次の 3 つのファイルがあります。
- MuPDFActivity.java
- MuPDFCore.java
- PixmapView.java
プロジェクトの最後の 2 つのファイルをコピーするだけです。MuPDFActivity.java の例を参照して、mupdf レイアウトをアクティビティに埋め込む方法を確認してください。このファイルでは、次のように行われます。
PixmapView pixmapView;
//...
layout = new RelativeLayout(this);
//...
RelativeLayout.LayoutParams pixmapParams =
new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT);
pixmapParams.addRule(RelativeLayout.ABOVE,100);
layout.addView(pixmapView, pixmapParams);
setContentView(layout);