• Save
はじめてのAndroid開発
Upcoming SlideShare
Loading in...5
×
 

はじめてのAndroid開発

on

  • 4,634 views

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

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

Statistics

Views

Total Views
4,634
Views on SlideShare
4,572
Embed Views
62

Actions

Likes
2
Downloads
0
Comments
0

3 Embeds 62

http://www.slideshare.net 59
http://webcache.googleusercontent.com 2
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

はじめてのAndroid開発 はじめてのAndroid開発 Presentation Transcript

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