SlideShare a Scribd company logo
Now Loading. Please Wait ...


                                  Twitter @yokmama




 AndroidでHelloWorld
 夜子まま塾 講義6(HelloWorldで継承を学習する)



                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
自己紹介
       氏名   :寺園聖文(てらぞの まさふみ)

       肩書   :株式会社Re:Kayo-System 代表取締役社長

       活動拠点 :神戸近郊∼日本→海外行きたい

       著書   :「10日でおぼえるAndroidアプリ開発入門教室」著(翔泳社)

             「HTML5によるAndroidアプリ開発入門」監修(日経BP)

       アプリ  :「JUST PLAYER」「Skip Memo」「ふりがなオートマチック」等

       好きなもの:アニメ、決して萌えじゃない、見てるけど、あくまで研究の一環

       嫌いなもの:とくになし

       最近のテーマ:電子工作、運動すること、英語

                                          Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
AndroidのHelloWorld

          EclipseのAndroidプロジェクト作成ウィ
           ザードを用いて雛形のアプリを作成する
          と、HelloWorldを表示するAndroidアプリ
                   が作成されます。




                               Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
作成手順
    File→New→Android Project




      ① Create        ② Select Build   ③ Application Info
    Android Project      Target


            これをチェックをすると自動でHelloWorld
               のプログラムが生成されます。
                                              Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
作成されたプロジェクト

                自動生成されたHelloWorldの
                   Javaプログラム




                自動生成されたHelloWorldの
                 レイアウトXMLファイル


                        Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
生成されたJavaプログラム
   package ykmjuku.android.helloworld.app;


   import android.app.Activity;                          Activityを継承したクラ
   import android.os.Bundle;                                  スとして宣言


   public class Ykmjuku003Activity extends Activity {    ActivityのonCreateメ
     /** Called when the activity is first created. */    ソッドをオーバライドし
     @Override                                                 たメソッド
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);               親クラス(Activity)の
        setContentView(R.layout.main);                    onCreateを呼び出す
     }
   }                                                     main.xmlのレイアウト
                                                          ファイルを読み込む
                                                            Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
Activityを継承


                Androidの画面アプリはActivityを
                      継承し作成します。




                                   Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
継承とは?

                Javaのクラスを拡張し独自のクラスと
                    して再定義する仕組みです。




                               Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
継承を図でみると
           A          B                 C
               継承               継承
         +hoge      +hoge             +fuga
         +fuga       +foo


                      Aの機能と
                   独自に再定義した
                                      AとBの機能と
                 hogeと新しく追加した
                                     独自に再定義した
                     foo が使える
                                      fugaが使える


                                        Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
型の互換性
                大は小を兼ねるが、小は大を兼ねない

                    A a = new B();
                    A a = new C();   OK
                    B b = new C();

                    B b = new A();
                                     NG
                    C c = new B();

                                     Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
継承の具体例
                このような関数があったとして
                 public void func(A a){
                    a.hoge();
                    System.out.println(a.fuga());
                 }

                引数にAというクラスを受け取っています。

                                           Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
継承の具体例
                B b;      C b;
                //bの設定    //cの設定
                func(b)   func(c)

             どちらもエラーにならない。
         つまり、Aを継承したクラス(B,C)はAと
         して使うことができるので、Aを引数に受け
          取るメソッドを利用することができる。
                               Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
もう少しつっこんで
        ライブラリ          Aを継承して作
                A        成したB


          Aを引数に処    使うことができる
          理をする関数


                       ※ライブラリ:関数やクラス等を
                        1つのファイルにまとめたもの
                            Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
継承の方法
      構文
       class <クラス名> extends <親クラス名>{
       }

                extendsの後ろに継承したいクラス
                        名を書きます。
       例
            public class Ykmjuku003Activity extends Activity {
            }



                                                       Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
オーバーライドとは

                継承したクラスのメソッドを変更す
                     ることです。




                             Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
オーバーライドを図でみる

                     A          B
                         継承
                   +hoge      +hoge
                   +fuga


                 Bはhogeというメソッドをオー
                   バーライドして変更した

                                      Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
プログラムでは
                Aのhogeは数字の1を表示する
                Bのhogeは数字の2を表示する
                  class A{
                      void hoge(){
                           System.out.println("1");
                      }
                  }
                  class B extends A{
                      void hoge(){
                           System.out.println("2");
                      }
                  }

                                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
この答えは?

                B b = new B();
                b.hoge();



                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
b.hoge()の答え

                 B b = new B();
                 b.hoge();
                答えは数字の2を表示です。



                                  Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
ではこれは?

                A a = new B();
                a.hoge();



                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
a.hoge()の答え

                 A a = new B();
                 a.hoge();
                答えは数字の2を表示です。



                                  Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
オーバライド

                Javaは継承したクラスのメソッドを変更し再定
                       義することができます。
                この変更されたメソッドは型変換によって別の
                      型になっても変わりません。




                                  Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
オーバーライドの方法
         親クラスのメソッドと同じ引数、同じ戻り値
         の型、同じ名前で定義することでオーバーラ
                イドできます。
                                   つけなくてもよい、明示的にオーバーライドして
                                            います。
         class B extends A{
              @Override            という意味、これが付いているとオーバーライド
              void hoge(){           が出来ていない場合にエラーになります。
                  System.out.println("2");
              }
          }


                                              Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
もう一度、
                HelloWorldを見てみる
   package ykmjuku.android.helloworld.app;


   import android.app.Activity;                          Activityを継承したクラ
   import android.os.Bundle;                                  スとして宣言


   public class Ykmjuku003Activity extends Activity {    ActivityのonCreateメ
     /** Called when the activity is first created. */    ソッドをオーバライドし
     @Override                                                 たメソッド
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);               親クラス(Activity)の
        setContentView(R.layout.main);                    onCreateを呼び出す
     }
   }                                                     main.xmlのレイアウト
                                                          ファイルを読み込む
                                                            Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
superについて
                public class Ykmjuku003Activity extends Activity {
                  /** Called when the activity is first created. */
                  @Override
                  public void onCreate(Bundle savedInstanceState) {
                     super.onCreate(savedInstanceState);
                     setContentView(R.layout.main);
                  }
                }



         super.onCreate(savedInstanceState);

                                                            Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
superとは
               superは親クラスのインスタンスです。
           thisが自分のインスタンスを指していることは過
           去のスライド「夜子まま塾講義2(Javaのクラス
                  とメソッド)」説明しました。
           superは同じく自分自身のインスタンスであるの
           ですが、親クラスのメソッドやフィールドを利用
                  する場合に使う予約変数です。


                              Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
Activityについて
           ActivityはAndroidのSDKに含まれている
                       クラスです。
           主に画面を作成するアプリを作る場合に基
           となるクラスで、これを継承し画面の操作
           や表示に関わる処理をオーバーライドする
           ことで新しい画面アプリを作ることができ
                          ます。

                                Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
Activityの仕組み
         ActivityはActivityManagerによって管理さ
                       れています。
         ActivityManagerはAndroidOSによって生
         成されて管理されているクラスなので、とく
              に生成等の必要はありませんが、
         ActivityManagerによってActivityの振る舞
         いが制御されていることを知っておく必要が
                        あります。
                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
Activityのライフサイクル
                 Androidデバイスの状態によっ
                て、Activityの状態が左図のよう
                に変更され、と同時に対応するメ
                      ソッドを呼び出す。
                Activityを継承したクラスはそれ
                らのメソッドをオーバーライドす
                ることで、状態に応じてプログラ
                  ムを実装することができる。

                          Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
各状態の説明
                              スタート


                             onCreate()


                              onStart()
                  アプリ起動
                            onResume()
                                                               onRestart()

                 プロセス停止        実行中         Activityが表示される

                          他のActivityが呼ばれる
                メモリ不足等に
                             onPause()           Activityが表示される
                より停止される
                          Activityが隠れる
                              onStop()

                             onDestory()


                                終了
                                                     Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
Activityは画面に1つ

                Activityは画面上に1つしか表示で
                          きません。
                Activityから他のActivityを呼び出
                すと呼び出し元のActivityは停止し
                           ます。

                                   Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
しかしそれは少し違う

          停止したといっても、あくまでActivityManager
                     上の状態であって。
          もしActivity内で並列でなにかをしている場合はそ
          の処理は停止しません。そのためそれらも一時停
          止したい場合はPause等のメソッドで停止処理を
                     行う必要があります。



                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
だからといって安心しては
                    いけない

                Activityが停止している状態では、メモ
                リ不足等によって強制的に終了される場
                合があるため、適切な停止処理をしてお
                        くのがよいでしょう。



                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
ところで、HelloWorld
         AndroidのHelloWorldはHelloWorldと書か
         れたレイアウトファイルを読み込んでいるだ
               けなので、とても簡単です。
    main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
                                                      直接HelloWorldの文字列が設定さ
         <TextView
             android:layout_width="fill_parent"               れている。
             android:layout_height="wrap_content"
             android:text="@string/hello" />

    </LinearLayout>
                                                                    Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
作ってみよう
            ハローワールドを改造してみます。
             ここで作るプログラムはActivityの
          ライフサイクルを知るために、各メソッド
         (onCreate,onResume,onPause,onDestor
         y)をオーバーライドし、メソッドの中でLog
          を出力するプログラムを作ってください。

                                    Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
オーバーライド手順①
    オーバーライドメソッドを挿入する箇所に
    カーソルを移動し右クリックしてください。




  ここで右クリック



                           Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
オーバーライド手順②
    右クリックメニューから Override/implement
       Methods...を選択してください。




                                     Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
オーバーライド手順③
                ダイアログからオーバーライドしたいメソッドを選
                  択しOKボタンをクリックしてください。




                                     Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
Log出力

           AndroidのログはLogクラスを使って出力
           し、LogCatツールを使って確認します。



                    ログとは、プログラムの実行状況を把握するために
                     画面やコンソールに文字列を出力することです。

                                 Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
Logクラス
                構文
                Log.e(<タグ>, <ログ>); ←エラーログ
                Log.w(<タグ>, <ログ>); ←警告ログ
                Log.i(<タグ>, <ログ>); ←情報ログ
                Log.d(<タグ>, <ログ>); ←デバッグログ
                Log.v(<タグ>, <ログ>); ←冗長ログ

                使用例

                @Override
                protected void onResume() {
                    // TODO Auto-generated method stub
                    super.onResume();
                    Log.d("Sample", "onResumeにきました");
                }
                                                         Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
ログについて
           各ログはそれぞれ、プログラムの状況に合わせて使い分けます。例えば、
           例外が発生しる場合のログはエラーログ、問題というレベルではないけど
           注意したい場所は警告ログ。デバッグ用のログはデバッグログなど。それ
            ぞれ色が違うので使い分けることでログの確認がしやすくなります。




                                     Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
ログの確認
            DDMSパースペクティブにあるLogCatで確認できます。このLogCatは
           Window→Show Viewからどこのパースペクティブにでも追加できますの
                    で、よく使う場所に追加しておくとよいです。


                             ログがでないときは、このデバイスでログを
                              見たい端末を選択してみてください。



  このLogCatはどこのパースペクティブにも
  追加できますし。D&Dで移動することもで
            きます。




                                          Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日
レイアウトは?
           続きは夜子まま塾オンライン(無料)にて
                毎週水曜日夜10:30∼11:00
                 (都合によりない場合もあります)
                        夜子まま塾
                        http://bit.ly/wTjjix
                        GoogleID:101190223376062765723



                  上記アカウントをサークルに追加していると、
                    ハングアウトのお誘いが届きます。
                       是非ご参加ください。
                                             Re:Kayo-System Co.,Ltd.

2012年2月28日火曜日

More Related Content

More from Masafumi Terazono

初心者向けSpigot開発
初心者向けSpigot開発初心者向けSpigot開発
初心者向けSpigot開発
Masafumi Terazono
 
Minecraft dayの報告
Minecraft dayの報告Minecraft dayの報告
Minecraft dayの報告
Masafumi Terazono
 
BungeeCordeについて
BungeeCordeについてBungeeCordeについて
BungeeCordeについて
Masafumi Terazono
 
Spongeについて
SpongeについてSpongeについて
Spongeについて
Masafumi Terazono
 
Kobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライドKobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライド
Masafumi Terazono
 
Minecraftと連携するSlackちゃんという会話Botを作った話
Minecraftと連携するSlackちゃんという会話Botを作った話Minecraftと連携するSlackちゃんという会話Botを作った話
Minecraftと連携するSlackちゃんという会話Botを作った話
Masafumi Terazono
 
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
Masafumi Terazono
 
夜子まま塾 2015年1月23日 進行用資料
夜子まま塾 2015年1月23日 進行用資料夜子まま塾 2015年1月23日 進行用資料
夜子まま塾 2015年1月23日 進行用資料
Masafumi Terazono
 
Thetalaps
ThetalapsThetalaps
Android wear勉強会2
Android wear勉強会2Android wear勉強会2
Android wear勉強会2
Masafumi Terazono
 
夜子まま塾@鹿児島
夜子まま塾@鹿児島夜子まま塾@鹿児島
夜子まま塾@鹿児島
Masafumi Terazono
 
セーラーソン振り返り
セーラーソン振り返りセーラーソン振り返り
セーラーソン振り返りMasafumi Terazono
 
関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝Masafumi Terazono
 
関西支部 第二回 NFCLab勉強会 
関西支部 第二回 NFCLab勉強会 関西支部 第二回 NFCLab勉強会 
関西支部 第二回 NFCLab勉強会 Masafumi Terazono
 
日本Androidの会 中国支部資料
日本Androidの会 中国支部資料日本Androidの会 中国支部資料
日本Androidの会 中国支部資料Masafumi Terazono
 
Android+NFC 日本Androidの会神戸支部 勉強会
Android+NFC 日本Androidの会神戸支部 勉強会Android+NFC 日本Androidの会神戸支部 勉強会
Android+NFC 日本Androidの会神戸支部 勉強会Masafumi Terazono
 
関西支部Android勉強会(ロボットxnfc)
関西支部Android勉強会(ロボットxnfc)関西支部Android勉強会(ロボットxnfc)
関西支部Android勉強会(ロボットxnfc)Masafumi Terazono
 
夜子まま塾講義11(暗黙的intent)
夜子まま塾講義11(暗黙的intent)夜子まま塾講義11(暗黙的intent)
夜子まま塾講義11(暗黙的intent)Masafumi Terazono
 
夜子まま塾講義10(画面の呼び出し)
夜子まま塾講義10(画面の呼び出し)夜子まま塾講義10(画面の呼び出し)
夜子まま塾講義10(画面の呼び出し)
Masafumi Terazono
 

More from Masafumi Terazono (20)

初心者向けSpigot開発
初心者向けSpigot開発初心者向けSpigot開発
初心者向けSpigot開発
 
Minecraft dayの報告
Minecraft dayの報告Minecraft dayの報告
Minecraft dayの報告
 
BungeeCordeについて
BungeeCordeについてBungeeCordeについて
BungeeCordeについて
 
Spongeについて
SpongeについてSpongeについて
Spongeについて
 
Kobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライドKobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライド
 
Minecraftと連携するSlackちゃんという会話Botを作った話
Minecraftと連携するSlackちゃんという会話Botを作った話Minecraftと連携するSlackちゃんという会話Botを作った話
Minecraftと連携するSlackちゃんという会話Botを作った話
 
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
 
夜子まま塾 2015年1月23日 進行用資料
夜子まま塾 2015年1月23日 進行用資料夜子まま塾 2015年1月23日 進行用資料
夜子まま塾 2015年1月23日 進行用資料
 
Thetalaps
ThetalapsThetalaps
Thetalaps
 
Android wear勉強会2
Android wear勉強会2Android wear勉強会2
Android wear勉強会2
 
夜子まま塾@鹿児島
夜子まま塾@鹿児島夜子まま塾@鹿児島
夜子まま塾@鹿児島
 
セーラーソン振り返り
セーラーソン振り返りセーラーソン振り返り
セーラーソン振り返り
 
関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝
 
関西支部 第二回 NFCLab勉強会 
関西支部 第二回 NFCLab勉強会 関西支部 第二回 NFCLab勉強会 
関西支部 第二回 NFCLab勉強会 
 
日本Androidの会 中国支部資料
日本Androidの会 中国支部資料日本Androidの会 中国支部資料
日本Androidの会 中国支部資料
 
Android+NFC 日本Androidの会神戸支部 勉強会
Android+NFC 日本Androidの会神戸支部 勉強会Android+NFC 日本Androidの会神戸支部 勉強会
Android+NFC 日本Androidの会神戸支部 勉強会
 
関西支部Android勉強会(ロボットxnfc)
関西支部Android勉強会(ロボットxnfc)関西支部Android勉強会(ロボットxnfc)
関西支部Android勉強会(ロボットxnfc)
 
関西Unity勉強会
関西Unity勉強会関西Unity勉強会
関西Unity勉強会
 
夜子まま塾講義11(暗黙的intent)
夜子まま塾講義11(暗黙的intent)夜子まま塾講義11(暗黙的intent)
夜子まま塾講義11(暗黙的intent)
 
夜子まま塾講義10(画面の呼び出し)
夜子まま塾講義10(画面の呼び出し)夜子まま塾講義10(画面の呼び出し)
夜子まま塾講義10(画面の呼び出し)
 

Recently uploaded

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 

Recently uploaded (9)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 

夜子まま塾講義6(androidでhello world)

  • 1. Now Loading. Please Wait ... Twitter @yokmama AndroidでHelloWorld 夜子まま塾 講義6(HelloWorldで継承を学習する) Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 2. 自己紹介 氏名   :寺園聖文(てらぞの まさふみ) 肩書   :株式会社Re:Kayo-System 代表取締役社長 活動拠点 :神戸近郊∼日本→海外行きたい 著書   :「10日でおぼえるAndroidアプリ開発入門教室」著(翔泳社)       「HTML5によるAndroidアプリ開発入門」監修(日経BP) アプリ  :「JUST PLAYER」「Skip Memo」「ふりがなオートマチック」等 好きなもの:アニメ、決して萌えじゃない、見てるけど、あくまで研究の一環 嫌いなもの:とくになし 最近のテーマ:電子工作、運動すること、英語 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 3. AndroidのHelloWorld EclipseのAndroidプロジェクト作成ウィ ザードを用いて雛形のアプリを作成する と、HelloWorldを表示するAndroidアプリ が作成されます。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 4. 作成手順 File→New→Android Project ① Create ② Select Build ③ Application Info Android Project Target これをチェックをすると自動でHelloWorld のプログラムが生成されます。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 5. 作成されたプロジェクト 自動生成されたHelloWorldの Javaプログラム 自動生成されたHelloWorldの レイアウトXMLファイル Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 6. 生成されたJavaプログラム package ykmjuku.android.helloworld.app; import android.app.Activity; Activityを継承したクラ import android.os.Bundle; スとして宣言 public class Ykmjuku003Activity extends Activity { ActivityのonCreateメ /** Called when the activity is first created. */ ソッドをオーバライドし @Override たメソッド public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 親クラス(Activity)の setContentView(R.layout.main); onCreateを呼び出す } } main.xmlのレイアウト ファイルを読み込む Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 7. Activityを継承 Androidの画面アプリはActivityを 継承し作成します。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 8. 継承とは? Javaのクラスを拡張し独自のクラスと して再定義する仕組みです。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 9. 継承を図でみると A B C 継承 継承 +hoge +hoge +fuga +fuga +foo Aの機能と 独自に再定義した AとBの機能と hogeと新しく追加した 独自に再定義した foo が使える fugaが使える Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 10. 型の互換性 大は小を兼ねるが、小は大を兼ねない A a = new B(); A a = new C(); OK B b = new C(); B b = new A(); NG C c = new B(); Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 11. 継承の具体例 このような関数があったとして public void func(A a){ a.hoge(); System.out.println(a.fuga()); } 引数にAというクラスを受け取っています。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 12. 継承の具体例 B b; C b; //bの設定 //cの設定 func(b) func(c) どちらもエラーにならない。 つまり、Aを継承したクラス(B,C)はAと して使うことができるので、Aを引数に受け 取るメソッドを利用することができる。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 13. もう少しつっこんで ライブラリ Aを継承して作 A 成したB Aを引数に処 使うことができる 理をする関数 ※ライブラリ:関数やクラス等を 1つのファイルにまとめたもの Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 14. 継承の方法 構文 class <クラス名> extends <親クラス名>{ } extendsの後ろに継承したいクラス 名を書きます。 例 public class Ykmjuku003Activity extends Activity { } Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 15. オーバーライドとは 継承したクラスのメソッドを変更す ることです。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 16. オーバーライドを図でみる A B 継承 +hoge +hoge +fuga Bはhogeというメソッドをオー バーライドして変更した Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 17. プログラムでは Aのhogeは数字の1を表示する Bのhogeは数字の2を表示する class A{ void hoge(){ System.out.println("1"); } } class B extends A{ void hoge(){ System.out.println("2"); } } Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 18. この答えは? B b = new B(); b.hoge(); Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 19. b.hoge()の答え B b = new B(); b.hoge(); 答えは数字の2を表示です。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 20. ではこれは? A a = new B(); a.hoge(); Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 21. a.hoge()の答え A a = new B(); a.hoge(); 答えは数字の2を表示です。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 22. オーバライド Javaは継承したクラスのメソッドを変更し再定 義することができます。 この変更されたメソッドは型変換によって別の 型になっても変わりません。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 23. オーバーライドの方法 親クラスのメソッドと同じ引数、同じ戻り値 の型、同じ名前で定義することでオーバーラ イドできます。 つけなくてもよい、明示的にオーバーライドして います。 class B extends A{ @Override という意味、これが付いているとオーバーライド void hoge(){ が出来ていない場合にエラーになります。 System.out.println("2"); } } Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 24. もう一度、 HelloWorldを見てみる package ykmjuku.android.helloworld.app; import android.app.Activity; Activityを継承したクラ import android.os.Bundle; スとして宣言 public class Ykmjuku003Activity extends Activity { ActivityのonCreateメ /** Called when the activity is first created. */ ソッドをオーバライドし @Override たメソッド public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 親クラス(Activity)の setContentView(R.layout.main); onCreateを呼び出す } } main.xmlのレイアウト ファイルを読み込む Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 25. superについて public class Ykmjuku003Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } super.onCreate(savedInstanceState); Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 26. superとは superは親クラスのインスタンスです。 thisが自分のインスタンスを指していることは過 去のスライド「夜子まま塾講義2(Javaのクラス とメソッド)」説明しました。 superは同じく自分自身のインスタンスであるの ですが、親クラスのメソッドやフィールドを利用 する場合に使う予約変数です。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 27. Activityについて ActivityはAndroidのSDKに含まれている クラスです。 主に画面を作成するアプリを作る場合に基 となるクラスで、これを継承し画面の操作 や表示に関わる処理をオーバーライドする ことで新しい画面アプリを作ることができ ます。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 28. Activityの仕組み ActivityはActivityManagerによって管理さ れています。 ActivityManagerはAndroidOSによって生 成されて管理されているクラスなので、とく に生成等の必要はありませんが、 ActivityManagerによってActivityの振る舞 いが制御されていることを知っておく必要が あります。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 29. Activityのライフサイクル Androidデバイスの状態によっ て、Activityの状態が左図のよう に変更され、と同時に対応するメ ソッドを呼び出す。 Activityを継承したクラスはそれ らのメソッドをオーバーライドす ることで、状態に応じてプログラ ムを実装することができる。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 30. 各状態の説明 スタート onCreate() onStart() アプリ起動 onResume() onRestart() プロセス停止 実行中 Activityが表示される 他のActivityが呼ばれる メモリ不足等に onPause() Activityが表示される より停止される Activityが隠れる onStop() onDestory() 終了 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 31. Activityは画面に1つ Activityは画面上に1つしか表示で きません。 Activityから他のActivityを呼び出 すと呼び出し元のActivityは停止し ます。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 32. しかしそれは少し違う 停止したといっても、あくまでActivityManager 上の状態であって。 もしActivity内で並列でなにかをしている場合はそ の処理は停止しません。そのためそれらも一時停 止したい場合はPause等のメソッドで停止処理を 行う必要があります。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 33. だからといって安心しては いけない Activityが停止している状態では、メモ リ不足等によって強制的に終了される場 合があるため、適切な停止処理をしてお くのがよいでしょう。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 34. ところで、HelloWorld AndroidのHelloWorldはHelloWorldと書か れたレイアウトファイルを読み込んでいるだ けなので、とても簡単です。 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > 直接HelloWorldの文字列が設定さ <TextView android:layout_width="fill_parent" れている。 android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 35. 作ってみよう ハローワールドを改造してみます。 ここで作るプログラムはActivityの ライフサイクルを知るために、各メソッド (onCreate,onResume,onPause,onDestor y)をオーバーライドし、メソッドの中でLog を出力するプログラムを作ってください。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 36. オーバーライド手順① オーバーライドメソッドを挿入する箇所に カーソルを移動し右クリックしてください。 ここで右クリック Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 37. オーバーライド手順② 右クリックメニューから Override/implement Methods...を選択してください。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 38. オーバーライド手順③ ダイアログからオーバーライドしたいメソッドを選 択しOKボタンをクリックしてください。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 39. Log出力 AndroidのログはLogクラスを使って出力 し、LogCatツールを使って確認します。 ログとは、プログラムの実行状況を把握するために 画面やコンソールに文字列を出力することです。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 40. Logクラス 構文 Log.e(<タグ>, <ログ>); ←エラーログ Log.w(<タグ>, <ログ>); ←警告ログ Log.i(<タグ>, <ログ>); ←情報ログ Log.d(<タグ>, <ログ>); ←デバッグログ Log.v(<タグ>, <ログ>); ←冗長ログ 使用例 @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.d("Sample", "onResumeにきました"); } Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 41. ログについて 各ログはそれぞれ、プログラムの状況に合わせて使い分けます。例えば、 例外が発生しる場合のログはエラーログ、問題というレベルではないけど 注意したい場所は警告ログ。デバッグ用のログはデバッグログなど。それ ぞれ色が違うので使い分けることでログの確認がしやすくなります。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 42. ログの確認 DDMSパースペクティブにあるLogCatで確認できます。このLogCatは Window→Show Viewからどこのパースペクティブにでも追加できますの で、よく使う場所に追加しておくとよいです。 ログがでないときは、このデバイスでログを 見たい端末を選択してみてください。 このLogCatはどこのパースペクティブにも 追加できますし。D&Dで移動することもで きます。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日
  • 43. レイアウトは? 続きは夜子まま塾オンライン(無料)にて 毎週水曜日夜10:30∼11:00 (都合によりない場合もあります) 夜子まま塾 http://bit.ly/wTjjix GoogleID:101190223376062765723 上記アカウントをサークルに追加していると、 ハングアウトのお誘いが届きます。 是非ご参加ください。 Re:Kayo-System Co.,Ltd. 2012年2月28日火曜日