はじめての Android これであなたも今すぐ始められる!
自己紹介 <ul><li>hironemu
東京でWeb系Javaエンジニア </li><ul><li>業務系アプリ
インフラもやります
Rubyも使います </li></ul><li>Androidは初心者 </li><ul><li>携帯用のアプリも作った経験なし </li></ul></ul>
目次 <ul><li>Android概要
開発環境の構築 </li><ul><li>開発者登録 </li></ul><li>Androidプログラミング
TODOアプリケーション </li><ul><li>ソースを見てみる </li></ul><li>公開するには </li></ul>
Android概要
概要 <ul><li>特徴 </li><ul><li>携帯、ネット端末のプラットフォーム
オープンソース </li><ul><li>Linux、libc、SQLite、Open GL ES、etc... </li></ul><li>マルチタスク
Java SE(の拡張) </li><ul><li>J2MEとかじゃない
Dalvik(ダルビック) JVM </li></ul></ul></ul>
概要Androidのなかみ アプリケーション アプリケーションフレームワーク ライブラリ Linux Android ランタイム 初めての Android ( 初版 ) P.12 より ディスプレイ ドライバ Bluetooth ドライバ カメ...
概要 <ul><li>特徴 </li><ul><li>有料コンテンツ </li><ul><li>2009 年 10 月より日本でも利用可能に
売上 </li><ul><li>3 割キャリア
7 割開発者 </li></ul><li>利用者は Google Checkout を使って購入 </li></ul></ul></ul>
概要 <ul><li>現在の主要なバージョン </li><ul><li>1.5
1.6 (HT-03A, Xperia)
2.1 (Nexus One) </li></ul><li>日本のAndroid端末 </li></ul>Xperia (2010 年 4 月 1 日  発売予定 ) Version 1.6 HT-03A (2009 年 6 月 発売 ) Ve...
<ul>開発環境の構築 </ul>
開発の準備 <ul><li>必要なもの </li><ul><li>Java SDK
Android SDK (最初にインストール )
Eclipse
Android Development Tools (ADT) ( プラグイン)
実機 ( なくても大丈夫)
または、 Dev Phone </li><ul><li>開発者サイトから購入可
開発者登録が必要 </li></ul></ul></ul>
開発の準備 <ul><li>Android SDK </li><ul><li>http://developer.android.com/intl/ja/sdk/index.html
android-sdk_r04-windows.zip </li></ul><li>ZIP ファイル解凍後適当なディレクトリへ配置
SDK Setup.exe を実行 </li></ul>
開発の準備 <ul><li>ここで、httpsでアクセスできなというエラーが出るとき </li></ul>
開発の準備 <ul><li>ホームディレクトリの.androidディレクトリに </li><ul><li>androidtool.cfgを作成
以下の一行を追加して、再度SDK Setup.exeを実行 </li></ul></ul>sdkman.force.http=true ※ 詳しくは、 <ul><ul><ul><li>http://d.hatena.ne.jp/hiro_nem...
開発の準備 <ul><li>今回入れるのは、以下の3つ </li><ul><li>SDK Platform Android 1.6 API
Google APIs
Usb Driver package </li></ul></ul>
開発の準備 <ul><li>Eclipseプラグイン(ADT) </li><ul><ul><li>https://dl-ssl.google.com/android/eclipse/ </li></ul></ul></ul>
開発の準備 <ul><li>ADTインストール後 </li><ul><li>Windows > Preferences  > Android </li><ul><li>Android SDKのインストールパスを入れて完了 </li></ul><...
開発者登録
開発者登録 <ul><li>開発者登録するとできること </li><ul><li>Androidマーケットでアプリを公開できる
有料アプリも公開できる
Android Dev Phoneの購入 </li></ul><li>登録するには </li><ul><li>開発者登録には $25 必要
支払いには Google Checkout が必要 </li><ul><li>クレジットカードによる決済 </li></ul></ul></ul>
開発者登録の流れ <ul><li>メールアドレス、電話番号等の入力 </li></ul>
開発者登録の流れ <ul><li>支払い(Google Checkout) </li></ul>
開発者登録の流れ <ul><li>クレジットカード登録 </li></ul>
開発者登録の流れ <ul><li>支払い完了 </li></ul>
開発者登録の流れ <ul><li>開発者登録確認 </li></ul>
開発者登録の流れ <ul><li>開発者登録完了 </li></ul>
<ul>Android プログラミング </ul>
開発の基礎 <ul><li>アプリケーションは個別の Linux プロセス
プロセスごとに専用 VM
Upcoming SlideShare
Loading in...5
×

はじめてのAndroid in 高知

2,625
-1

Published on

「日本Androidの会四国支部第四回勉強会inこうち」で使った資料です。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,625
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

はじめてのAndroid in 高知

  1. 1. はじめての Android これであなたも今すぐ始められる!
  2. 2. 自己紹介 <ul><li>hironemu
  3. 3. 東京でWeb系Javaエンジニア </li><ul><li>業務系アプリ
  4. 4. インフラもやります
  5. 5. Rubyも使います </li></ul><li>Androidは初心者 </li><ul><li>携帯用のアプリも作った経験なし </li></ul></ul>
  6. 6. 目次 <ul><li>Android概要
  7. 7. 開発環境の構築 </li><ul><li>開発者登録 </li></ul><li>Androidプログラミング
  8. 8. TODOアプリケーション </li><ul><li>ソースを見てみる </li></ul><li>公開するには </li></ul>
  9. 9. Android概要
  10. 10. 概要 <ul><li>特徴 </li><ul><li>携帯、ネット端末のプラットフォーム
  11. 11. オープンソース </li><ul><li>Linux、libc、SQLite、Open GL ES、etc... </li></ul><li>マルチタスク
  12. 12. Java SE(の拡張) </li><ul><li>J2MEとかじゃない
  13. 13. Dalvik(ダルビック) JVM </li></ul></ul></ul>
  14. 14. 概要Androidのなかみ アプリケーション アプリケーションフレームワーク ライブラリ Linux Android ランタイム 初めての Android ( 初版 ) P.12 より ディスプレイ ドライバ Bluetooth ドライバ カメラ ドライバ フラッシュメモリ ドライバ バインダ ドライバ キーバッド ドライバ キーバッド ドライバ USB ドライバ WiFi ドライバ オーディオ ドライバ 電源管理 サーフェス マネージャ メディア フレームワーク SQLite Open GL ES FreeType Webkit SGL SSL libc アクティビティ マネージャ ウィンドウ マネージャ コンテンツ プロバイダ ビューシステム 通知マネージャ キーバッド ドライバ パッケージ マネージャ 電話 マネージャ リソース マネージャ 位置 マネージャ センサ マネージャ Home Contcts ( アドレス帳 ) Phone ( 電話 ) ブラウザ あなたの アプリケーション コアライブラリ Dalvik 仮想マシン ここ
  15. 15. 概要 <ul><li>特徴 </li><ul><li>有料コンテンツ </li><ul><li>2009 年 10 月より日本でも利用可能に
  16. 16. 売上 </li><ul><li>3 割キャリア
  17. 17. 7 割開発者 </li></ul><li>利用者は Google Checkout を使って購入 </li></ul></ul></ul>
  18. 18. 概要 <ul><li>現在の主要なバージョン </li><ul><li>1.5
  19. 19. 1.6 (HT-03A, Xperia)
  20. 20. 2.1 (Nexus One) </li></ul><li>日本のAndroid端末 </li></ul>Xperia (2010 年 4 月 1 日 発売予定 ) Version 1.6 HT-03A (2009 年 6 月 発売 ) Version 1.5 -> 1.6(2009/10)
  21. 21. <ul>開発環境の構築 </ul>
  22. 22. 開発の準備 <ul><li>必要なもの </li><ul><li>Java SDK
  23. 23. Android SDK (最初にインストール )
  24. 24. Eclipse
  25. 25. Android Development Tools (ADT) ( プラグイン)
  26. 26. 実機 ( なくても大丈夫)
  27. 27. または、 Dev Phone </li><ul><li>開発者サイトから購入可
  28. 28. 開発者登録が必要 </li></ul></ul></ul>
  29. 29. 開発の準備 <ul><li>Android SDK </li><ul><li>http://developer.android.com/intl/ja/sdk/index.html
  30. 30. android-sdk_r04-windows.zip </li></ul><li>ZIP ファイル解凍後適当なディレクトリへ配置
  31. 31. SDK Setup.exe を実行 </li></ul>
  32. 32. 開発の準備 <ul><li>ここで、httpsでアクセスできなというエラーが出るとき </li></ul>
  33. 33. 開発の準備 <ul><li>ホームディレクトリの.androidディレクトリに </li><ul><li>androidtool.cfgを作成
  34. 34. 以下の一行を追加して、再度SDK Setup.exeを実行 </li></ul></ul>sdkman.force.http=true ※ 詳しくは、 <ul><ul><ul><li>http://d.hatena.ne.jp/hiro_nemu/20100107 </li></ul></ul></ul>
  35. 35. 開発の準備 <ul><li>今回入れるのは、以下の3つ </li><ul><li>SDK Platform Android 1.6 API
  36. 36. Google APIs
  37. 37. Usb Driver package </li></ul></ul>
  38. 38. 開発の準備 <ul><li>Eclipseプラグイン(ADT) </li><ul><ul><li>https://dl-ssl.google.com/android/eclipse/ </li></ul></ul></ul>
  39. 39. 開発の準備 <ul><li>ADTインストール後 </li><ul><li>Windows > Preferences > Android </li><ul><li>Android SDKのインストールパスを入れて完了 </li></ul></ul></ul>
  40. 40. 開発者登録
  41. 41. 開発者登録 <ul><li>開発者登録するとできること </li><ul><li>Androidマーケットでアプリを公開できる
  42. 42. 有料アプリも公開できる
  43. 43. Android Dev Phoneの購入 </li></ul><li>登録するには </li><ul><li>開発者登録には $25 必要
  44. 44. 支払いには Google Checkout が必要 </li><ul><li>クレジットカードによる決済 </li></ul></ul></ul>
  45. 45. 開発者登録の流れ <ul><li>メールアドレス、電話番号等の入力 </li></ul>
  46. 46. 開発者登録の流れ <ul><li>支払い(Google Checkout) </li></ul>
  47. 47. 開発者登録の流れ <ul><li>クレジットカード登録 </li></ul>
  48. 48. 開発者登録の流れ <ul><li>支払い完了 </li></ul>
  49. 49. 開発者登録の流れ <ul><li>開発者登録確認 </li></ul>
  50. 50. 開発者登録の流れ <ul><li>開発者登録完了 </li></ul>
  51. 51. <ul>Android プログラミング </ul>
  52. 52. 開発の基礎 <ul><li>アプリケーションは個別の Linux プロセス
  53. 53. プロセスごとに専用 VM
  54. 54. アプリケーションごとに個別の Linux ユーザ ID
  55. 55. コンポーネント </li><ul><li>アクティビティ
  56. 56. サービス
  57. 57. ブロードキャストレシーバ
  58. 58. コンテンツプロバイダ </li></ul><li>コンポーネントを呼び出す: インテント </li><ul><li>非同期メッセージオブジェクト
  59. 59. Intent クラス </li></ul></ul>http://developer.android.com/intl/ja/guide/topics/fundamentals.html  より ここ重要
  60. 60. 開発の基礎 <ul><li>アクティビティとタスク </li><ul><li>アプリケーションはアプリケーションランチャーから起動される
  61. 61. アプリケーションは複数の画面から成り立つ
  62. 62. Android はマルチタスクなので複数のタスクを処理できる </li></ul></ul>D:userssatakeデスクトップScreenShot2010y02m18d_131939500.jpg http://developer.android.com/intl/ja/guide/topics/fundamentals.html  より
  63. 63. Activity <ul><li>Activity </li><ul><li>例えば、TODO管理アプリを考えてみる </li></ul></ul>MainActivity EditActivity
  64. 64. 開発の基礎 <ul><li>アクティビティとタスク </li><ul><li>タスクとは・・・ </li></ul></ul>Twitter クライアント Web ブラウザ D:userssatakeデスクトップScreenShot2010y02m18d_131939500.png
  65. 65. 開発の基礎 <ul><li>アクティビティとタスク </li></ul>D:userssatakeデスクトップScreenShot2010y02m18d_131939500.png D:userssatakeデスクトップScreenShot2010y02m18d_145543062.jpg 戻るボタン
  66. 66. 開発の基礎 <ul><li>アクティビティとタスク </li></ul>D:userssatakeデスクトップScreenShot2010y02m18d_153536453.jpg ホームボタン D:userssatakeデスクトップScreenShot2010y02m18d_131939500.png タスク A D:userssatakeデスクトップScreenShot2010y02m18d_131939500.png タスク B
  67. 67. 開発の基礎 <ul><li>ライフサイクル </li></ul>1. onCreate() 2. onStart() 3 onRestoreInstanceState() 4. onResume() 1. onSaveInstanceState() 2. onPause onResume 1. onSaveInstanceState() 2. onStop() 1. onRestart() 2. onStart() 3. onResume() onDestroy() または <Process killed> <Process killed> 初めての Android ( 初版 ) P.18 より 起動 実行中 一時停止 破棄済み 停止
  68. 68. Intent <ul><li>Intent( インテント ) とは </li><ul><li>コンポーネントの呼び出しを行う
  69. 69. 例えばあるアクティビティから別のアクティビティを起動する </li></ul></ul>startActivity() startActivityForResult() onActivityResult
  70. 70. 開発の基礎 <ul><li>インテント </li><ul><li>明示的インテント </li><ul><li>クラス名を直接指定
  71. 71. もうどれを起動するべきかあらかじめ分かっているとき </li></ul></ul></ul>http://developer.android.com/intl/ja/guide/topics/fundamentals.html  より http://developer.android.com/intl/ja/guide/topics/fundamentals.html  より D:userssatakeデスクトップScreenShot2010y02m18d_131939500.png
  72. 72. 開発の基礎 <ul><li>明示的インテントの実際の例 </li></ul>// EditActivity を明示的に呼び出す Intent i = new Intent(v.getContext(), EditActivity.class); // EditActivity に渡すパラメータ i.putExtra(EditActivity. EXT_POSITION , t.getId()); // Intent を指定してアクティビティを呼び出す startActivityForResult(i, 0); // EditActivity を明示的に呼び出す Intent i = new Intent(v.getContext(), EditActivity.class); // EditActivity に渡すパラメータ i.putExtra(EditActivity. EXT_POSITION , t.getId()); // Intent を指定してアクティビティを呼び出す startActivityForResult(i, 0);
  73. 73. 開発の基礎 <ul><li>インテント </li><ul><li>暗黙的インテント </li><ul><li>クラス名での指定を行わない。なんか曖昧な感じで呼び出す。
  74. 74. どのアプリを起動するか分からないけど大体こんなのって分かってる
  75. 75. 他のアプリケーションから呼び出されたい場合 </li><ul><li>ある暗黙的インテントから Actirity を起動するとき、どの Activity で実行させるかシステムに判断させる(複数あるときはユーザが選択 ) </li></ul><li>IntentFilter </li><ul><li>ACTION
  76. 76. CATEGORY
  77. 77. DATA
  78. 78. TYPE </li></ul></ul></ul></ul>http://developer.android.com/intl/ja/guide/topics/fundamentals.html  より http://developer.android.com/intl/ja/guide/topics/fundamentals.html  より D:userssatakeデスクトップScreenShot2010y02m18d_131939500.png
  79. 79. 開発の基礎 <ul><li>暗黙的インテント </li></ul>こういた要求に合致する アプリケーションの候補を システムが探して起動する 呼び出す側 なんかメモできるようなのが 欲しい なんかインターネット 見れそうなやつ が欲しい なんか アドレス帳的なものが欲しい
  80. 80. 開発の基礎 <ul><li>暗黙的インテントの実際の例 </li></ul>http://www.saturn.dti.ne.jp/~npaka/android/ActivityEx/index.html  より Uri uri=Uri.parse( &quot;mailto:test@example.com&quot; ); Intent intent= new Intent(Intent.ACTION_SENDTO,uri); intent.putExtra(Intent. EXTRA_SUBJECT , &quot; タイトル &quot; ); intent.putExtra(Intent. EXTRA_TEXT , &quot; ボディのテキスト &quot; ); intent.setFlags( Intent. FLAG_ACTIVITY_NEW_TASK ); startActivity(intent);
  81. 81. 開発の基礎 <ul><li>マニフェストファイル </li><ul><li>AndroidManifest.xml
  82. 82. コンポーネントを登録 </li></ul></ul>http://developer.android.com/intl/ja/guide/topics/fundamentals.html  より
  83. 83. Todoリストアプリで画面を考える <ul><li>Todoリストアプリ </li><ul><li>Todoを「入力・一覧を表示する画面」
  84. 84. 一覧からTodoを選んだとき表示する「編集画面」 </li></ul></ul>入力・一覧画面 編集画面
  85. 85. ユーザインフェース <ul><li>レイアウト </li><ul><li>XMLで定義
  86. 86. 一応GUIのツールもある </li></ul><li>リソース管理 </li><ul><li>ラベルやボタンなどのリソースにつけるID等
  87. 87. 画面に表示する文字など
  88. 88. XMLで定義 </li><ul><li>Rクラス </li></ul></ul></ul>
  89. 89. レイアウト <ul><li>Todoリストアプリのサンプル </li><ul><li>main.xml
  90. 90. todo_list.xml
  91. 91. edit.xml </li></ul></ul>XML で定義
  92. 92. レイアウト <ul><li>入力・一覧画面のレイアウト </li></ul>LinearLayout RelativeLayout ListView
  93. 93. main.xml <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <LinearLayout android:id=&quot;@+id/LinearLayout01&quot; android:layout_width=&quot;fill_parent&quot; android:layout_height=&quot;fill_parent&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:orientation=&quot;vertical&quot;> <RelativeLayout android:id=&quot;@+id/RelativeLayout01&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot;> <EditText android:id=&quot;@+id/EditText01&quot; android:layout_height=&quot;wrap_content&quot; android:layout_width=&quot;fill_parent&quot; android:layout_marginRight=&quot;60dp&quot;></EditText> <Button android:layout_height=&quot;wrap_content&quot; android:id=&quot;@+id/ButtonAdd&quot; android:text=&quot;@string/label_add&quot; android:layout_alignParentTop=&quot;true&quot; android:layout_alignParentRight=&quot;true&quot; android:layout_width=&quot;wrap_content&quot; android:layout_marginRight=&quot;5dp&quot;></Button> </RelativeLayout> <ListView android:layout_width=&quot;wrap_content&quot; android:id=&quot;@android:id/list&quot; android:layout_height=&quot;fill_parent&quot;></ListView> </LinearLayout>
  94. 94. レイアウト <ul><li>todo_list.xmlのレイアウト </li></ul>LinearLayout CheckBox LinearLayout TextView
  95. 95. Rクラス <ul><li>画面のレイアウトに関するリソースの ID を管理
  96. 96. 自動で生成される
  97. 97. R.{ リソースタイプ }.{ リソース名 } で参照 </li><ul><li>R.layout.main ( レイアウト XML )
  98. 98. R.strings.label_add_button (文字リソース)
  99. 99. R.id.add_button (画面に配置したボタン等のオブジェクト)
  100. 100. etc.. </li></ul><li>ソースの中でオブジェクトを取得するには </li></ul>Button button = (Button) this .findViewById(R.id.add_button);
  101. 101. strings.xml <ul><li>画面に表示する文字を定義
  102. 102. 国際化も簡単 </li><ul><li>values/strings.xml (適当な言語が見つからなかった時のデフォルト)
  103. 103. values-ja/strings.xml (日本語) </li></ul></ul><?xml version=“1.0” encoding=“utf-8”?> <resources>     <string name=“app_name”>Todo Sample</string>     <string name=“ label_add_button ”> 追加 </string> </resources> レイアウトの XML では「 @string/ label_add_button 」で指定
  104. 104. <ul>TODO アプリケーション の中身 </ul>
  105. 105. 公開してみる
  106. 106. 公開するには <ul><li>Eclipse から apk ファイルを作成 </li><ul><li>ADT からウィザードで簡単に作成できる
  107. 107. 署名が必要 </li></ul><li>開発者サイトから apk ファイルをアップロード </li><ul><li>必要項目を記入してアップロードするだけ
  108. 108. すぐに反映 </li></ul><li>参考サイト </li><ul><li>http://itpro.nikkeibp.co.jp/article/COLUMN/20091218/342383/ </li></ul></ul>
  109. 109. 公開するには <ul><li>Android Market 経由で配布 </li><ul><li>開発者サイトから apk ファイルをアップロード </li></ul><li>ドコモマーケット </li><ul><li>http://www.nttdocomo.co.jp/info/news_release/page/100121_00.html#p02 </li></ul><li>PlayNow </li><ul><li>ソニー・エリクソン
  110. 110. 日本は対応するのか
  111. 111. 審査あり、有料アプリ ( 手数料 30 %)
  112. 112. http://andronavi.com/2010/01/4421 </li></ul><li>野良アプリ </li><ul><li>apk ファイルを Web 上で公開するだけ </li></ul></ul>
  113. 113. その他 <ul><li>adb コマンド </li><ul><li>デバイスやエミュレータを管理
  114. 114. android-sdk-windows ools にある
  115. 115. シェルを使ってデバイスやエミュレータに接続する </li><ul><li>> adb shell
  116. 116. # echo $PATH ( 実行できるプログラムの場所 ) </li></ul><li>adb を使ったアプリケーションの追加・削除 </li><ul><li>> adb uninstall sample.todo.android
  117. 117. > adb install sample-todo-android.apk </li></ul></ul></ul>
  118. 118. 参考URL <ul><li>開発者サイト </li><ul><li>http://developer.android.com/ </li></ul><li>開発の基礎 ( 開発者サイト ) </li><ul><li>http://developer.android.com/intl/ja/guide/topics/fundamentals.html </li></ul><li>暗黙の Intent を投げてみた </li><ul><li>http://d.hatena.ne.jp/minghai/20090316/ </li></ul><li>インテントについて ( 開発者サイト ) </li><ul><li>http://developer.android.com/intl/ja/reference/android/content/Intent.html
  119. 119. http://developer.android.com/intl/ja/guide/topics/intents/intents-filters.html </li></ul><li>エミュレータのショートカット </li><ul><li>http://www.android.encke.net/android-emulator-tutorial.html </li></ul></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×