モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

目次目次を開く/閉じる

Android アプリケーション hello world

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2017/04/25
最終更新最終更新
2019/08/08
記事区分記事区分
一般公開

目次

    Web3関連の開発を行っています。分散型アプリケーションが研究テーマの学生です。

    サンプル Android アプリケーションを作ることで、2017/04/17 現在における基本的な開発手順を把握します。

    Android Studio インストール

    事前に JDK をインストールしてから、こちらのページを参照して Android Studio をダウンロードおよびインストールします。

    サンプルアプリケーションの作成

    Start a new Android Studio project をクリックして新規プロジェクトを作成します。

    Application name と Company domain を入力して Next をクリックします。

    今回は Phone and Tablet を選択して Next をクリックします。

    簡単のため、Empty Activity を選択して Next をクリックします。

    Activity Name および Layout Name は特に変更せずに Finish をクリックします。

    AVD の作成

    作成したサンプルアプリケーションを実機で起動することもできますが、Android Virtual Device (AVD) とよばれる仮想マシンで動作させると便利です。AVD は画面サイズなどを指定して予め作成しておく必要があります。似ていますが adb コマンドとは別物です。他の用語にハードウェアを抽象化する Hardware Abstraction Layer (HAL) や Android アプリが動くランタイム Android Runtime (ART) があります。

    Tools → Android → AVD Manager → Create Virtual Device をクリックします。

    Phone カテゴリーから適当なデバイスを選択して Next をクリックします。

    System image を選択します。初回はダウンロードが必要です。

    同意してダウンロードして Next をクリックします。

    最終確認画面ではそのまま Finish をクリックします。

    一覧に追加されたことが確認できます。

    AVD でアプリケーションを起動

    Run → Run 'app' をクリックしてサンプルアプリケーションを起動します。先程追加した AVD を選択して OK をクリックします。

    起動に成功すると以下のような画面になります。

    デバッグ関連

    作成した雛形アプリケーションをカスタマイズする中で必要となる、基本的なデバッグ方法をまとめます。Eclipse と同様に、Android Studio でもブレークポイントの設定やステップ実行が行えます。あるいは、以下に記載のトーストやログを利用したプリントデバッグも行えます。

    インポート

    • Code → Optimize Imports でインポート文を整理できます。
    • インポートされておらず参照できないエラー時には Alt + エンターで import 文を挿入できます。
      • Alt + エンターはエラー時の対応方法を提示する import に限らない汎用的なショートカットです。

    トーストの表示

    デバッグを意図した機能ではありませんが、ちょっとしたプリントデバッグに利用できます。以下の例では activity_main.xml に追加した id myButton のボタンウィジェットをクリックするとトーストが表示されます。イベントリスナの記述方法については、こちらの公式ドキュメントをご参照ください。二つの方法が記載されています。Toast.LENGTH_LONGToast.LENGTH_SHORT に変更することで、トーストの表示時間を短くできます。

    実装方法 1 MainActivity.java

    package com.example.mycompany.myapp;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button button = (Button)findViewById(R.id.myButton);
            button.setOnClickListener(
                    new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Toast.makeText(MainActivity.this, "Toast String", Toast.LENGTH_LONG).show();
                        }
                    }
            );
        }
    }
    

    実装方法 2 MainActivity.java

    package com.example.mycompany.myapp;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity implements OnClickListener {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.myButton);
            button.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            Toast.makeText(this, "Toast String", Toast.LENGTH_SHORT).show();
        }
    }
    

    ログの出力

    トーストと同様にプリントデバッグに利用できます。公式ドキュメントはこちらです。

    MainActivity.java

    package com.example.mycompany.myapp;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends AppCompatActivity {
    
        private static final String TAG = "MainActivity";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button button = (Button)findViewById(R.id.myButton);
            button.setOnClickListener(
                    new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Log.d(TAG, "debug level log message.");
                        }
                    }
            );
        }
    }
    

    View → Tool Windows → Android Monitor でログを確認できます。

    05-02 14:50:50.655 25352-25352/com.example.mycompany.myapp D/MainActivity: debug level log message.
    05-02 14:50:52.503 25352-25352/com.example.mycompany.myapp D/MainActivity: debug level log message.
    05-02 14:50:53.201 25352-25352/com.example.mycompany.myapp D/MainActivity: debug level log message.
    
    Likeボタン(off)0
    詳細設定を開く/閉じる
    アカウント プロフィール画像

    Web3関連の開発を行っています。分散型アプリケーションが研究テーマの学生です。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事

      • Spring Security フォームログインのサンプルコード
        Spring フレームワークによる Web アプリケーション開発で、ログイン処理を実装する際は Spring Security が便利です。ここでは特に Spring Boot で Web アプリケーションを開発する場合を対象とし、フォームによる ID/Password ログインを行うためのサンプルコードをまとめます。 公式ドキュメント [Spring Security チュートリアル](http...
        えびちゃんえびちゃん11/4/2019に更新
        いいねアイコン画像0
      • Java配列の宣言方法 (C/C++との違い)
        Javaの配列 Javaの配列宣言方法はC/C++と似ているようで若干異なる。 初期化しない場合 C/C++の int array[10]; はJavaでは int array[] = new int[10]; となる。同様にC/C++の int array[3][3]; はJavaでは int array[][] = new int[3][3]; となる。 初期化
        てんとうむしてんとうむし4/13/2018に更新
        いいねアイコン画像0
      • PlantUML による UML 図の描き方
        サムネイル画像-c788fffde5
        PlantUML はテキスト形式で表現されたシーケンス図やクラス図といった UML (Unified Modeling Language) 図の情報から画像を生成するためのツールです。簡単な使い方をまとめます。 インストール方法の選択 Atom や Eclipse のプラグインをインストールしてエディタから利用する方法、JAR をダウンロードして Java コマンドで実行する方法、Redmine ...
        kentakenta12/21/2019に更新
        いいねアイコン画像0
      • Akka HTTP サンプルコード (Scala)
        サムネイル画像-a98142497c
        Akka アクターを用いて実装された汎用 HTTP フレームワークです。Spray の後継です。コアモジュールである akka-http-core は 2016/2/17 に experimental が外れました。akka-http などのいくつかのサブモジュールは 2016/3/1 現在 experimental のままですが、基本的な
        雄太雄太9/7/2021に更新
        いいねアイコン画像0
      • Kestrel の使用例
        Kestrel は Message Queue (MQ) の実装のひとつです。一般に MQ はアプリケーション間やプロセス間、スレッド間で非同期に通信するために用いられます。メッセージの送信側は MQ に書き込めば受信側の応答を待たずに次の処理に非同期に進むことができます。Kestrel はわずか 2500 行程の Scala で実装されており JVM で動作します。MQ 自体はメモリ上に存在する...
        したくんしたくん9/12/2017に更新
        いいねアイコン画像0