Android Studioで静的変数(static)を使う方法と適切な活用場面を解説
静的変数(static変数)は、クラスのインスタンスを生成しなくてもアクセスできる特殊な変数です。すべてのインスタンス間で値が共有され、プログラムの実行中に一度だけメモリへ割り当てられます。Androidアプリ開発では、ログ出力用のタグ定数やアプリ全体で共通する設定値の管理など、さまざまな場面で活用されています。
この記事では、Android Studioで静的変数を宣言し、実際に使用するまでの手順をサンプルコードとともに分かりやすく解説します。
静的変数とは?
静的変数はクラスそのものに属し、ClassName.variableName の形式でどこからでもアクセスできます。特に static final を組み合わせると変更不可の定数となり、ログタグのような固定値の定義に最適です。
実装手順
ステップ1:新規プロジェクトを作成する
Android Studioを起動し、「File」→「New Project」を選択します。必要な項目を入力して、新しいプロジェクトを作成してください。
ステップ2:res/layout/activity_main.xml にコードを追加する
レイアウトファイルに以下のコードを記述します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="MainActivity">
<TextView
android:id="@+id/Question"
android:layout_width="wrap_content"
android:layout_height="93dp"
android:padding="8dp"
android:text="I'm a Static Variable"
android:layout_marginTop="32sp"
android:layout_marginLeft="8dp"
android:textSize="32dp"
tools:layout_editor_absoluteY="8dp" />
</LinearLayout>ステップ3:src/MainActivity.java にコードを追加する
次に、アクティビティクラスに以下のコードを記述します。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
public static final String TAG = "I'm a Static Variable";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart");
}
protected void onPause() {
super.onPause();
Log.i(TAG, "onPause");
}
protected void onStop() {
super.onStop();
Log.i(TAG, "onStop");
}
}ポイントは public static final String TAG = "I'm a Static Variable"; の部分です。ここで宣言した静的定数TAGは、onStart()・onPause()・onStop() といったライフサイクルメソッド内でログ出力時の識別子として参照されています。このように、複数のメソッドから共通して使う値は静的変数として定義しておくと、コードの重複を防ぎ保守性が向上します。
ステップ4:androidManifest.xml にコードを追加する
マニフェストファイルに以下のコードを記述します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>アプリを実行してみよう
それではアプリを実行しましょう。ここでは、実機のAndroidスマートフォンがパソコンに接続されているものとします。Android Studioからアプリを起動するには、プロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。接続したモバイルデバイスを選択すると、スマートフォンの画面にアプリが表示されます。

静的変数の主な活用場面と注意点
静的変数が役立つ代表的なケースは以下の通りです。
- ログタグなどの固定値(定数)の定義:
static finalを使うのが定石 - アプリ全体で共有する設定値やカウンターの管理
- ユーティリティクラスの共通フィールドやメソッドの提供
一方で注意点もあります。ActivityやContextへの参照を静的変数に保持すると、メモリリークの原因になるため避けてください。また、どこからでも書き換え可能な可変の静的変数は予期しないバグにつながりやすいため、基本的には static final の不変定数として使うことをおすすめします。
-
Androidスマホ・タブレットでPCのマウスとキーボードを使う方法【DeskDock完全ガイド】
スマートフォンやタブレットでは、どうも作業がはかどらない——そんな経験はありませんか?気のせいだと思いたいところですが、マウスとキーボードを手にすると不思議と作業モードに入れるのは、多くの人が共感する感覚です。 Androidデバイスの大半は、指によるタッチ操作が主な入力方法です。しかし、指先での操作はマウスやキーボードほど滑らかではなく、生産性の面で大きな弱点になりがちです。 もし、パソコンで使っているマウスやキーボードをそのままスマホやタブレットで使えたら便利だと思いませんか?実はそれ、可能です。この記事では、パソコンの入力機器を使ってAndroidデバイスを操作する方法を詳しく解説します
-
Android TVでADBを設定して使う方法|PCとの接続手順と活用テクニック
AndroidスマートフォンであれAndroid TVであれ、OSの本質は同じです。つまり、Android TVは他のAndroidデバイスと同じように自由にカスタマイズできるということです。 Androidアプリのサイドローディングなど、本格的なカスタマイズを行いたい場合は、「Android Debug Bridge(ADB)」の力が必要になります。この記事では、ADBを使ってAndroid TVをPCに接続する方法を詳しく解説します。 PCにADBをセットアップする方法 まず最初のステップは、お使いのPCにADBをインストールすることです。そのためには、Android Developers