読者です 読者をやめる 読者になる 読者になる

Nexus 7 (2)

iBUFFALO 【Nexus7専用】 気泡が消える液晶保護フィルム スムースタッチタイプ BSTPNX7FT

iBUFFALO 【Nexus7専用】 気泡が消える液晶保護フィルム スムースタッチタイプ BSTPNX7FT

液晶フィルムが届いたので貼り付けた。
光沢が全くなくなり、指紋も付かないし、安かったのでけっこう良かった。
Nexus 7は、快適に使えてけっこう良い。GPSの性能が良いようで、室内にいてもGPSが使えた。
ブラウザとして使うにはもう少し画面が大きいほうがいいかと思うが、10インチのタブレットはもつのが面倒なので、このサイズが家で使うには一番いいかもしれないなぁ。

Nexus 7

[asin:B009OY449Q:detail]
Google PlayでNexus 7(16GB)を買いました。
保護フィルムを買っていなかったので注文した。保護フィルム貼るまでは開封できんなぁ。

iBUFFALO 【Nexus7専用】 気泡が消える液晶保護フィルム 光沢タイプ BSTPNX7FG

iBUFFALO 【Nexus7専用】 気泡が消える液晶保護フィルム 光沢タイプ BSTPNX7FG

Nexus 7を買ったので、持っていたSMT-i9100は売りました。原道N50も売りに出す予定です。

なばなの里

なばなの里オフィシャルサイト TOP
バスツアーでなばなの里に行ってきた。
日曜なのでものすごく人が多かった。光のトンネルは渋滞でなかなか進めなかった。新テーマの大自然はLEDに変化があってすごい感じだった。
バスツアーははじめていったが、案内やお土産のおすすめも教えてくれるので、自分で予定決めて運転していくよりも楽で良かった。

Underwater epsode1

Underwater Episode 1

Underwater Episode 1

Amazonマーケットプレイスで1円(送料340円)で買った。
あまり期待していなかったが、2枚組みでどっちも意外に良かった。
epsode4まであるので、全部買ってもよいかもしれない。

原道N50のUSBデバッグ

以下を参考にUSBデバッグができるようにしました。
1.USBドライバの設定
2012-10-02 - 左利きの憂鬱
2.adb.exeの更新
原道 N70双撃 でFW更新後にUSB認識しない時の解決手順 | タブクル
adb.exeをCube Root fpr ICS 4.0.3に付属のに変えると、デバッグできるようになりました。

アンドロイド用FFmpeg1.0

Roman10氏のブログ(How to Build FFmpeg for Android | roman10)からFFmpeg0.8.12のアンドロイド用バイナリはできていたが、FFmpeg0.8.12はビデオ時間(Duration)が間違った値になっていたので、正常(と思われる)Durationを返すFFmpeg1.0をビルドしてみた。
以下が、FFmpeg1.0のビルドスクリプトです。
(FFmpeg 1.0, NDK r8b, CPU armeabi)

#!/bin/bash
NDK=/home/myname/android-ndk-r8b
PLATFORM=$NDK/platforms/android-8/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
function build
{
./configure \
    --sysroot=$PLATFORM \
    --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
    --enable-cross-compile \
    --target-os=linux \
    --arch=arm \
    --extra-ldflags='-Wl' \
    --disable-shared \
    --enable-static \
    --enable-gpl \
    --enable-version3 \
    --enable-nonfree \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avdevice \
    --enable-avfilter \
    --enable-swresample \
    --disable-postproc \
    --enable-small \
    --disable-symver \
    --disable-debug \
    --disable-stripping \
    $ADDITIONAL_CONFIGURE_FLAG
sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
make clean
make  -j4 install
$PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
$PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -soname libffmpeg.so -shared -nostdlib  -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a libavfilter/libavfilter.a libswresample/libswresample.a -lc -lm -lz -ldl -llog  --warn-once  --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a
}

#armeabi v5TE
CPU=armeabi
#OPTIMIZE_CFLAGS="-marm -march=$CPU"
PREFIX=./android/$CPU 
#ADDITIONAL_CONFIGURE_FLAG=
build

以上で、ffmpeg.soができるので、コマンド実行用のライブラリのビルドをします。

Android.mk

LOCAL_PATH := $(call my-dir)

#declare the prebuilt library
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg-prebuilt
LOCAL_SRC_FILES := ffmpeg-1.0/android/armeabi/libffmpeg.so
LOCAL_EXPORT_C_INCLUDES := ffmpeg-1.0/android/armeabi/include
LOCAL_EXPORT_LDLIBS := ffmpeg-1.0/android/armeabi/libffmpeg.so
LOCAL_PRELINK_MODULE := true
include $(PREBUILT_SHARED_LIBRARY)

#the andzop library
include $(CLEAR_VARS)
LOCAL_ALLOW_UNDEFINED_SYMBOLS=false
LOCAL_MODULE := ffmpeg_main_jni
LOCAL_SRC_FILES := my_ffmpeg.c my_cmdutils.c ffmpeg_opt.c ffmpeg_filter.c mylog.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/ffmpeg-1.0
LOCAL_SHARED_LIBRARY := ffmpeg-prebuilt
LOCAL_LDLIBS := -llog -ljnigraphics -lz -lm $(LOCAL_PATH)/ffmpeg-1.0/android/armeabi/libffmpeg.so
include $(BUILD_SHARED_LIBRARY)

my_ffmpeg.c, my_cmdutil.cはffmpeg.c,cmdutil.cを少し変更したもの、ffmpeg_opt.c, ffmpeg_filter.cはそのまま、mylog.cは自分用のlog関数です。
Application.mk

APP_ABI := armeabi
APP_PLATFORM := android-8

ffmpeg.cのexit_program()をexit()しないように修正する。exit_program()のnoreturnを外した。(外しておかないとexit_program()の後でセグメンテーション違反が発生して落ちたので…)

簡単に要点だけを書いたが、これだけするにも数ヶ月かかった。FFmpegは面倒だなぁ…。
FFmpegの都合で、最後のほうはubuntu12.04を使っていたが、Androidアプリを作るにはwindowsよりもubuntuのほうが快適動作する(AVDが特に早い)ことがわかり、今後Androidアプリを作るんならubuntuでしようと思った。

5インチAndroid端末

アマゾンの評価が良かったので、原道N50という中国製のを買った。
液晶が見えにくい、タッチの反応が良くない(ずれている)、文字やアイコンが小さい(OSが4.0になって表示が細かくなった?)など使いごこちがあまり良くないなぁ。値段は倍するが、iPodTouchを買ったほうが良かったような気もする...
アプリの動作確認とOS4.0の操作になれるために、いちおう持っておこうか。