1.23k likes | 1.43k Views
はじめての Android アプリ 作成. 株式会社 コトブキソリューション 丹田 真 裕 柳澤 義彦. Android について. Android とは. Google 社が中心となって開発を進めている Linux ベースの携帯電話向けプラットフォーム. いわゆる“スマートフォン”の代表的なプラットフォーム. Android の特徴. オープンソース 様々なメーカーが対応 ケータイだけでなく、ネットブックやタブレットなども 開発が簡単に始められる 開発ツールが無料 実機でも容易に実行できる アプリ配布が容易
E N D
はじめてのAndroidアプリ作成 株式会社コトブキソリューション 丹田 真裕 柳澤 義彦
Androidとは • Google社が中心となって開発を進めているLinuxベースの携帯電話向けプラットフォーム いわゆる“スマートフォン”の代表的なプラットフォーム
Androidの特徴 • オープンソース • 様々なメーカーが対応 • ケータイだけでなく、ネットブックやタブレットなども • 開発が簡単に始められる • 開発ツールが無料 • 実機でも容易に実行できる • アプリ配布が容易 • Android Marketに開発者登録(一度だけ$25を支払う必要がある)すると、世界中に配布することができる
Androidで何ができるか NFC (非接触通信) 2D/3Dグラフィックス GPS/MAP カメラ Web モーションセンサー ビデオ/音楽 etc… 多くの機能がよりパワフルに、簡単に扱えるようになった
Androidアプリ作成の流れ ソースコード作成 (Java) 画像・音楽などの リソースファイル AndroidManifest.xml ビルド apkファイル(未署名) 署名 apkファイル(署名付き)
Androidアプリの開発に必要なツール • Java Development Kit (JDK) • Javaアプリケーションを動作させるのに必要 • Android SDK -Android開発に必要なツールのセット - 解凍するだけでインストール完了 -Eclipseという統合開発環境が付属しているので、 これ一つで開発可能 最短5分で開発が始められるお手軽さ
コマンドライン用のパスの設定 • Android SDKにはコマンドラインで利用するコマンドが含まれている • 毎回フルパスを入力するのは面倒・・・ • パスを通して入力を簡単にする • 例えばデバッグ時に利用するadbコマンドパスを通す前:パスを通した後: >C:\Program Files\Android\android-sdk\platform-tools\adb.exe >adb Android SDKのインストール方法とパスの通し方は付録に記載
Hello Worldアプリ • 画面に”Hello World”と表示する簡単なプログラムです • 開発ツールの使い方と併せて説明します
Eclipseを起動 標準では英語だが Pleiades で日本語化可能
プロジェクトの作成 ①Eclipseのメニューから「File→New→Project」を選択する。 ②「Android→Android Project」を選択して「Next」
プロジェクトの作成 Androidのバージョン アプリケーション名 プロジェクト名 パッケージ名 (他のアプリと被らないようにする) 最低限必要なAPI Level
プロジェクトの作成 アプリケーションのアイコンなどの設定
パッケージ名 • パッケージ名とは • Androidアプリを識別するための名前 (同じパッケージ名のアプリは同じアプリ) • 世界で唯一・ユニークである必要あり • 一般的にはドメイン名を逆にしてつけます 例 kemco.jpという独自ドメインを持ってる場合 → jp.kemco.testapp ドメインを逆にしたもの アプリの名称
ソースコードの追加 ①Package Explorerの「HelloWorld→src」からパッケージを右クリックし、ポップアップで「New→Class」を選択する ②ダイアログでNameに「HelloView」と入力し、「Finish」 ③ソースコードが作成されるので、編集していく ソースコードについては後ほど説明
AndroidManifest.xml • プロジェクトを作成すると、属性ファイルである「AndroidManifest.xml」が作成される • AndroidManifest.xmlには、アプリ名、バージョン番号、セキュリティ情報などを記載する
AndroidManifest.xml AndroidManifest.xmlが本体 簡易入力のためのUIがいくつかある
適当に次へを押して行くだけで HelloWorldは完成です さっそく実行してみましょう
Android Virtual Device(AVD)の追加 • デバッグで使用するエミュレータの設定を追加する • Eclipseから「Windows→AVD Manager」を選択
AVDの設定 設定名 Androidのバージョン 画面サイズ 詳細設定
AVDの起動 Ctrl + F12で画面の向きを 切り替え
エミュレーターでの実行 ① Eclipseのメニューから「Run→Debug Configurations」を選択 ② 「Android Application」を選択
実行設定 「New launch configuration」を押す 実行設定名 プロジェクト名 「New_configuration」を追加
デバッグの開始 マニュアルに設定 デバッグ開始
デバッグする端末の選択 さっき起動したエミュレータを選択
エミュレータで注意すること • 一度起動したら、そのまま起動しておこう • エミュレータの起動には時間がかかる • 画面サイズが大きいとかなり動作が重い • 大きい画面にする必要性がなければ、HVGA(320x480)で開発を試すのもアリ • 最新のintelPCを利用しているならHAXMを利用することで、高速に動作します (インストール方法は付録に記載)
エミュレータが遅いと感じたら 19800円から購入可能
ソースコード解説 HelloWorld.java package keitaiaward.sample.helloworld; import android.app.Activity; import android.os.Bundle; import android.view.Window; public class HelloWorldextends Activity { /** Called when the activity is first created. */ //アプリの初期化 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(new HelloView(this)); } } パッケージ宣言 利用するクラスの指定 Activityクラスの継承 起動時に呼ばれる
Activityについて • 「アクティビティ」はAndroidアプリの基本的な構成要素-WindowsアプリだとWindowに対応 • ユーザーインターフェースの提供やイベントの処理など、ユーザーとアプリのやりとりを仲介する役目 • 1つの画面に対して1つのアクティビティが対応づけられる • 1つのアプリに複数のアクティビティが入ることも • 他のアプリのアクティビティを利用することも可能
各関数について • Activityクラス: • void onCreate( Bundle savedInstanceState ) • アプリ起動時に呼ばれる関数。savedInstanceStateはonCreate()呼び出し時に渡されるデータ。 onCreate()では、super.onCreate(savedInstanceState); のように、必ずスーパークラス(親クラス)のonCreate()を呼び出す必要がある。
各関数について • Activityクラス: • void requestWindowFeature( intfeatureID) • ウィンドウの特徴IDの指定をする。Window.FEATURE_NO_TITLEはウィンドウを「タイトルなし」に設定する。
各関数について • Activityクラス: • void setContentView(View view ) • 実画面に表示するビューを指定する。 表示するもの 実画面 ビュー1 setContentView() ビュー2 表示するものを指定 ビュー1 ビュー3
HelloViewクラス HelloView.java package keitaiaward.sample.helloworld; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class HelloView extends View { //コンストラクタ public HelloView(Context context) { super(context); setBackgroundColor(Color.WHITE); } //描画 @Override protected void onDraw(Canvas canvas) { canvas.drawText("Hello World!", 0, 12, new Paint()); } } インスタンス化する時に呼び出す 描画の実行
Viewクラスについて • Viewクラス • 画面表示の機能をもつもの(以下、ビューと呼ぶ)の、土台となる基本的なクラス。ビューとなるクラスはこのクラスを継承する。 RadioButton 画面を構成するものをまとめてViewと呼ぶ EditText Button
Viewのコンストラクタ • Viewクラス: • View( Context context) • Viewクラスのコンストラクタには、アプリケーション環境の情報を保持するContextオブジェクトを渡す必要がある。 • Activityクラスは、Contextクラスも継承しているので、引数としてActivity自身である(this)を渡すことが出来る。 HelloWorldクラス:setContentView(new HelloView(this)); • Viewクラス: • void setBackgroundColor( int color ) • colorで指定した、背景色に指定する 色の例
画面への描画 • Viewクラス: • void onDraw(Canvas canvas ) • onDraw()はアプリ起動時や再描画が必要な時に呼び出される。引数のCanvasクラスのオブジェクトを操作することで、画面に文字列や画像を表示できる。
Canvasクラス • Canvasクラス • 画面に文字列や画像を表示するためのクラス。文字列表示や画像表示のメソッドを持つ • Canvasクラス: • void drawText (String text, int x, int y, Paint paint ) • 指定したXY座標に文字列を描画する。x, yはそれぞれ原点( 0, 0 )から何ドット移動したのかを示す。 • 指定したXY座標は文字列の左上でなく、ベースラインの左端の座標になる。 x Hello World! y ベースライン
Android端末での実行方法 • Android端末で実行する場合、基本的にはPCとUSB接続をしてインストールします • Android端末の接続準備 • メニュー→設定→アプリケーション→開発を選択し、USBデバッグにチェックをする ドライバインストール前に設定しておかないと、失敗することも!
ドライバのインストール • Android端末をUSBでPCに接続しドライバをインストールする • デバッグ用ドライバ(ADB)は各メーカーが出している • Android SDKに含まれているドライバでインストール出来る場合もある • Macでは大体の端末でドライバは不要
Android端末での実行方法 • コマンドプロンプトで「adb devices」と入力し、端末一覧を表示 • 接続されているかどうか確認 >adb devices List of devices attached 355663040669216 device
端末を選択して実行 エミュレーターと同じように実行すると、接続した端末が出てくる
実機に接続できないときは? ・USBデバッグにチェックを入れた? ・デバイスマネージャで端末は認識してる? (黄色い!マークはドライバが入ってません) ・ベンダーIDの登録が必要なことも /Documents and Settings/自分の名前/.androidフォルダのadb_usb.ini 富士通なら0x054C ソニーなら0x04C5など
署名付きapkファイルの作成 • Androidアプリは必ず署名を行う必要がある APKとはAndroidアプリの形式で EXEみたいなもの 署名とはアプリの製作者がだれか証明するもの
署名付きapkファイルの作成 • Package Explorerでプロジェクトを右クリックし、Android Tools→Export Signed Application Package またはAndroidManifest.xmlのここをクリック
署名付きapkファイルの作成 プロジェクト名