mcpField
A
android

android

github.com/alphaonedev開発51 回インストール
リポジトリ

android について

Androidアプリ開発者向けのスキルです。SDKの設定、ライフサイクル処理、実行時権限、Material Designの実装に加え、Google Playでの配布準備を扱います。

主な機能

  1. 01Android SDKの設定
  2. 02アクティビティとフラグメントのライフサイクル処理
  3. 03実行時権限リクエストの実装
  4. 04Material Designコンポーネントの利用
  5. 05Google Play向けアプリの準備

活用シーン

  1. 01AndroidプロジェクトとSDKの初期設定
  2. 02アクティビティやフラグメントの状態問題のデバッグ
  3. 03カメラなどの実行時権限のリクエスト
  4. 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 プロジェクトをセットアップするには:

  1. Android Studio または CLI を使用します。gradle init --type android-library を実行して、基本的なプロジェクトを作成します。
  2. build.gradle に依存関係を追加します。例:implementation 'com.android.support:appcompat-v7:28.0.0'。 フラグメントのライフサイクルを扱うには:
  3. Fragment を継承し、onCreateView() をオーバーライドしてレイアウトをインフレートします。
  4. フラグメント内で getActivity() を使い、権限をリクエストするためのアクティビティのコンテキストにアクセスします。 権限をリクエストするには:
  5. まず状態を確認します。許可されていない場合は、リクエストコードを指定して requestPermissions() を呼び出します。
  6. 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()); } で囲みます。

具体的な使用例

  1. 権限チェックを含むアクティビティの実装: カメラへのアクセスをリクエストするアクティビティを作成します。

    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。

  2. ログイン画面での 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 スキルと共通)。

コメント