上回编译的MuPDF生成的so库体积太大了,于是尝试一下Google的apv来查看pdf
关于MuPDF的资料比较多,但是关于apv的资料就很少了,甚至源码在墙外,还需要科学上网。
源码地址http://code.google.com/p/apv/
贴心如我下载好了上传了一份给你们:点击打开链接
然后就开始根据apv - Building.wiki开始编译并且运行
1、需要 环境:Python 2.7.x or PyPy
python2.7 ./scripts/pjpy.py --configuration lite
lite版本或者pro版本
python2.7 ./scripts/pjpp.py --configuration pro
pjpp.py 的作用是用来重命名各种文件和路径的,然后替换源文件中一些string
2、ndk-build 需要环境android-ndk-r6以上版本和Linux环境
在命令行运行
scripts/build_native.sh
用途是
the code in the repository includes tarballs for all the libraries used. Running scripts/build_native.sh
will then copy the files from these tarballs into the appropriate subdirectories of the jni directory, generate font files, and finally run ndk-build
大意就是复制文件,然后执行ndk-build
3、经过上面两步,就生成了可以运行的工程,是eclipse的工程形式
4、然后导入到Android Studio
并且在sd卡上放了一个测试的pdf,运行一下
成功!
但是……
然后运行了一下3M左右比较大的pdf,崩溃退出了。
5、于是只好继续折腾
以为是中文的问题,
但是打开apv\pdfview\jni\mupdf\pdf\Android.mk已经没有DNOCJK了
于是试了一下中文,发现不是CJK的问题,应该是pdf过大导致的
资料是点击打开链接
资料里说:“理论上来说应该和Vudroid不太差,它的问题是刷新比Vudroid要慢那么一点,没有多点触控。但是,有一点必须说的是:Vudroid读取文本格式的超强,我给过20M的文字版的pdf测试过,vudroid都能顺畅阅读,Vudroid读取扫描版的或者里面有图片的要差一点,速度稍慢;而apv读取扫描版的则顺畅一点,50M的扫描版也没有问题,但是,20M的文字版pdf它不能读”
报的错是:Fatal signal 11 (SIGSEGV), code 1, fault addr 0x588 in tid 3965 (RendererWorkerT)
是native层的错误,不知道是字体的原因,还是pdf文件的原因,还是哪步编译过程不太对。