takaiwa.net

Android、Java、Web系、Linux、マラソン等の備忘録

2012/06/23

UbuntuにAndroid開発環境

0 件のコメント

前回

Ubuntu Desktopを入れてまずやった事 | とびこみ日記
の続きで、このUbuntuマシンにAndroid開発環境を入れてみたいと思います。

環境

Ubuntuはインストールした時点で、OpenJDKやeclipseのインストール候補が入っています。またjava -versionコマンドを打っても、

wagyuu@matsusakaushi:~$ java -version
プログラム 'java' は以下のパッケージで見つかりました:
* default-jre
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
* gcj-4.5-jre-headless
* openjdk-7-jre-headless
次の操作を試してください: sudo apt-get install <選択したパッケージ>


のようにオススメされますが、最新ではありませんし、このまま従うとバージョンを指定できません(たぶん)。これら、特にソフトウェアセンターからのOpenJDKとeclipseをインストールすれば問題なく環境を構築できますが、技術者がお試しならまだしも開発環境を整えるのにバージョンはおまかせなんてあり得ないので、指定のバージョンを入れたいところ。とは言え、現時点での最新JDK64bit版とセンターの古いeclipseより軽量なはずのEclipse IDE for Java Developers(64bit版)でAndroid開発環境を構築してみたいと思います。ちなみに、インストーラー付だと、どこに何を保存されて設定いぢられてるかわからなくなるので、tar.gzファイルでシンプルにいきます。



JDK



上記リンクからダウンロードし、解凍します。



$tar vxf jdk-7u5-linux-x64.tar.gz


mvコマンドで適当なディレクトリへ移動させます。



$mv jdk1.7.0_05 /opt/


Ubuntuのどのディレクトリが何用途なのかはコチラを




・Ubuntuのディレクトリ構造について - Ubuntu Japanese Wiki
https://wiki.ubuntulinux.jp/UbuntuTips/Others/FileHierarchy




ユーザのホームディレクトリで、



$ls -al


で表示される隠しファイル「.bashrc」に、パスを通すべく以下を追加します。



JAVA_HOME=/opt/jdk1.7.0_05
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH


保存したら、



$source ~/.bashrc


を行いますこれで、javaコマンドが反応します。



$ java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)


Eclipse IDE for Java Developers



上記リンクよりダウンロードして、JDK同様、解凍して適当なディレクトリへ配置します。Windows等の場合、この時点でeclipseの実行ファイルをダブルクリック等で起動できますが、Ubuntuは…


WS000766



A Java Runtime Environment (JRE) or Java Development Kit (JKD) must be available in order to run Eclipse. No Java virtual machine was found after searching the folloing location:/opt/eclipsejre/bin/java
java in your current PATH




などと言って起動しません。さっきjavaコマンドいけたじゃねーか!というわけです。ところが、これを端末から、eclipseの実行ファイルがあるディレクトリまで行って、



$ ./eclipse


とすると、何事もなかったかのように起動します。


image


とは言えGUIを使いたいわけで、なるべく端末に頼らないようにしたいのですが、正しいやり方かどうかわかりませんが、多くの人が以下のように解決されてました。



eclipseの実行ファイルがある同ディレクトリに、eclipse.iniというのがあります。それを開き、-vmargsの前あたりに以下を追加します。



-vm
/opt/jdk1.7.0_05/bin


-vmの後の改行は必須です!



これで、アイコンダブルクリックで起動できます。



ADTプラグインとAndroid SDKのインストール



多くの場合、先にAndroid SDKをダウンロードしてインストールするようですが、ADTプラグインインストールでやってくれるので特に別個にやる必要はありません。また、Ubuntu特有でもないので、細かくは触れません。



eclipseのメニューのHelpよりInstall new softwareを選択します。それで表示されたダイアログのADDボタンを押し、


WS000768


Locationに「https://dl-ssl.google.com/android/eclipse/」と入力し、ADTのインストールを行います。手順に従いインストールを終えると、eclipseが要求してくる再起動を行います。再び起動すると、ここでAndroid SDKのインストールを提示してきます。



 WS000769



ここでSDKをインストールする場合はそのままNextボタンを。既にSDKを持っている場合は「Use existing SDKs」にチェックを入れて保存している場所を指定してやります。インストールがしばらく進むと、エラーが出ちゃうんですけど...



WS000770



OKを押しておきます。



これでAndroidエミュレータが動くか試してみます。エミュレータの作成等はこちらを参考に




・仮想デバイス(AVD)の作成/編集/削除 - Android入門
http://www.javadrive.jp/android/emulator/index7.html




このリンクよりCreate AVD(AVDの作成)ボタンを押すと、eclipseのコンソールに地味にエラーが出て作成できません。



[2012-06-22 21:06:18 - SDK Manager] Failed to create the SD card.
[2012-06-22 21:06:18 - SDK Manager] Failed to create sdcard in the AVD folder.


これはSDKの実行ファイルが32bitだからだそうで…以下のライブラリをインストールする事で解決します。




・Anything Goes: Android:Failed to create the SD card
http://cointreau-15ml.blogspot.jp/2011/04/androidfailed-to-create-sd-card.html



$ sudo apt-get install ia32-libs



一旦eclipseを閉じて上記コマンドを実行。割りと長いインストールです。それが終わると、eclipseで先ほどと同じようAVDの作成を行い、エミュレータを立ち上げてみましょう。この場合、エミュレータのサイズが小さく設定されてるようなので、



image


の画面で、Screen Sizeで適当な大きさに変更できます。しばらくすると起動しました(;^_^A


image



これでUbuntuでもエミュレータを動かせそうです。こうなってしまえば、後はほぼeclipseまたはAndroid SDK上での話でしょう。



こうやってまとめてみると、割りとスッと導入できた感はありますが、あっちへぶつかりこっちへぶつかり一筋縄にいきませんでした。







作ればわかる!Androidプログラミング―10の実践サンプルで学ぶAndroidアプリ開発入門 (Smart Mobile Developer)アプリを作りながら楽しく学べるAndroidプログラミングのコツ!本書は、Android SDKで実際にアプリケーションを作りながら、Androidアプリ開発の基礎知識と実践的なプログラミング方法を学ぶことができる書籍です。








Androidゲームプログラミング A to ZAndroidゲーム作成を基本から学びたいと考えているプログラマーに贈る解説書
本書は、ゲームエンジン「libGDX」(ゲームフレームワーク)開発の中心人物である著者が、ゲーム開発に必要なAndroid OSのAPIを厳選し、JAVAをすでに学んだ初-中級プログラマーがゲームフレームワークを構築できるよう、その方法を紹介。また、フレームワークをもとに、ゲーム表示を2Dから3Dへと改良していく方法も段階を踏んで解説。







AndroidアプリUIデザイン&プログラミング  アイデア固めからユーザーフィードバック分析までデザイン力は磨ける!Google主催Android Developer Challengeファイナリストが明かすユーザーを惹きつけるアプリ開発のノウハウ。本書の対象者は、これからアプリ開発を始めてみようとしている方、アイデアはあっても実作業に踏み出せない方、プログラミング技術は習得できてもオリジナルのアプリ作りをどのように始めればよいかわからないという方、デザイン能力はあるがプログラミングのイメージがつかめない方、プログラミングはできるがデザインは敬遠してしまう方、など幅広い方を想定しています。


Ubuntu Desktopを入れてまずやった事

0 件のコメント

環境image


ISOファイルをダウンロードして、CDに焼いてインストールしました。
捨てるという事でモニタをいただいたので、古いマシンを有効活用してやろうと初めてのUbuntuを入れる事にしました。低スペックですが、メインマシン(Windows7)の補助的に使う目的でインストールしたものなどをメモしておきます。

1.端末をランチャに登録しておく

やる事ってほどじゃないんですが、初めてのUbuntuという事でまずはアプリ探しがてら頻繁に使うであろう端末をアプリランチャへ登録します。左上のDashホームというのクリックして、「ter」と打つと端末のアイコンが出てきます。これをドラッグして、ランチャの上でドロップすると登録できます。登録の解除は右クリックで行えます。
image

2.自分のIPアドレスを調べる

先ほどの端末を起動して、ifconfigと打ってIPアドレスを調べます。
image
上記コマンドを実行すると、inetアドレスと書かれた部分に「192.168.~」というのが表示されるのでメモしておきます。

3.デスクトップの共有

Ubuntuマシンに接続されているキーボードとマウスで操作してもいいのですが、メインマシン用と2つあるのは煩雑です。そこでWindows7のメインマシンからリモート操作できるようにしたいと思います。設定は簡単で、
image
左上のDashホームより、「de」と打つと、「デスクトップの共有」というアイコンが出てきます。そのアイコンをクリックして表示されたダイアログの
image
「他のユーザが自分のデスクトップを表示できる」にチェックを付けます。はい、Ubuntu側はこれだけ。
次にWindows側ですが、UltraVNC というのを使いました。
・窓の杜 - UltraVNC
http://www.forest.impress.co.jp/lib/inet/servernt/remote/ultravnc.html
僕が使ってるのはちょっと古いバージョンですが、このアプリを起動すると、
WS000736
VNC Serverという欄に上記2でメモしたIPアドレスを入力をして、Connectボタンを押すと、Ubuntu側に、
image
と表示されるので、許可するボタンを押すと、Windows側にUbuntuの画面が表示されます。
image
動作はちょっとカクカクで残像が残ったりしますが、Ubuntu側のモニタを見ればある程度普通に動いてるので、顔はUbuntuのモニタを見ながらですが、メインマシンのマウスやキーボードを操作する事ができます。日本語入力は、Ubuntu側の入力モードを切り替えてやると可能です。Ubuntu側のキーボードで「半角/全角 漢字」キーを押すと確実ですが、Windows側でも「Ctrl + j」ボタンあたりで反応します。しかし、初回だけUbuntu側キーボードで「半角/全角 漢字」キーを押沺してやる必要があったりとちょっとこの辺りの挙動は曖昧なままにしてます(^^ゞ
このように、完全にWindows側のキーと対応しているわけではないようです。特にアスタリクス「*」キーが違うのが痛いです。まあこれを打つのは、ワイルドカードを使う端末操作の時くらいなので次の対応で解決したいと思います。
ちなみに、分かっているものをあげておきます。
Ubuntu Windows
@ Shift + 2
* テンキーの*

4.SSHサーバをインストール

左のランチャからUbuntuソフトウェアセンターをクリック、検索キーワードにsshと入力すると、おそらく一番上に表示される「secure shell クライアントおよびサーバ(メタパッケージ)」をクリックしてインストールします。
image
インストールが完了したら、windows側のSSHクライアント(僕はteraterm)を立ち上げて、上記2で調べたIPアドレスを入力し、ユーザとパスワードでログインできます。これで、端末での操作はWindows側で行え、アスタリスクが打てないなどの心配はありません。まぁ端末はVNC経由で叩くメリットはあまりないかもしれませんが。

5.Windows⇔Ubuntuでファイル共有

コマンドレベルでのFTPであれば既にアプリがインストールされており、端末から、
ftp (IPアドレス)


のように叩き、要求されるユーザ名とパスワードを入力すればログインできます。コマンド等の詳しくは、以下あたりを



・FTPコマンドでファイル転送

http://ash.jp/net/ftp_command.htm


・Linuxコマンド一覧 [ftp]

http://www.k4.dion.ne.jp/~mms/unix/linux_com/ftp.html


※2012/07/21 追記
やっぱり、非力なマシンでのCPUを利用率が上がるのはやっかいなのでDropboxは消してsambaにしました。Ubuntu起動時のごにょごにょもなくなるので、起動もスッキリしました。Ubuntuソフトウェアセンターから入手できます。

sambaサーバを使っても良いのですが、もっと手間を省くためにDropboxで共有したいと思います。不意にCPUを食われるので非力なマシンには入れたくないですが、


image
Ubuntuソフトウェアセンターにも入ってますし、手間を考えるとDropboxが楽で良いと思います。ところが…
image
この「変更を適用しています」からまったく進みません。しょうがないのでウォーキングへ行きましたが帰ってきても終わってなかったので諦めて解決策を探りました。

※ちなみに、こうしている間もdropboxのプロセスは適用作業をやってるので、topコマンドで動いてるdropboxを探って、kill -9 (PID)で強制終了させました。Ubuntuのシステムモニタのプロセスからは終了できませんでした。

ググってみると、ソフトウェアセンターから超簡単にインストールできたwwwというお話はありますが、なかなかDropboxをインストールできなかったというお話がなかったです。しかし、こちらの
・Dropboxのインストール (Ubuntu 64bit) - rsnaru

http://d.hatena.ne.jp/rsnaru/20120110/1326159602

超絶簡単な解決策


cd ~ && wget -O - http://www.dropbox.com/download?plat=lnx.x86_64 | tar xzf -

~/.dropbox-dist/dropboxd


上記コマンドの一つ目でダウンロードし、2つ目のコマンドで起動するので、Ubuntuデスクトップ上の端末から叩きます。そうすると見事起動!一瞬でインストール作業が終わりました!やっぱりUbuntu 64bit版というのネックだったのでしょうか?Dropboxの初期起動画面はWindowsなどとほぼ同じ画面で、メールアドレスとパスワードを入力すると同期が開始されます。このままだと次回マシン起動時に常駐してくれないので、右上の設定ボタンから


WS000756

「自動起動するアプリケーション」を選択し、追加ボタンを押します。

 image WS000758
「自動起動するプログラムの追加」画面で参照ボタンを押し、上記端末でコマンドを実行したディレクトリへ行きます(Dropboxのアプリがインストールされてる場所)。このままではアプリとしてのDropboxディレクトリが表示されてないので、

WS000759


右クリック「隠しファイルを表示する」を選択すると、
WS000760
.dropbox-dist」という隠しディレクトリが表示されるので、この中にある
WS000764
dropboxを選択します。後は適当に名前を付けて、 保存を押します。これで同期完了を待つだけだ!と思ってたのですが、画面右上ら辺に……
WS000762
Oh….

「ファイルシステムを監視できません。問題を解消するために、コマンド”echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches”を実行して、Dropbox…」などと書かれています。(゚Д゚≡゚Д゚)?

それにもめげず、こちらを参考に、

・Dropboxで「ファイルシステムを監視できません。」と出たときの対処法。 - たいぷらいたーざっき。(2012-01-14)

http://ecl.info.kindai.ac.jp/~typewriter/blog/?date=20120114


inotifyは、ファイルシステムのイベントを監視・通知するLinuxカーネルのサブシステムです。fs.inotify.max_user_watches は、1ユーザあたりの監視可能数を指定するパラメータになっています。


Linux版Dropboxはこのinotifyを使っているようですが、おそらくはディレクトリ単位で監視しているようです。



Ubuntu 11.10の場合だとデフォルト 8192ディレクトリが1ユーザあたりの監視可能数のようです。ちなみに、このバージョンのデフォルト監視可能数は調べそびれましたが、同期中のDropbox内ディレクトリ数は、


$ tree -ad | wc -l
14396


Ubuntu 11.10と似たような感じということで。じゃーまだ同期してないのを合せて全部でディレクトリはいくつあるの?と、Windows側を見てみたら、


WS000763


いつDropboxインストールしてんだよ( ;Д;) フォルダー数1万4千超で、Dropbox容量が最大7.2GB。今50%強消費しているので、まぁリンク先にあったような設定にしておきたいと思います。



/etc/sysctl.conf に以下の1行を追加します。


fs.inotify.max_user_watches = 65536


sudo sysctl -pと実行し、sysctl.confに記述した内容が表示されればOKです。


$ sudo sysctl -p
fs.inotify.max_user_watches = 65536



これを実行して現在問題なく同期中です。いつ終わる事やら…


6.ブラウザとAdobe Flash



補助的に使いたいので、動画等で作業用BGMを再生したいのですが、Firefoxでニコニコ動画にアクセスすると、


WS000739


FLASHの部分がこのように表示されません。Ubuntuソフトウェアセンターにもあるのですが、そっちからのインストールはうまくいかなかった(気がする)のでこのブラウザの「Install plugin…」をクリックすると「plugin Finder Service」画面が表示されます。


WS000740


上のAdobe Flash Playerを選択してNextボタンでインストールしました。実に簡単。ニコニコもYoutubeも見ることができました。


image image


ついでにChromeもインストールしておきましょうか。


image


こちらは、Ubuntuソフトウェアからchromeと検索して出て来たのをインストール。


image


こちらは、Flashの事考えなくてもYoutube等見れました。Cent○Sの時はそうはいきませんでしたが…

※2012/10/25 追記
上記ChromeはChromiumというGoogle Chromeベースのオープンソースのブラウザですね。大して違いはないように思いますが、Flashが最初から入ってないで、Google Chromeの方がトラブルが少ないかもしれません。現在はGoogle Chromeにしてます。

それと、Linux上で動くネイティブなアプリってのがなかなか探すのが大変で、Webアプリをよく使うので、Google Chromを自動起動させたいのですが、どれで実行しているのか探すの毎回面倒なのでメモしておきます。たぶんこれ↓
/opt/google/chrome/google-chrome

7.IPアドレスの固定化



デスクトップの共有およびSSHサーバを入れたUbuntuですが、デフォルトのままでは起動のたびにIPアドレスをちょいちょい変えてきます。起動のたびにifconfigを打ち、リモートデスクトップのためにIPアドレスを確認するのは煩わしいので固定化させておきます。どうせWindowsマシンもほぼ固定なので。
左のバーからシステムの設定を選択


image

ネットワークを選択し、

image


オプションをクリックします。


WS000776


IPv4設定で追加ボタンを押し、
IPアドレス:192.168.1.22(任意のアドレス)
ネットマスク:255.255.255.0
ゲートウェイ:192.168.0.1(ルータあたりのアドレス)
を入力し、保存ボタンを押せばOKです。


最後に



windowsほどすんなりインストールできるとは限りませんが、それでもUbuntuソフトウェアセンターは強力で見た目もよく簡単にソフトをインストールでき、作業環境が整ってしまえばあまりLinuxマシンである事が気にならないほどです。Dropboxは試行錯誤しましたが…..今度は開発環境のJava(最新)とeclipse(for java developers)あたりも入れてみようと思います。






Ubuntu Linux入門キット―12.04対応 (INTRODUCTION KIT SERIES 11)
初心者にも優しい無料Linux OS「Ubuntu 12.04」のインストールから応用までをわかりやすく解説した入門書です。Ubuntu 12.04の起動及びインストールから、アプリケーション、日本語入力、パーソナルクラウドサービス「Ubunto One」の使い方、Windowsやスマートフォンとの連携、DVDやiPodを楽しむ方法までやさしく解説。Ubuntu 12.04日本語Remixを収録したDVD-ROM付き。







Ubuntu Magazine Japan vol.08 (アスキームック)
2年に一度の長期サポートバージョン、最新のUbuntu12.04LTSを徹底解説! もちろん、付録には特製インストールDVD付き。Ubuntuを使うなら必須の一冊です。