サンプル Android アプリケーションを作ることで、2017/04/17 現在における基本的な開発手順を把握します。
事前に 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 をクリックします。
作成したサンプルアプリケーションを実機で起動することもできますが、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 をクリックします。
一覧に追加されたことが確認できます。
Run → Run 'app' をクリックしてサンプルアプリケーションを起動します。先程追加した AVD を選択して OK をクリックします。
起動に成功すると以下のような画面になります。
作成した雛形アプリケーションをカスタマイズする中で必要となる、基本的なデバッグ方法をまとめます。Eclipse や IntelliJ IDEA と同様に、Android Studio でもブレークポイントの設定やステップ実行が行えます。あるいは、以下に記載のトーストやログを利用したプリントデバッグも行えます。
デバッグを意図した機能ではありませんが、ちょっとしたプリントデバッグに利用できます。以下の例では activity_main.xml に追加した id myButton のボタンウィジェットをクリックするとトーストが表示されます。イベントリスナの記述方法については、こちらの公式ドキュメントをご参照ください。二つの方法が記載されています。Toast.LENGTH_LONG
を Toast.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.