スポンサーサイト

  • 2015.09.25 Friday

一定期間更新がないため広告を表示しています

  • -
  • -
  • -
  • スポンサードリンク

【Android で 最初のアプリケーションを作る #2 】『 Building Your First App 〜 アプリを実行する 〜 』

  • 2012.08.21 Tuesday
  • 19:31
JUGEMテーマ:コンピュータ

Mountain Lion で、Androidを勉強しようシリーズの第3弾。これまで2回のエントリーで、Mac上での開発環境構築。および、アプリケーション作成の導入(プロジェクトの作成)まで終了してます;

1. 【超・初級編】Android の開発環境を、 OS X Mountain Lion ( 10.8 ) で構築する。
2. 【Android で 最初のアプリケーションを作る #1 】『 Building Your First App 〜 プロジェクトを作る 〜 』





さて。今回のエントリーは、アプリを実行手順についてです。前回のエントリーで作成したプロジェクトにデフォルトで含まれる「 Hello World 」を実行してみます。
元ネタは「 Running Your App」です。

Eclipse 起動後全体画面

ちなみに、Androidのアプリ実行環境は2つ;
・Android の実機端末で実行
・Ecripse (エミュレータ)で実行
それぞれの環境で、アプリをインストールするには、Eclipseで行う/ターミナルからコマンドラインで行うという2種類の方法があります。





具体的な実行手順の説明の前に、Androidのプロジェクトディレクトリに入っている、いくつかのディレクトリ/ファイルをちょっとだけ解説。
プロジェクト内・ファイル構成説明

(1). AndroidManifest.xml
・アプリについての基本的な設定、コンポーネントの定義が書かれている。

(2). src/
主なソースファイルが入っている。app icon でアプリが起動する際に呼ばれる、Activity class がデフォルトで含まれている。

(3). res/
アプリのリソースの入った、サブディレクトリがいくつか含まれる
 a). rawable-hdpi/
 高解像度(hdpi)の画像ファイルが入る。
 "rawable-◯◯" には、それぞれの解像度の画像ファイルが入る
 ※参考)『 Android:画面密度によるリソースのスケーリング
 b). layout/
 アプリのUIを定義するファイルが入る。
 c). values/
 文言や色指定など、いろんな要素が指定されたXMLファイルが入る。





Androidアプリの基本的な起動手順は、以下のとおりです;
0). ビルドして、実行する
1). Activity クラスが呼ばれる
2). Activity クラスが、レイアウトファイルを読み込む
3). レイアウトファイルが、"Hello World" と表示する

まず、実機でアプリを実行しましょう。手順は、以下;

1). USBケーブルで、実機端末とMacを繋ぐ。(Windowsの場合は、なんかインストールが必要
2). 実機端末で、設定 > 開発者向けオプション と進み「USBデバッグ」をONにする
 (※ GALAXY NEXUS SC 04D の場合の遷移。他の端末では違う遷移かも)
3). アプリを実行する
 a). Eclipse で実行する場合;
  ・プロジェクトファイルを開き、ツールバーの「Run(▶)」をクリックする
   ⇒Eclipseがアプリを実機にインストールし、実行される
 b). コマンドラインの場合;

  1). プロジェクトディレクトリの直下に移動し、以下コマンドを実行
  $ pwd
  /Users/cxp04754/Documents/workspace/MyFirstApp
  $ ant debug
  Buildfile: build.xml does not exist!
  Build failed

  ⇒ 失敗・・・
  ※target を指定しないとだめっぽい。『【HowtoForge】Android: Buildfile: build.xml does not exist!』を参考に解決。以下、解決手順;

$ android list targets
Available Android targets:
----------
id: 1 or "android-16"
Name: Android 4.1
Type: Platform
API level: 16
Revision: 2
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
ABIs : armeabi-v7a
----------
id: 2 or "Google Inc.:Google APIs:16"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 2
Description: Android + Google APIs
Based on Android 4.1 (API level 16)
Libraries:
* com.google.android.media.effects (effects.jar)
Collection of video effects
* com.android.future.usb.accessory (usb.jar)
API for USB Accessories
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, WSVGA, WXGA800-7in, WXGA720, HVGA, WQVGA432, WVGA800 (default), QVGA, WXGA800
ABIs : armeabi-v7a

$ pwd
/Users/cxp04754/Documents/workspace/MyFirstApp
$ android update project --target 1 --path .
Updated project.properties
Updated local.properties
No project name specified, using Activity name 'MainActivity'.
If you wish to change it, edit the first line of build.xml.
Added file ./build.xml
Updated file ./proguard-project.txt
It seems that there are sub-projects. If you want to update them
please use the --subprojects parameter.




再度挑戦!




$ ant debug
Buildfile: /Users/cxp04754/Documents/workspace/MyFirstApp/build.xml

-set-mode-check:

-set-debug-files:

-check-env:
[checkenv] Android SDK Tools Revision 20.0.1
[checkenv] Installed at /Applications/android-sdk-macosx

-setup:
[echo] Project Name: MainActivity
[gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-build-setup:
[echo] Resolving Build Target for MainActivity...
[gettarget] Project Target: Android 4.1
[gettarget] API level: 16
[echo] ----------
[echo] Creating output directories if needed...
[echo] ----------
[echo] Resolving Dependencies for MainActivity...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------
[dependency] API<=15: Adding annotations.jar to the classpath.
[echo] ----------
[echo] Building Libraries with 'debug'...
[subant] No sub-builds to iterate on

-pre-build:

-code-gen:
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
[echo] ----------
[echo] Handling Resources...
[aapt] Generating resource IDs...
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] Generating BuildConfig class.

-pre-compile:

-compile:
[javac] Compiling 2 source files to /Users/cxp04754/Documents/workspace/MyFirstApp/bin/classes

-post-compile:

-obfuscate:

-dex:
[dex] Converting compiled files and external libraries into /Users/cxp04754/Documents/workspace/MyFirstApp/bin/classes.dex...

-crunch:
[crunch] Crunching PNG Files in source dir: /Users/cxp04754/Documents/workspace/MyFirstApp/res
[crunch] To destination dir: /Users/cxp04754/Documents/workspace/MyFirstApp/bin/res
[crunch] Crunched 0 PNG files to update cache

-package-resources:
[aapt] Creating full resource package...

-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
[apkbuilder] Creating MainActivity-debug-unaligned.apk and signing it with a debug key...

-post-package:

-do-debug:
[zipalign] Running zip align on final apk...
[echo] Debug Package: /Users/cxp04754/Documents/workspace/MyFirstApp/bin/MainActivity-debug.apk
[propertyfile] Creating new property file: /Users/cxp04754/Documents/workspace/MyFirstApp/bin/build.prop
[propertyfile] Updating property file: /Users/cxp04754/Documents/workspace/MyFirstApp/bin/build.prop
[propertyfile] Updating property file: /Users/cxp04754/Documents/workspace/MyFirstApp/bin/build.prop
[propertyfile] Updating property file: /Users/cxp04754/Documents/workspace/MyFirstApp/bin/build.prop

-post-build:

debug:

BUILD SUCCESSFUL
Total time: 9 seconds
※参考)Ant について:『Ant 1章 Antの基礎



4). さらに以下コマンドを実行
※ PATH に platform-tools のパスを登録している必要あり。詳しは過去エントリ参照。
$ adb install bin/MyFirstApp-debug.apk
can't find 'bin/MyFirstApp-debug.apk' to install
$ adb install bin/MainActivity-debug.apk
2850 KB/s (154135 bytes in 0.052s)
pkg: /data/local/tmp/MainActivity-debug.apk
Success


(↓)ちなみに、既に同じアプリがインストールされてるとエラー出る;

$ adb install bin/MainActivity-debug.apk
2871 KB/s (154135 bytes in 0.052s)
pkg: /data/local/tmp/MainActivity-debug.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]





5). 実機端末で、MyFirstActivity をクリックして実行してみる。問題なく起動!パチパチ







次に、エミュレータ上で、アプリを実行してみましょう。

エミュレータ起動の前に、再現したい端末(Android Virtual Device (AVD))のスペックを指定しないとなりません。指定方法は、以下の通り;
1). Android Virtual Device Manager を起動
 a). eclipse の場合、ツールバーからアイコンドロイド君をクリック
 b). コマンドラインの場合;
$ android avd
※ PATH に platform-tools のパスを登録している必要あり。詳しは過去エントリ参照。

AVDM・ブランクウインドウ

2). Android Virtual Devie Manager (AVDM) が起動したら、画面右の「New...」をクリック。現れるダイアログの「AVD Name」「Target Name」「SD card size」「skin(デフォルトはHVGA)」等、各種値を設定して「Create AVD」。

新規VD設定中画面※参考設定)『Android端末各種 AVD設定表
※SD card とか、適当に1GiBとかにしちゃったけど。とりあえず問題なさそう・・・



それでは、ようやくここで、Eclipse/コマンドラインから、エミュレータを起動します。

1). AVDMのリスト画面で、作成したデバイスを選択して「Start」。
※ かなり時間がかかりまつ。「固まってるのか?」と不安になるけど、我慢。しばらくすると、ロック画面が表示されるので、ロック解除。

エミュレータ起動中・プログレスバー

4). アプリを実行してみる。※ eclipse/コマンドラインの2つ方法あり。
a). eclipse の場合:ツールバーの「Run(▶)」ボタンをクリック
 ・・・これも、起動するまでかなり時間かかって不安になるけど。我慢。
b). コマンドラインの場合(以下);
$ ant debug
Buildfile: /Users/cxp04754/Documents/workspace/MyFirstApp/build.xml

(省略)

BUILD SUCCESSFUL
Total time: 1 second

$ adb install bin/MainActivity-debug.apk
error: more than one device and emulator
- waiting for device -
error: more than one device and emulator
- waiting for device -
error: more than one device and emulator
- waiting for device -
error: more than one device and emulator
- waiting for device -
error: more than one device and emulator
- waiting for device -
error: more than one device and emulator
- waiting for device -

(省略)

エラーでてる。『apkをコマンドラインからアンインストールするには』を参考に解決;

#エミュレータを指定
$ adb -e uninstall <アンインストールしたいパッケージ名>

#実機を指定
$ adb -d uninstall <アンインストールしたいパッケージ名>
※このオプションは、アンインストールに限らない。


複数のエミュレータを立ち上げている場合や複数の実機を接続している場合は、
$ adb devices
で<serial number>を確認して、

$ adb -s <serial number> uninstall <アンインストールしたいパッケージ名>

とかすればよい。




やってみる。

$ adb -e install bin/MainActivity-debug.apk
1747 KB/s (154135 bytes in 0.086s)
pkg: /data/local/tmp/MainActivity-debug.apk
Success


are_you_freezing

成功したです。

catting_log

ログも見られるです。



今回は、ここまで。次回はUIのカスタマイズ方法です。

スポンサーサイト

  • 2015.09.25 Friday
  • 19:31
  • -
  • -
  • -
  • スポンサードリンク
コメント
コメントする

PR

calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< January 2019 >>

本が出てます☆

Twitter

selected entries

categories

archives

recent comment

  • Mac OS X Lion で、emacs を楽に使うために、Meta キーを「option」に設定したい。
    通りすがり (01/19)
  • 携帯キャリアの、アクセス制限(未成年保護)についてのまとめ
    たけのこの里 (10/01)
  • Mac OS X Lion で、emacs を楽に使うために、Meta キーを「option」に設定したい。
    イシカワ (07/16)
  • さくらインターネットで、gem install すると「chown/chgrp: Operation not permitted 」と叱られる件の対応
    sean (04/20)
  • さくらインターネットで、gem install すると「chown/chgrp: Operation not permitted 」と叱られる件の対応
    てっちー (03/24)
  • Mac OS X Lion で、emacs を楽に使うために、Meta キーを「option」に設定したい。
    JO (01/04)
  • Passbook(パスブック)on iOS6 (NDAに触れない範囲で...)
    ぱん (09/28)
  • Passbook(パスブック)on iOS6 (NDAに触れない範囲で...)
    宮腰睦美 (09/23)
  • magit を、Lion の emacs にインストール
    ぱん (05/08)
  • 【 Xcode4.2 】Interface Builder使わずに、座標を合わせたい(習作1)
    ぱん (12/21)

recommend

iOSプログラミング 第2版
iOSプログラミング 第2版 (JUGEMレビュー »)
アーロン・ヒレガス,ジョー・コンウェイ,Aaron Hillegass,Joe Conway
■独学で初心者を脱出するには、必読ではないでしょうか。翻訳でニュアンスが伝わらない部分があるので、原書と、サポートサイト(英語)を活用すべし!です。

recommend

iPhoneプログラミングUIKit詳解リファレンス
iPhoneプログラミングUIKit詳解リファレンス (JUGEMレビュー »)
所 友太
■内容古いですが、iOSプログラマー中級以上の階段を登るために、必要な本だと思います。iOS5対応版出ないかな。。

recommend

iOSプログラミング入門 - Objective-C + Xcode 4で学ぶ、iOSアプリ開発の基礎
iOSプログラミング入門 - Objective-C + Xcode 4で学ぶ、iOSアプリ開発の基礎 (JUGEMレビュー »)
大津 真
■Ch.1「iOS プログラミングを始めるための基礎知識」でXcodeの概要を理解して、Ch.2「Objective-C の基礎知識」で、Objective-Cの考え方を理解できます。iOSプログラミングのキックオフにぴったり。

recommend

去年ルノアールで
去年ルノアールで (JUGEMレビュー »)
せきしろ
■ルノアールで妄想が爆発

recommend

RailsによるアジャイルWebアプリケーション開発 第4版
RailsによるアジャイルWebアプリケーション開発 第4版 (JUGEMレビュー »)
Sam Ruby,Dave Thomas,David Heinemeier Hansson
■Railsのバイブル第4版の日本語版が2011年末にリリース!サーバサイドで準備するAPIや、Webサイト関連のもろもろは、やっぱRailsでしょう。

links

profile

search this site.

others

mobile

qrcode

powered by

無料ブログ作成サービス JUGEM