2010/12/22

最新のAndroid版Rockboxをコンパイルして使ってみる [Ar]

このエントリーをはてなブックマークに追加 2 comment
[ , ]
2011/03/06追記:
Android版Rockboxでたどり着く人が多いので、Android版Rockbox専用ページを作ってみた。
試行錯誤的知的生活blog: Android版Rockbox
要求仕様変更により一部記事を修正した。

2011/04/09追記:make apkのあたりを若干追記


今日、「Android Rockbox」でググったら以前書いた記事が上位で引っかかってビックリした。
ていうか、他に誰もAndroid版Rockboxについて書かないのは何故???
前回記事
試行錯誤的知的生活blog: [Ar][速報] ちょ、Android版Rockboxが公開されてる!(2010/12/5更新)

それはともかく、Android版Rockboxの不安定さに嫌気がさしてきたので、
多少は改善されることを期待して、最新版をコンパイルしてみた

↓以下、手順とその結果↓

まずは、VMwareやVirtualboxといった仮想化ソフトでUbuntuを起動。
  • 今回はVirtualbox+Ubuntu 10.04を使用。
最新のAndroid版RockboxをDLする。
  • RockboxAsAnApplication2010に記述されているgitkugel-rb.git
    →headsの先頭のlog →先頭のtar.gzをDL
    「android-test-plugins」というブランチが頻繁に更新されている模様。
    2010-12-05 Thomas Martitz Fix swapcontext implementation and add a implementation...
    ちなみにheadsの上から2番目のlogの先頭のtar.gz

    2010-12-04 Thomas Martitz Merge branches 'android-notification' and 'app-paths...
    だと、Pluginsが入っている。
    chopperとかいう横スクロールゲームがあったが、操作方法は不明。
    体感的には差は無かったが、logを見ると
    heads2番目の方がandroidについての記述が多いので、heads2番目の方がいいのかも。
  • $ tar xzvf ~~.tar.gz
下準備
  • 「~~/kugel-rb/android/README」を読んでおく
    This folder contains the java parts needed to build an Rockbox as an
    application for android.

    * Prerequisites

    Download and install the Android SDK[1] and NDK[2], or run installToolchain.sh.
    After you extracted the SDK, you need to run /tools/android in order to
    install the actual platform sdk from the available packages tab (SDK Platform
    Android 1.5 or above should work).
    In the virtual devices tab you can also setup a emulator.

    Then, make sure you have the ANDROID_SDK_PATH and ANDROID_NDK_PATH (pointing to
    the each's root directory) environment variables set up, otherwise configure will fail to find the compiler and
    compiling the java files will fail.

    * Build instructions

    1. Create a separate build folder. Do not build in this source directory.

    2. Run "../tools/configure". Choose target 200, then chose 'A' for Android
       and input your screen resolution.
    Choose the "Android" target and input your
       screen resolution.

    3. Run "make"

    4. Run "make zip". This has to be run the first time, and any time themes
       or plugins have changed. Otherwise you may skip it.

    5. Run "make apk"

    6. Optional. Install on your target/emulator, using the following command:
       "$ANDROID_SDK_PATH/tools/adb install -r rockbox.apk"
  • Synapticパッケージマネージャ → 設定 → リポジトリ → 他のソフトウェア
    → 上2つの http://archive.canonical.com/~ をチェック
    → 閉じる → 再読込
    → sun-java6-jdk、subversion、realpath、libfreetype6-devを右クリックからインストール指定
    → 適用
次に、AndroidSDK・NDKを入れる。
  • Android SDK | Android Developersから「android-sdk_r08-linux_86.tgz」をDL
  • $ tar xzvf android-sdk_r08-linux_86.tgz
  • $ android-sdk-linux_86/tools/android
    →Available packages →Android Repository
    →SDK Platform Android 2.2, API 8, revision2 にチェック
    →Install Selected ボタン →Install ボタン
  • Android NDK | Android Developersから「android-ndk-r5-linux-x86.tar.bz2」をDL
  • $ tar xzvf android-ndk-r5-linux-x86.tar.bz2
AndroidSDK・NDKのパスを通す。
  • ~/.bashrcに以下の2行のようにフォルダのパスを記述
    export ANDROID_SDK_PATH=~~/android-sdk-linux_86
    export ANDROID_NDK_PATH=~~/android-ndk
  • $ source ~/.bashrc
↑ installToolchain.shで自動でやってくれるっぽいので必要なし。

コンパイル作業
  • $ cd ~~/kugel-rb
  • $ ./android/installToolchain.sh
     →AndroidSDK・NDKを自動でインストールしてくれる。
    2回目以降、ANDROID NDKは常に最新にしておかないと不具合出るかも。
    ~/android-ndk-*のパスで検索してくるので、フォルダをリネームして
    ↑を実行したら最新のNDKが自動インストールされる。
  • $ export ANDROID_SDK_PATH=~/android-sdk-linux_x86
    $ export ANDROID_NDK_PATH=~/android-ndk-r4b
  • $ gedit ~/.bashrc
    ファイル末尾に以下を追記
    export ANDROID_SDK_PATH=~/android-sdk-linux_x86
    export ANDROID_NDK_PATH=~/android-ndk-r5b
    export ANDROID_NDK_PATH=~/android-ndk-r4b
  • $ source ~/.bashrc
  • $ ~/android-sdk-linux_86/tools/android
    →Available packages →Android Repository

    →SDK Platform Android 2.2, API 8, revision2 にチェック
    →SDK Platform Android 2.3.3, API 10, revision1 にチェック
    →Install Selected ボタン →Install ボタン
  • 「~~/kugel-rb/tools/configure」の502行目を変更
    prefixtools $ANDROID_NDK_PATH/build/prebuilt/linux-x86/arm-eabi-$gccchoice/bin/arm-eabi-

    prefixtools $ANDROID_NDK_PATH/toolchains/arm-eabi-$gccchoice/prebuilt/linux-x86/bin/arm-eabi-
  • $ mkdir build
  • $ cd build
  • $ ../tools/configure
    200 (アプリケーション)
    A
    (Android用)
    201 (Android用)
    480 (Android機の横解像度)
    800 (Android機の縦解像度
    N (とりあえずデフォルト)
    ※今のところ再生画面のテーマ(wps)が320x480、480x800等決まった解像度しかないので注意。Milestone2の解像度は480x854だが、この設定で問題なかった。
  • $ make
    処理が長いがひたすら待つ
  • $ make zip
  • $ make apk
    • 「aapt: Command not found」と怒られる場合
      →androi-sdk-linux_x86/tools/android実行→Installed packages→Update All→Install
    • 「android-11/android.jar not found」と怒られる場合
      →androi-sdk-linux_x86/tools/android実行→Available packages→Android Repositoryチェック(ついでだからThird party Add-onsも)→Install Selected→Install
これで、「~~/kugel-rb/build/rockbox.apk」ができた。
あとはAndroid機に転送→インストールすればおk。
転送はWifiで行える「Android Manager WiFi」がオススメ。

で、起動するとapk配布版作られてた/sdcard/rockbox/の中身がどこにもない!
なので、自力で前回のRockboxのテーマ類をAndroid本体のフォルダに転送した
転送ソフトはAndroid Commanderを使用。
転送したもの
/data/data/org.rockbox/app_rockbox/rockbox/内へ
  • backdrops/*
  • fonts/*
  • icons/tango*
  • wps/cabbiev2.*
  • wps/cabbiev2/*
  • themes/cabbiev2.cfg
一応再生はできたが、特に変わったところはなかった。
というか、逆に不安定になったような・・・。開発版なんだから当然か。

2 件のコメント:

なーお さんのコメント...

こんにちは!

AndroidなスマホIS11CAを買って、WMA-V9フォーマットが再生できなくて困っていたところに、巡り巡ってこちらに辿りつきました。

お陰さまで、普通のアプリと変わらぬ安定性で、なかなかの音質で使えています。 どうもありがとうございました。

私のブログで引用させていただきましたので、ご報告まで。

今後も続編を、期待しています!

ecoco さんのコメント...

こんばんは。
ブログにコメントありがとうございます。
最近ブログの更新サボっててすみません。
新しいPCが近々届く予定なので、
それを機にまたコンパイルしようと思っています。

偶然ですね。
僕もe200シリーズからの乗り換え組です。
ただ、最近はあまりRockbox使ってないです。
「MortPlayer」というアプリが唯一
m3uのファイルショートカットから
直でプレイリストを再生できるので、そっちを使っています。
なんせプレイリストが200個以上あるので(汗