项目地址:https://github.com/DeYangLiu/AndroidPlayer/
下载链接:
看点:
支持软键盘输入和历史记录。使用了EditText和内部存储。 这里考虑了历史记录的更新: 总共8条记录,新的放在后面,最前面被挤出,反复的忽略。
用ListView实现的简易文件浏览器。
用intent启动还有一个Activity。
ndk 调试。
移植ffmpeg 2.5和sdl2 到android的各种坑。
同一时候编译多个库
====
ln -s /mnt/OpenSource/SDL_image jni/
ln -s /mnt/OpenSource/SDL_image/showimage.c jni/src/
gvim jni/src/Android.mk
LOCAL_SRC_FILES = ... showimage.c
LOCAL_SHARED_LIBRARIES += SDL2_image
測试 cannot locate symbol atof
忘了SDLActivity.java里面加上SDL2_image
然后又出现cannot locate symbol "signal"
Q. how to judge android phone 32 or 64bit?
A: adb pull /system/bin/dalvikvm && file dalvikvm
当然我的手机是32bit的啦,网上有人须要用32bit的ndk的,我试了也没用。
迷茫中,下午又搜了一番,遇到[1]之后,事情出现转机。
ffmpeg4android
====
[1]下载下来不知道从哪里開始,
细致读了里面的shell脚本,明确了要下载ffmpeg源代码,
然后buildtest.sh。[1]的最初计划是和android source
tree以下编译的,可是在内地下载不了, 而u pelya 改造成能够单独编译。
我一開始试最新的ffmpeg2.5,失败了。看到脚本里面仅仅支持到1.1,于是下载了[2]。
makefiles以下三个文件:
Android_configure.mk -- 设置配置參数字符串
Android_.mk -- libavutils libavcodec 等子文件夹都用到的编译參数。
Android.mk -- 包括上面两个文件; 跟据config.mak设置APP_MODULES编译參数。
然后把ffmpeg源代码解压到$ffmpegdir,把makefiles以下的文件复制过去。
生成两个文件:
jni/Android.mk
jni/Application.mk
ln -s $ffmpegdir jni/ffmpeg
然后就能够编啦:
ndk-build -j8 2>&1 | tee build.log
由于SDL2本身自带一个mk,直接
ln -s $sdldir jni/SDL
在jni/Application.mk加上SDL2。
剩下还需一个jni測试入口:
cp -rf android-ndk-r10d/samples/hello-jni/jni/src jni/adapter
UI入口:
cp -rf android-ndk-r10d/samples/two-libs/src src
项目文件:
cp -rf android-ndk-r10d/samples/two-libs/{res, AndroidManifest.xml default.properties}
git代码已使用静态链接。感谢[1]的指引。
ref
====
[1] git://git.code.sf.net/u/pelya/ffmpeg4android
[2] http://ffmpeg.org/releases/ffmpeg-1.1.tar.bz2