android について
Androidアプリ開発者向けのスキルです。SDKの設定、ライフサイクル処理、実行時権限、Material Designの実装に加え、Google Playでの配布準備を扱います。
主な機能
- 01Android SDKの設定
- 02アクティビティとフラグメントのライフサイクル処理
- 03実行時権限リクエストの実装
- 04Material Designコンポーネントの利用
- 05Google Play向けアプリの準備
活用シーン
- 01AndroidプロジェクトとSDKの初期設定
- 02アクティビティやフラグメントの状態問題のデバッグ
- 03カメラなどの実行時権限のリクエスト
- 04アプリバンドルの準備とGoogle Play Console API経由のアップロード
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill androidインストール後、Claude Code で/androidを入力して読み込まれたか確認します。
詳細
android
目的
このスキルは、SDK のセットアップ、アクティビティとフラグメントのライフサイクル管理、権限モデルの実装、マテリアルデザインの原則の適用、Google Play ストアでのアプリ配布準備など、Android 開発の基本的なタスクに AI が対応できるようにします。効率的にアプリを構築するための実践的な実装に重点を置いています。
使用する場面
SDK ツールを使ったプロジェクトの初期化、ライフサイクルイベント(例:onPause や onDestroy)のデバッグ、実行時権限のリクエスト、マテリアルコンポーネントを使ったレスポンシブ UI の設計、Play ストアへのアップロードの自動化など、Android アプリの開発に使用します。「mobile」クラスターでモバイルアプリに取り組む場合、特に Google エコシステムとの統合で活用してください。
主な機能
- Android SDK をセットアップします。SDK Manager でダウンロードおよび設定し、
sdkmanager --listなどのコマンドでパッケージを確認します。 - アクティビティとフラグメントのライフサイクルを管理します。状態の変化に対応できるよう、アクティビティの onCreate() やフラグメントの onViewCreated() などのメソッドを実装します。
- 権限モデルに対応します。ContextCompat.checkSelfPermission() で実行時に確認し、ActivityCompat.requestPermissions() でリクエストします。
- マテリアルデザインを適用します。Material ライブラリの MaterialButton や BottomNavigationView などのコンポーネントを統合します。
- Play ストアを管理します。アプリバンドルを準備し、Google Play Console API を使ってアップロードします。その際、$GOOGLE_API_KEY による認証が必要です。
使用パターン
新しい Android プロジェクトをセットアップするには:
- Android Studio または CLI を使用します。
gradle init --type android-libraryを実行して、基本的なプロジェクトを作成します。 - build.gradle に依存関係を追加します。例:implementation 'com.android.support:appcompat-v7:28.0.0'。 フラグメントのライフサイクルを扱うには:
- Fragment を継承し、onCreateView() をオーバーライドしてレイアウトをインフレートします。
- フラグメント内で getActivity() を使い、権限をリクエストするためのアクティビティのコンテキストにアクセスします。 権限をリクエストするには:
- まず状態を確認します。許可されていない場合は、リクエストコードを指定して requestPermissions() を呼び出します。
- onRequestPermissionsResult() で結果を処理し、処理を続行するかエラーを表示します。 マテリアルデザインを適用するには:レイアウトを CoordinatorLayout でラップし、app:layout_behavior="@string/appbar_scrolling_view_behavior" などのビヘイビアを追加します。
よく使うコマンド/API
- CLI コマンド:
adb devicesでデバイスを一覧表示します。adb logcatに-s MyAppなどのフラグを付けてログを絞り込みます。sdkmanager --install "build-tools;30.0.3"で特定の SDK コンポーネントをインストールします。 - API エンドポイント:Play ストアでは Google Play Developer API を使用します(例:ヘッダーに $GOOGLE_API_KEY を指定して、https://www.googleapis.com/androidpublisher/v3/applications/{packageName}/edits に POST します)。
- コードスニペット:
- アクティビティのライフサイクルの例:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } - 権限のリクエスト:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); } - マテリアルデザインのコンポーネント:
<com.google.android.material.button.MaterialButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me" /> - フラグメントのライフサイクル:
@Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // ここでビューを初期化 }
- アクティビティのライフサイクルの例:
統合に関する注意事項
環境変数を設定して Android SDK を統合します。export ANDROID_HOME=/path/to/sdk を設定し、PATH に追加してください。Google サービスを利用する場合は、build.gradle に Google Play Services を含めます。implementation 'com.google.android.gms:play-services-auth:20.1.0' を追加し、API 呼び出しで $GOOGLE_API_KEY を使用します(例:HTTP リクエストの Authorization: Bearer $GOOGLE_API_KEY)。他のスキルと組み合わせる場合は、互換性を確保してください。モバイルクラスターとの統合では、クロスプラットフォーム設定を iOS スキルに合わせます。Play Store の自動化スクリプトでは、{"apiKey": "$GOOGLE_API_KEY"} のような JSON 設定ファイルを使用します。
エラー処理
onRequestPermissionsResult() で結果を確認し、権限エラーに対処します。リクエストが拒否された場合は、Log.e("Permission", "Denied") でログを記録し、AlertDialog を使ってユーザーに通知します。ライフサイクル関連の問題(例:onDestroy での NullPointerException)については、リソース解放処理を try-catch ブロックで囲みます。よくある SDK エラーとして、sdkmanager が失敗した場合は、インターネット接続を確認するか、詳細を確認するために --verbose フラグを使用します。Play Store API での 401 エラーは、HttpException を捕捉し、$GOOGLE_API_KEY を使って再認証します。API 呼び出しは必ず try { ... } catch (Exception e) { Log.d("Error", e.getMessage()); } で囲みます。
具体的な使用例
-
権限チェックを含むアクティビティの実装: カメラへのアクセスをリクエストするアクティビティを作成します。
public class CameraActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_camera); if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 100); } } }その後、ビルドして実行します:
./gradlew assembleDebug && adb install app/build/outputs/apk/debug/app-debug.apk。 -
ログイン画面での Material Design の使用: Material コンポーネントを使ってフラグメントを設計します。
<com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <com.google.android.material.textfield.TextInputEditText android:hint="Username" /> </com.google.android.material.textfield.TextInputLayout>フラグメントでは、onCreateView() をオーバーライドしてビューをインフレートし、ユーザー入力を処理します。その際、アクティビティのライフサイクルとの互換性を確保してください。
グラフの関係
- 関連するクラスター:mobile(モバイル開発の概念を共有します)。
- 関連するスキル:ios(クロスプラットフォームのモバイル戦略向け)、google(エコシステムツールに関する「google」などの共通タグ経由)。
- リンク:sdk(Android SDK の使用に直接関連)、permissions(アクセス制御に関して Web スキルと共通)。