はじめてのAndroid開発

5,196 views

Published on

日本Androidの会 大分支部の第1回勉強会で使用した資料です。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,196
On SlideShare
0
From Embeds
0
Number of Embeds
64
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

はじめてのAndroid開発

  1. 1. はじめての Android 開発 日本 Android の会 大分支部 第 1 回勉強会 2010 年 4 月 24 日 本田 克己
  2. 2. 開発環境OK? <ul><li>JDK
  3. 3. Android SDK
  4. 4. Platform File(1.6)
  5. 5. Eclipse
  6. 6. ADT(Android Development Toolkit) </li></ul>
  7. 7. みんな大好きハローワールド <ul><li>EclipseからAndroidプロジェクト作るだけ </li></ul>
  8. 8. みんな大好きハローワールド <ul><li>パッケージ名は公開するときは重要です
  9. 9. 作成後エラーが出ている場合はProject -> Clean </li></ul>
  10. 10. エミュレータでコンニチワ <ul><li>エミュレータの設定をしていないとダイアログがでるので、設定してください。
  11. 11. エミュレータの起動には時間がかかるのでしばらくお待ちください </li></ul>
  12. 12. Hello Android!! <ul><li>エミュレータの画面は閉じないで置いた方が効率的です。 </li></ul>
  13. 13. Android の中身 を少しだけ
  14. 14. Androidの構造 くわしくはWEBで。 http://developer.android.com/intl/ja/guide/basics/what-is-android.html
  15. 15. 4つのコンポーネント <ul><li>アクティビティ
  16. 16. サービス
  17. 17. ブロードキャストレシーバ
  18. 18. コンテンツプロバイダ </li></ul>くわしくはWEBで。 http://developer.android.com/intl/ja/guide/topics/fundamentals.html
  19. 19. コンポーネントを繋げるインテント コンテンツプロバイダは仲間はずれ ブロードキャスト レシーバ サービス アクティビティ アクティビティ インテント インテント インテント この辺を 少し試してみます
  20. 20. とりあえずサービスを動かしてみる <ul><li>アクティビティからサービスを開始
  21. 21. サービスが一定周期にメッセージを表示 </li></ul>実用性はまったくありません。ごめんなさい。
  22. 22. サービスの作成 <ul><li>File -> New -> Class でクラス作成
  23. 23. クラス名:任意(PeskyService)
  24. 24. 親クラス:android.app.Service </li></ul>
  25. 25. public class PeskyService extends Service { private final static long DELAY = 3000; private final static long PERIOD = 6000; private final static String MESSAGE = &quot; お気に入りのメッセージを入れてください &quot; ; private Toast toast ; private Timer timer ; private TimerTask task ; @Override public void onCreate() { super .onCreate(); toast = Toast. makeText ( this , MESSAGE , Toast. LENGTH_SHORT ); timer = new Timer(); task = new TimerTask() { @Override public void run() { toast .show(); } }; timer .schedule( task , DELAY , PERIOD ); } @Override public void onDestroy() { timer .cancel(); }; @Override public IBinder onBind(Intent arg0) { return null ; } }
  26. 26. アクティビティにボタン追加 <ul><li>res/values/strings.xml にボタンの文字を追加 < string name = &quot;start_button&quot; > スタート </ string > を追加
  27. 27. res/layout/main.xml にボタンを追加 < Button android:layout_width = &quot;wrap_content&quot; </li></ul>       android:layout_height = &quot;wrap_content&quot;         android:id = &quot;@+id/StartButton&quot; android:text = &quot;@string/start_button&quot; / >
  28. 28. ボタンを押すとサービス起動 <ul><li>HelloActivityにイベントリスナ追加 Button startButton = (Button)findViewById(R.id. StartButton ); </li></ul>startButton.setOnClickListener( new OnClickListener()   {     @Override     public void onClick(View v) {       startService( new Intent(HelloActivity. this ,       ClockService. class ));     }   });
  29. 29. 動かしてみると・・・
  30. 30. 動かない?
  31. 31. マニフェスト <ul><li>AndroidManifest.xmlにコンポーネントを登録する必要があります。
  32. 32. アクティビティの下あたりにサービスを追加 </li></ul>< service android:name = &quot;.PeskyService&quot; />
  33. 33. 動かしてみると・・・動いた!
  34. 34. でも、止まりません。 サービスっぽいですね。
  35. 35. ストップボタンを追加する <ul><li>ストップボタンのイベントハンドラ stopButton.setOnClickListener( new OnClickListener() { </li></ul>@Override public void onClick(View v) { stopService( new Intent(MenuActivity. this , ClockService. class )); } }) ;
  36. 36. 起動直後からメッセージ表示 <ul><li>せっかくなので起動直後からお気に入りのメッセージを表示したい
  37. 37. ブロードキャストレシーバで起動完了を検知
  38. 38. ブロードキャストレシーバからサービスを起動 </li></ul>
  39. 39. ブロードキャストレシーバの作成 <ul><li>File -> New -> Class でクラス作成
  40. 40. クラス名:任意(BootReceiver)
  41. 41. 親クラス:android.app.BroadcastReceiver </li></ul>public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { context.startService( new Intent(context, ClockService. class )); } }
  42. 42. マニフェスト再び <ul><li>サービスの下あたりに追加 </li></ul>< receiver android:name = &quot;.BootReceiver&quot; android:permission = &quot;android.permission.RECEIVE_BOOT_COMPLETED&quot; > < intent-filter > < action android:name = &quot;android.intent.action.BOOT_COMPLETED&quot; /> </ intent-filter > </ receiver >
  43. 43. 実行できたら、時間がかかってしまいますが一旦エミュレータを閉じて再度実行してみます。
  44. 44. これを応用して画期的な時計アプリが作れるかも
  45. 45. それでは午後もよろしくお願いします。

×