トップ «前の日記(2011/06/07(Tue)) 最新 次の日記(2011/06/11(Sat))»
【ソース+水=麦茶色の何か】

半期 四半期 全カテゴリ

今日の一言


2011/06/08(Wed) Android、おもちゃとしては面白いけど携帯電話としては使いたくない [長年日記] 1:00現在霧雨 19℃

_ [Ubuntu][FC][Linux][Debian][Android][GALAXY S]Ubuntu上でAndroidの開発環境を整える(Android SDKのインストールからeclipseでのAVDの起動まで)

参考:

http://techbooster.jpn.org/andriod/environment/492/
http://linux-buddy.blogspot.com/2011/04/install-sun-java-jdk-on-ubuntu-1104.html

今回は、Ubuntu11.04で行った。基本的な流れはWindowsの場合と同じ。

JDKのインストール

まず、JDKをインストール。

以前だとこちら(http://akihiro-i.net/~akihiro-i/diary/?date=20100130#p02)に書いた方法でさくっと入れられたのだが、最近はどうもそのままではaptでインストールできないっぽい。

なので、以下のようにリポジトリを追加してからインストールする。

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

さらに、以下のコマンドでデフォルトのJavaを「sun-java」に変更する。

$ sudo update-alternatives --config java

Android SDKのインストール

こちら(http://developer.android.com/sdk/index.html)から「android-sdk_r11-linux_x86.tgz」をDLし、適当な場所に展開する。

自分は、ホーム下にandroidというディレクトリを作って展開した。

$ cd
$ mkdir android
$ cd android
$ wget http://dl.google.com/android/android-sdk_r11-linux_x86.tgz
$ tar zxf android-sdk_r11-linux_x86.tgz

続いて、android-sdkにパスを通すため、「~/.bashrc」に以下の行を追加する。

export PATH=$PATH:/home/「ユーザ名」/android/android-sdk-linux_x86/tools

さらに、追加した内容を適用するために以下のコマンドを実行する。

$ source ~/.bashrc

Eclipseのインストール

こちら(http://www.eclipse.org/downloads/)から「Eclipse IDE for Java Developers」のLinux版をDLし、適当なディレクトリに解凍。

せっかくなので、自分はホーム下のandroidディレクトリにまとめた。

$ cd ~/android
$ tar zxf eclipse-java-helios-SR2-linux-gtk.tar.gz

eclipseのインストールは以上で完了。

EclipseにAndroid plig-inをインストール

Eclipseを起動して「ヘルプ」→「新規ソフトウェアのインストール」を開き、作業対象に

https://dl-ssl.google.com/android/eclipse/

を追加し、「次へ」。

ウィンドウに「開発ツール」というのが現れるので、チェックして「次へ」を選択。途中でいろいろ聞かれるが、特に難しいことは無いはず。

ウィンドウが消え、Eclipseのメイン画面だけが残るが、右下に「インストール中」の表示があると思うので、インストールが終わるまで待つ(0%のまま進まないこともあるが、時間がかかっているだけなので、おとなしく待つ)。

終わったらEclipseを再起動するよう促されるので、素直に再起動。

再起動後、「ウィンドウ」→「設定」から「Android」を選択すると「SDKロケーション」を聞かれるのでAndroid SDKフォルダ(自分の場合は「C:\Program Files (x86)\Android\android-sdk」)を指定し、「適用」。これでインストールが出来たはずなので、「OK」を押す。

AVD(Androidエミュレータ)の作成

せっかくAndroidアプリケーションを作っても、実際に試せなければ意味が無い。そのため、AVDと呼ばれるエミュレータを使って自作プログラムを動かしてみる。

まず、Eclipsを起動し、「ウィンドウ」→「Android SDK and AVD Manager」をクリック。

左ツリーの「Installed Packages」をクリックし、目的のバージョンの「SDK Platform Android ~」があることを確認するOK。

ない場合は「Availabel Packages」をクリックし、インストールしたいPlatformの項目にチェックを入れ、「Install Selected」をクリックする。あとは画面に従えばOK。

続いて、左ツリーの「Virtual Devices」をクリックし、「新規」をクリック。

「Name」に任意の名前(例えば、「Android2.1_HVGA」)を入力し、「Target」で目的のAndroidのディストリビューションを選択。

必要であれば、「SD Card」に任意の値(例えば、「64M」)を入力。

「Skin」で適当な画面スキン(基本はDefaultでOK)を選択。

後は、「Create AVD」ボタンをクリックし、AVDを作成する。

「Android SDK」画面で作成したAVDを選択状態にし「Start」をクリックすると、エミュレーターが起動する。

この際、異常なぐらいに時間がかかる(初回は特に?)が、我慢強く待つこと!

(エラーメッセージが出ていなければ)動きが異様に重いだけなのでいつかは起動する・・・はず。初回時は特に遅いが、まあ気長に待つしかない(最悪、10分近くかかるかも)

環境構築は以上で終了。あとは実際にプログラムを書いて動かすのみ!

以上!

_ [Ubuntu][FC][Linux][Debian][Android][GALAXY S]AndroidでHello World!(Linuxバージョン)

Windowsでやったのと完全に同じ。

なので、こちら(http://akihiro-i.net/~akihiro-i/diary/?date=20110522#p02)を見てください。

以上!

_ [Ubuntu][FC][Linux][Debian][Android][GALAXY S]Ubuntu11.04でAndroid NDKを使ってみる(C/C++でAndroid開発)

基本的にはWindowsでの設定(http://akihiro-i.net/~akihiro-i/diary/?date=20110523#p01)と一緒。cygwinがいらない分、むしろ簡単かも。

NDKのインストール

Android NDKをこちら(http://developer.android.com/sdk/ndk/index.html)からDL。

※Linuxの場合、最新は「android-ndk-r5b-linux-x86.tar.bz2」。

DLしたファイルを適当なフォルダに置き、解凍。

自分の場合は、ホーム下のandroidディレクトリに解凍するので、以下のようにした。

$ cd ~/android
$ wget http://dl.google.com/android/ndk/android-ndk-r5b-linux-x86.tar.bz2
$ tar jxf android-ndk-r5b-linux-x86.tar.bz2

インストール自体はこれで完了!

PATHの設定

ホームディレクトリにある「.bashrc」ファイルを適当なテキストエディタで開き、最後にPATHとANDROID_NDK_ROOTを追記する。

自分の場合(ホーム下のandroidディレクトリ内に配置)では、以下の2行を追加した。

export ANDROID_NDK_ROOT=/home/「ユーザ名」/android/android-ndk-r5b
export PATH=$PATH:/home/「ユーザ名」/android/android-ndk-r5b

修正したら、以下のコマンドで反映させる。

$ source ~/.bashrc

念のため、以下のコマンドを打ってパスがきちんと通っていることを確認する。

$ echo $ANDROID_NDK_ROOT
$ echo $PATH

正しく通っていれば、設定したパスが表示されるはず。

これで設定は完了。

最後に、サンプルプログラムを使って、正しく実行できることを確認する。

「Hello JNI」を実行(NDK付属のサンプルプログラム)

「hello-jni」というサンプルプログラムがついているので、それを使って環境が整っているかを確認する。

端末での作業

サンプルプログラムはNDKのインストールディレクトリの直下にあるsamplesディレクトリ以下にあるため、まずはそこに移動。

$ cd ~/android/android-ndk-r5b/samples/hello-jni/

プロジェクトの場所(.project , AndroidManifest.xml があるディレクトリ)に移動したら、「ndk-build」コマンドでNativeの実行ファイルを作成する。

$ ndk-build

これで、「android-ndk-r5b/samples/hello-jni/obj/local/armeabi/libhello-jni.so」 というライブラリが生成されたはず。

続いて、作成されたライブラリを使用し、Eclipse上でプログラムを生成する。

Eclipse上での作業

「新規」からAndroidプロジェクトを開き、「外部ソースからプロジェクトを作成」を選択して、先ほどのサンプルプロジェクト(~/android/android-ndk-r5b/samples/hello-jni)を参照する。

あとは、通常と同様にプロジェクトを作成し、「実行」すればOK!

AVD上でもちゃんと動くはず。

以上!

_ [Ubuntu][FC][Linux][Debian][Android][GALAXY S]純正のAndroid NDKを使ってAndroid上でOpenCV2.2を動かす(OS:Ubuntu 11.04)

参考:

http://opencv.willowgarage.com/wiki/AndroidTrunk#Windows.28native.29

これもWindowsの場合とほぼ同じ。

基本的に、OpenCVの公式wiki(http://opencv.willowgarage.com/wiki/Android?highlight=%28%28Android2.2%29%29)に書いている、「AndroidTrunk」の方法そのもの。

というか、明らかにLinuxのほうが楽です。

必要となるプログラム(make、cmake、ant、swig)のインストール

面倒なのでaptで入れてしまおう。

$ sudo apt-get install cmake
$ sudo apt-get install ant
$ sudo apt-get install swig

OpenCVのコンパイル

svnを使ってOpenCVのソースを入手。

$ sudo apt-get install subversion
$ cd ~/android/
$ svn checkout https://code.ros.org/svn/opencv/trunk/opencv

DLしたOpenCVのディレクトリに入り、コンパイル用のファイル群を作成。

$ cd opencv/android
$ sudo ln -s ~/android/android-ndk-r5b /opt/android-ndk-r5b
$ sh ./scripts/cmake_android.sh

出来上がったbuildディレクトリに入り、OpenCVをコンパイル。

$ cd build
$ make -j8

なお、コンパイルには非常に時間がかかるので注意すべし!(多分30分ぐらい?)

[100%]と表示されれば、コンパイル完了。

ライブラリの作成自体はこれで終了。

サンプルプロジェクトの作成

$ cd android/android-opencv
$ sh ./cmake_android.sh
$ cd build
$ make -j4
$ cd android/android-opencv
$ sh project_create.sh
$ ant compile
$ ant debug

正直、これが何をやってるかがよくわからん。

とりあえず、debug用のapkも作れるので、実際に動かして見ればわかるかな?

※カメラから画像を取得するだけのサンプルプログラムでした。

サンプルプログラムのコンパイル(断念)

まず、「opencv」下の「android/apps/OpenCV_SAMPLE」に移動し、コンパイル。

$ cd ~/android/opencv/android/apps/OpenCV_SAMPLE
$ mkdir build
$ cd build
$ cmake ..
$ make

で、プロジェクトを作成してantでコンパイル。

$ cd android/apps/OpenCV_SAMPLE
$ sh project_create.sh
$ ant compile

これでapkファイルが出来あがる。

公式では

$ ant install

までやっているが、とりあえず、apkを作成して自分で移動させてインストールしたほうが分かりやすいと思う。

あとは、実際にapkファイルからインストールを行い、動くことを確認すれば完了!

・・・のはずなんだが、cmakeでコケてしまってコンパイルできない。

エラーとしてはこんな感じ。

CMake Error at jni/CMakeLists.txt:10 (find_package):
  Could not find module FindOpenCV.cmake or a configuration file for package
  OpenCV.

  Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR to the
  directory containing a CMake configuration file for OpenCV.  The file will
  have one of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

CMake Error at jni/CMakeLists.txt:11 (FIND_PACKAGE):
  Could not find module FindAndroidOpenCV.cmake or a configuration file for
  package AndroidOpenCV.
  Adjust CMAKE_MODULE_PATH to find FindAndroidOpenCV.cmake or set
  AndroidOpenCV_DIR to the directory containing a CMake configuration file
  for AndroidOpenCV.  The file will have one of the following names:
   AndroidOpenCVConfig.cmake
   androidopencv-config.cmake
-- Configuring incomplete, errors occurred!

cmakeわかんねー。何でandroid-opencvの方はコンパイルできるんだ?

とりあえず今日のところは以上!

そのうち原因を究明する・・・かも。

_ [Ubuntu][FC][Linux][Debian] proxy認証が必要な環境においてLinuxのapt-getやwgetを使う方法

参考:

http://discypus.jp/wiki/?Linux%2Fapt.conf
http://d.hatena.ne.jp/taiyo/20080401/p2
http://pamo.dip.jp/blog/archives/000327.html

synapticについてはGUIで設定できるので省略。

apt

aptについては、「/etc/apt/apt.conf」に以下の要領で設定を追記すればOK。

Acquire::http::Proxy "http://username:password@proxy.hoge.jp:80";
Acquire::ftp::Proxy "ftp://username:password@proxy.hoge.jp:80/";

この場合、「proxy.hoge.jp」というプロキシサーバの80番ポートに、「username」というユーザで「password」というパスワードを使って接続するという設定になっている。

また、認証が無い場合は、

Acquire::http::Proxy "http://proxy.hoge.jp:80";
Acquire::ftp::Proxy "ftp://proxy.hoge.jp:80/";

でOK。

適宜、自分の環境にあわせて変更すること。

wget

wgetを使いたい場合は、「/etc/wgetrc」を

https_proxy = http://username:password@proxy.hoge.jp:80
http_proxy = http://username:password@proxy.hoge.jp:80
ftp_proxy = http://username:password@proxy.hoge.jp:80

use_proxy = on

のように修正すればOK。

認証が要らない場合は、

https_proxy = http://proxy.hoge.jp:80
http_proxy = http://proxy.hoge.jp:80
ftp_proxy = http://proxy.hoge.jp:80

use_proxy = on

でOK。

以上!

_ [Windows][雑記] Windows上でVMWare Playerをインストールすると無効化されてしまう、ドライブのAutorun機能を復活させる

参考:

http://inspiron1720.seesaa.net/article/51007703.html

WindowsにVMWare Playerをインストールすると、VM上のOSからのアクセスに備えてドライブのAutorun機能(CDとかDVDを入れると『自動再生』うんぬんとか言ってくるアレ)が無効化されてしまう。

基本的にはこれで問題は無い(というか、ホストOSからのアクセスを考えると無効化するのはおかしな動作ではない)のだが、アンインストールしても設定を戻さないのは困り者。

なので、以下の方法でドライブのAutorun機能を復活させる。

まず、「ファイル名を指定して実行」(7の場合は「プログラムとファイルの検索」)に「regedit」と入力し、レジストリエディタを起動。

続いて、「検索」で「NoDriveTypeAutoRun」を探し、その値を255(16進数ではff)から145(16進数では91)に変更する。

これでOK!

再起動後にはAutorun機能が復活しているはず。

_ [Windows][Ubuntu][FC][Linux][Debian] proxy認証が必要な環境においてeclipseの「新規ソフトウェアのインストール」を使う方法

eclipseを起動し、「Window」→「Preferences General」→「Network Connection」を選択。

「Active」を「Manual」に変更し、「HTTP」および「HTTPS」の設定を行えばOK。

なお、プロキシ側にsocksの設定が無い場合、下手に「SOCKS」を設定してしまうと接続できなくなるので注意!

_ [Windows][Ubuntu][FC][Linux][Debian][Android][GALAXY S]proxy認証が必要な環境において、eclipseからAVDをインストールする方法

参考:

http://d.hatena.ne.jp/inouema/20100408/1270684891

proxyが設定された状態で「Android SDK and AVD Manager」からAVDをインストールしようとすると、以下のようなエラーが出て止まってしまう。

"Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml, reason: dl-ssl.google.com,"

google先生に聞いてみると、『「Android SDK and AVD Manager」を開き、「setting」からproxyの設定をすればいい』とか言われるが、少なくとも自分の環境では、eclipseから「Android SDK and AVD Manager」を起動しても「setting」なんてメニューは見つからない。

更に調査を続けた結果、驚きの結果が!

実は『eclipseから』「Android SDK and AVD Manager」を開くのではなく、直接「Android SDK and AVD Manager」を起動すればきちんと「setting」が表示される模様。

なんだそれー。

※ちなみに、Windowsの場合はSDKの直下の『SDK Manager.exe』、Linuxの場合はSDKの直下にある「tools」ディレクトリ内の「android」が「Android SDK and AVD Manager」の実体。

なので、eclipseを介さずに直接こいつを起動し、proxyの設定をすればOK!

なお、proxy認証が必要な場合は、サーバのアドレスとポート番号さえ設定しておけば、接続時にユーザ名とパスワードを聞いてくれる。

proxyの設定が終わったら、とりあえず「Android SDK and AVD Manager」(起動していれば「eclipse」も)を閉じる。

これで次からはプロキシの設定が反映されるはず。

以上!