Ubuntu 12.04, 11.10, 11.04 で Android SDK のダウンロードとインストールとテスト実行
この Web ページで行うこと.
- Android SDK のダウンロードとインストール
- コマンドを使って,エミュレータを起動してみる
- OpenJDK のダウンロードとインストール
- Eclipse と Eclipse のプラグインのダウンロードとインストール
- Eclipse ADT (Eclipse のプラグイン Android Development Tools) のダウンロードとインストール
- Eclipse の Android SDK マネージャ (SDK Manager) を起動し,Android SDK がインストール済みであることを確認
- Eclipse で AVD マネージャ (AVD Manager) を用いた設定
- Eclipse で Android プロジェクトを作成してみる
- Eclipse で既存のアプリケーションプログラムをインポートし,動かしてみる
Android SDK のダウンロードとインストール
- 64 ビット Linux では ia32-libs をインストールする
if [ `arch` = 'x86_64' ]; then 実行結果 ia32-libs fi
* ia32-libs のインストール時にエラーが出るときは、/etc/dpkg/dpkg.cfg.d/multiarch が「foreign-architecture i386」のようになっていることを確認する。
- Android SDK の Web ページを開く
- Linux 版を選ぶ
クリックするとダウンロードが始まる。
- 分かりやすいディレクトリで、ダウンロードしたファイルを展開(解凍)
ダウンロードしたファイルは,分かりやすいところに解凍 (ここでは,/usr/localと書いています).
cd /usr/local sudo tar -xvzof /tmp/android-sdk_r20-linux.tgz
- ファイルの所有者の調整
sudo chown -R <ユーザ名> /usr/local/android-sdk-linux
- Android SDK and AVD Manager の起動
cd /usr/local cd android-sdk-linux sudo ./tools/android
- インストールしたいパッケージを選択し,インストールを開始
◆ 下の実行例では,Android SDK Platform-tools と Android 2.3.3 にもチェックを入れている
- インストールされるパッケージの確認
- (オプション) 次のようなメッセージが出たときは,「Yes」をクリックして ADB を再起動する
- ログの確認
- 変数 PATH の設定
cd echo 'export PATH=$PATH:/usr/local/android-sdk-linux/tools:/usr/local/android-sdk-linux/platform-tools' >> .bashrc
コマンドを使って,エミュレータを起動してみる
- もし Eclipse を起動しているなら,混乱を防ぐためEclipse は終了しておく
- コマンドを使って,ddms を起動してみる
sudo /usr/local/android-sdk-linux/tools/android update adb sudo /usr/local/android-sdk-linux/platform-tools/adb kill-server sudo /usr/local/android-sdk-linux/platform-tools/adb start-server /usr/local/android-sdk-linux/tools/ddms
- 初回起動時には次のようなウインドウが現れることがある.
- Dalvik Debug Monitor のウインドウが現れる
- コマンドを使って,Android エミュレータを起動してみる
cd /usr/local/android-sdk-linux/tools ./android create avd -n hoge -t 1 ./emulator -avd hoge
OpenJDK 1.7 のダウンロードとインストール
- ソフトウェアソースの設定
◆ Ubuntu 12.04 での設定手順例
sudo add-apt-repository "deb https://archive.canonical.com/ precise partner" sudo apt -y update
◆ Ubuntu 11.10 での設定手順例
sudo add-apt-repository "deb https://archive.canonical.com/ oneiric partner" sudo apt -y update
◆ Ubuntu 11.04 での設定手順例
sudo add-apt-repository "deb https://archive.canonical.com/ natty partner" sudo apt -y update
- Java のバージョンの確認
java -version
◆ すでに,OpenJDK 1.6.0_24 が使われている場合の実行結果例
- (オプション) sun-java6 のアンインストール操作
sudo apt-get -yV --force-yes --purge remove sun-java6-bin sun-java6-fonts sun-java6-javadb sun-java6-jdk sun-java6-jre sun-java6-plugin sun-java6-source
- OpenJDK 1.7 のインストール
sudo apt -y update sudo apt -y install openjdk-7-dbg sudo apt -y install openjdk-7-demo sudo apt -y install openjdk-7-doc sudo apt -y install openjdk-7-jdk sudo apt -y install openjdk-7-jre sudo apt -y install openjdk-7-jre-headless sudo apt -y install openjdk-7-jre-lib sudo apt -y install openjdk-7-source
- OpenJDK 1.7 を使うように設定
次のコマンドを実行.し、java-7-openjdk の行の番号を設定する
sudo update-alternatives --config java
◆ 操作手順例
- 設定の確認
update-java-alternatives -l java -version
Eclipse と Eclipse のプラグインのダウンロードとインストール
- Eclipse のインストール
sudo apt -y update sudo apt -y install eclipse
- (オプション) Eclipse 関係のパッケージのインストール
sudo apt -y update sudo apt -y install eclipse-cdt sudo apt -y install eclipse-jdt sudo apt -y install eclipse-emf sudo apt -y install eclipse-emf-examples sudo apt -y install eclipse-sdk sudo apt -y install eclipse-jdt sudo apt -y install eclipse-pde sudo apt -y install eclipse-platform sudo apt -y install eclipse-platform-data sudo apt -y install eclipse-plugin-cvs sudo apt -y install eclipse-rcp sudo apt -y install eclipse-rse sudo apt -y install eclipse-xsd sudo apt -y install eclipse-xsd-sdk sudo apt -y install pleiades
- plieades の設定
if [ -f /usr/share/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar ]; then echo '-javaagent:/usr/share/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar' | sudo tee -a /usr/lib/eclipse/eclipse.ini fi
- Eclipse を起動してみる
端末で「eclipse」
環境設定と起動チェック
環境設定を下記に示す.
- Eclipse の起動
- ワークスペースの作成
Eclipseを起動すると,最初の画面で,「ワークスペースの選択 (Select a workspace)」と出る. ここでワークスペースのディレクトリとして設定する.OK を押すと,ワークスペースが作成される.
- Eclipse で,インストール済みの JRE の確認
Eclipse で 「Window(ウィンドウ)」→「Preferences(設定)」→「Java」→「Installed JRE(インストール済みのJRE)」
【インストール済みの JRE】の変更手順
インストール済み JRE が,下記のように「...java-6-openjdkのようになっている場合には、 OpenJDK 1.7 を使っていないことになるので、手動で設定する.
設定手順は下記の通り.
- 「search (検索)」ボタンを押して,「/usr/lib/jvm/java-7-openjdk-i386」 あるいは 「/usr/lib/jvm/java-7-openjdk-amd64」 を設定する
- 追加された Java の方にチェックしなおす
- (オプション)行番号の表示
今開いている設定用ウインドウで,「general(一般)」→「Editors(エディタ)」→「Text Editor(テキストエディタ)」
「Show line numbers (行番号の表示)」をチェック
- (オプション) 文字コード設定
Eclipseでテキストファイルを扱う場合の文字コードについて,問題があれば,変更できる.
今開いている設定用ウインドウで,「general(一般)」→「ワークスペース」
「Text file encoding (テキスト・ファイル・エンコード)」と, 「New text file line delimiter (新規テキスト・ファイルの行区切り文字)」を設定
- (オプション) Emacs風キーバインド
今開いている設定用ウインドウで,「一般 (General)」 → 「キー (Keys Modify)」 → 「スキーム(Scheme)」のプルダウンから 「Emacs」
- ビルド・パスの確認
今開いている設定用ウインドウで,「Java」→「Build Path(ビルド・パス)」
「Source and output folder(ソース及び出力フォルダー)」 で,「Folders(フォルダー)」にチェック されているはず.確認しておく.
「Source folder name (ソース・フォルダー名)」と「Output folder name (出力フォルダー名)」をここままでもよいし,好きに設定してもよい(何でも良いが,別のディレクトリになるように設定すること).
- java コンパイラのランレベルの確認
今開いている設定用ウインドウで,「Java」→「Compiler(コンパイラ)」
Compiler compliance Level を設定できる。
Eclipse ADT (Eclipse のプラグイン Android Development Tools) のダウンロードとインストール
- Eclipse を起動 (Start Eclipse)
- ヘルプ (Help) → 新規ソフトウェアのインストール (Install New Software ...)
- 上右にある「追加 (Add)」 をクリック
- レポジトリの追加
次の URL を指定
https://dl-ssl.google.com/android/eclipse/
- いま追加したレポジトリを指定. 表示されるまでしばらく待つ.
- 「開発ツール (Developer Tools)」
と
「NDK plugins」
をチェックし、「次へ (Next)」をクリック
- インストール項目の確認
確認したら「次へ (Next)」をクリック
- ライセンス条項を確認.同意する場合のみ続行
- インストールの途中で
「署名なしコンテンツを含むソフトウェアをインストールしている」という確認表示がでることがある.
確認したら「OK」をクリックする.
- インストールが終わったら,
「今すぐ再起動 (Restart Now)」をクリックして
Eclipse を再起動
- 「Welcome to Android Development」というタイトルのついた
新しいウインドウが現れるので,
「Target」に, Android SDK インストールディレクトリを設定する
* ウインドウが現れない場合には,ウインドウ (Window) → 設定 (Preference) と操作し, 左パネルにある 「Android」を選ぶ
- (オプション) このとき,Google に統計情報を送信するかの確認表示が出る場合がある.
Eclipse の Android SDK マネージャを起動し,Android SDK がインストール済みであることを確認
- インストールされたパッケージの確認
Eclipse で, ウインドウ (Window) → Android SDK マネージャー (Android SDK Manager) と操作する.
- インストールされたパッケージが確認できる
Eclipse で AVD マネージャ (AVD Manager) を用いた設定
AVD マネージャ(AVD Manager) の起動
- Eclipse で, ウインドウ (Window) → AVD マネージャー (AVD Manager) と操作する.
AVD の新規作成
- AVD を新規に作成したい場合には「新規 (New)」をクリックする
- AVD の名前 (Name) や ターゲット (Target) などを設定する.
AVD の開始
- AVD を開始したい場合には, 開始したい AVD を選んだ後で,「開始」をクリックする
- * ユーザデータを消去したいときは「Wipe user data」をチェックする.
- 「起動」をクリックすると、AVD が開始する.
Eclipse で Android プロジェクトを作成してみる
- Eclipse の起動
-
「ファイル (File)」
→
「新規 (New)」
→
「プロジェクト (Project)」 と操作する
- Android プロジェクト (Android Project) を選ぶ
- プロジェクト名を設定する
- ビルド・ターゲットを設定する
- パッケージ名などを設定する
- まずは,実行してみる
プロジェクトを右クリックし, 「実行 (Run)」 → 「Android アプリケーション (Android Application)」
しばらく待つと, エミュレータの画面に 「Hello World, ...」というようなメッセージが現れる.
- アクティビティの Java ファイルを書き換えてみる
- 再度,実行してみる
プロジェクトを右クリックし, 「実行 (Run)」 → 「Android アプリケーション (Android Application)」
実機の接続に関する設定
- udevadm の設定
使用する Android 機器の設定を行う.
【関連する外部ページ】: https://developer.android.com/tools/device.html#Vendorid
◆ <Sony Ericsson の場合の設定手順例>
Vender ID のところ(「0fce」のようになっているところ)は、Android 機器の会社によって変わる値。
echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fce\", MODE=\"0666\", GROUP=\"plugdev\"" > /tmp/51-android-rules sudo cp /tmp/51-android-rules /etc/udev/rules.d/51-android-rules
- udevadm の設定ファイルの読み込み
sudo udevadm control --reload-rules
- Android 機器では、次の操作を行う。
- 「アプリケーション」を選び、 「提供元不明のアプリ」にチェックする
- 「設定」 → 「アプリケーション」 → 「開発」 を選び、 「USBデバッグ」にチェックする
- Android 機器が接続されていることの確認
「adb devices」の実行により、接続されている Android 機器のデバイス番号が表示される
adb devices
- (オプション) adb -s <デバイス番号> shell
- (オプション) adb -s <デバイス番号> logcat
Eclipse で既存のアプリケーションプログラムをインポートし,動かしてみる
ここでは, 例として「初めての Android」に掲載されているサンプルプログラムを試してみる.- 書籍に記載されている URL からダウンロード
- zip ファイルの中にたくさんのディレクトリがある. 確認しておく.
- Sudokuv4 をインポートしたいので,
Eclipse で,「org.example.sudoku」というパッケージ名の
Android プロジェクトを作成しておく.
プロジェクト名は,インポートしたいプログラムの src ディレクトリを見るとすぐに分かる.
- Eclipse で,Android プロジェクトを右クリックし,「インポート (Import)」と操作する.
- 「ファイル・システム」を選ぶ
- インポート操作
- 実行してみる
プロジェクトを右クリックし, 「実行 (Run)」 → 「Android アプリケーション (Android Application)」
しばらく待つと, エミュレータの画面に 数独が現れる.
GPS 情報を取得してみる(書きかけ)
package hoge.hoge.com;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;
import android.location.Location;
import android.location.LocationManager;
public class HelloActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager locman = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Location loc = locman.getLastKnownLocation(LOCATION_SERVICE);
double latitude = loc.getLatitude();//緯度
double longitude = loc.getLongitude();//経度
TextView tv = new TextView(this);
tv.setText( "lat: " + latitude + ", long: " + longitude );
setContentView(tv);
}
}
JavaScript を使ってみる
- assets/www/index.html の作成
<html> <head> <script type="text/javascript"> document.write(anroid.gps("<i>", "</i>")); </script> </head> <body> <p> Hello </p> </body> </html>
- src/hoge.hoge.com/JavaScriptObj.javaの作成
package hoge.hoge.com; import android.content.Context; import android.location.Location; import android.location.LocationManager; public class JavaScriptObj { private Context con; public JavaScriptObj(Context con) { this.con = con; } public String gps(String top, String end) { LocationManager locman = (LocationManager)con.getSystemService(Context.LOCATION_SERVICE); Location loc = locman.getLastKnownLocation(Context.LOCATION_SERVICE); double latitude = loc.getLatitude();//緯度 double longitude = loc.getLongitude();//経度 int lat = (int) (loc.getLatitude() * 1000000); int lon = (int) (loc.getLongitude() * 1000000); return top + "緯度:" + lat + ", 経度: " + lon + end; } }
- src/hoge.hoge.com/HelloActivity.javaの編集
package hoge.hoge.com; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.webkit.WebView; import android.widget.TextView; public class HelloActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView wv = new WebView(this); wv.getSettings().setJavaScriptEnabled(true);//JS利用OK setContentView(wv); JavaScriptObj jo = new JavaScriptObj(this); wv.addJavascriptInterface(jo, "android"); wv.loadUrl("file:///android_asset/www/index.html"); } }