Androidに関連したARMアーキテクチャの違いと開発環境およびオプションなどの留意点 ― 2009年08月24日 13時23分46秒
MINI2440のCPUが「ARMv4T」でandroidで想定しているARMアーキテクチャが「ARMv5T」ということでandroidプラットフォームの構築時にパッチなどを当てる必要があるとの助言をいただきましたので、関連する資料を整理しておきます。
募集中の情報
- クロスコンパイラの違い
- クロスコンパイラに指定するオプションの違い
- Cソースコードなどの記述上の違い
情報をご存知の方はコメント欄に書いていただければ整理して記事に反映させます。
Freerunnerの移植情報
関連情報
- http://d.hatena.ne.jp/takinoya/20090628/1246211299
- http://d.hatena.ne.jp/embedded/20081220/p1
- http://www.slideshare.net/tetsu.koba/opensource-android
- http://androidzaurus.seesaa.net/article/106292204.html
- http://groups.google.co.jp/group/android-group-japan/msg/949c87536a8a6c43
- http://d.hatena.ne.jp/kinneko/20081030/p11
- http://groups.google.co.jp/group/android-porting/browse_thread/thread/377fd694e7627fe8
- http://groups.google.co.jp/group/android-porting/browse_thread/thread/172ced5b8540df13
androidビルド時のJDK5要求 ― 2009年08月24日 16時40分55秒
- repo init -u git://android.git.kernel.org/platform/manifest.git
- repo sync
- make
laptop:~/dev/android/mydroid$ make ============================================ PLATFORM_VERSION_CODENAME=Donut PLATFORM_VERSION=Donut TARGET_PRODUCT=generic TARGET_BUILD_VARIANT=eng TARGET_SIMULATOR= TARGET_BUILD_TYPE=release TARGET_ARCH=arm HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=Donut ============================================ ************************************************************ You are attempting to build with the incorrect version of java. Your version is: java version "1.6.0_14". The correct version is: 1.5. Please follow the machine setup instructions at http://source.android.com/download ************************************************************ build/core/main.mk:105: *** stop. 中止. laptop:~/dev/android/mydroid$
前に参照したページはこちらですが、明示的にJDK6を指定しています。
確かに、現時点の本家のページの説明ではJDK6には対応してないと書いてありますね。やっぱりその都度処理経過はメモしておかないとわからなくなります。
JDKの切り替え
- JDK5のインストール(apt-get install sun-java5-jdk)
- 「update-java-alternatives -l」で状態確認
- 「update-java-alternatives -s java-1.5.0-sun」コマンドでJDK5に切り替え
- /etc/bash.bashrcの「JAVA_HOME」設定部分を「export JAVA_HOME=/usr/lib/jvm/java-5-sun 」に変更
「update-java-alternatives」の実行結果は以下。
laptop:~/dev/android/mydroid$ sudo update-java-alternatives -l java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun java-6-sun 63 /usr/lib/jvm/java-6-sun laptop:~/dev/android/mydroid$ sudo update-java-alternatives -s java-1.5.0-sun firefox-javaplugin.so の alternatives がありません。 iceape-javaplugin.so の alternatives がありません。 iceweasel-javaplugin.so の alternatives がありません。 midbrowser-javaplugin.so の alternatives がありません。 mozilla-javaplugin.so の alternatives がありません。 xulrunner-1.9-javaplugin.so の alternatives がありません。 xulrunner-javaplugin.so の alternatives がありません。 'HtmlConverter' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/HtmlConverter' を使います。 'appletviewer' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/appletviewer' を使います。 'apt' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/apt' を使います。 'extcheck' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/extcheck' を使います。 'idlj' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/idlj' を使います。 'jar' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jar' を使います。 'jarsigner' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jarsigner' を使います。 'java-rmi.cgi' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/java-rmi.cgi' を使います。 'javac' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/javac' を使います。 'javadoc' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/javadoc' を使います。 'javah' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/javah' を使います。 'javap' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/javap' を使います。 'jconsole' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jconsole' を使います。 'jdb' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jdb' を使います。 'jinfo' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jinfo' を使います。 'jmap' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jmap' を使います。 'jps' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jps' を使います。 'jsadebugd' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jsadebugd' を使います。 'jstack' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jstack' を使います。 'jstat' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jstat' を使います。 'jstatd' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/jstatd' を使います。 'native2ascii' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/native2ascii' を使います。 'rmic' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/rmic' を使います。 'serialver' を提供するために '/usr/lib/jvm/java-1.5.0-sun/bin/serialver' を使います。 'ControlPanel' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/ControlPanel' を使います。 'java' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/java' を使います。 'java_vm' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/java_vm' を使います。 'javaws' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/javaws' を使います。 'keytool' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/keytool' を使います。 'orbd' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/orbd' を使います。 'pack200' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/pack200' を使います。 'policytool' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/policytool' を使います。 'rmid' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/rmid' を使います。 'rmiregistry' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/rmiregistry' を使います。 'servertool' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/servertool' を使います。 'tnameserv' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/tnameserv' を使います。 'unpack200' を提供するために '/usr/lib/jvm/java-1.5.0-sun/jre/bin/unpack200' を使います。 firefox-javaplugin.so の alternatives がありません。 iceape-javaplugin.so の alternatives がありません。 iceweasel-javaplugin.so の alternatives がありません。 midbrowser-javaplugin.so の alternatives がありません。 mozilla-javaplugin.so の alternatives がありません。 xulrunner-1.9-javaplugin.so の alternatives がありません。 xulrunner-javaplugin.so の alternatives がありません。 laptop:~/dev/android/mydroid$
今回の切り替え手順についてははっきりと本家のページに書いてあるのですが、「Ubuntu Linux (32-bit x86)」のところには書いてありません。「Ubuntu Linux (64-bit x86)」のところにのみ書かれています。
最近のコメント