mcpField
A
android

android

github.com/alphaonedev开发51 次安装
代码仓库

关于 android

面向 Android 应用开发者的技能,提供 SDK 配置、生命周期处理、运行时权限和 Material Design 实践,并涵盖 Google Play 发布准备。

主要功能

  1. 01配置 Android SDK
  2. 02处理 Activity 与 Fragment 生命周期
  3. 03实现运行时权限请求
  4. 04使用 Material Design 组件
  5. 05准备 Google Play 应用发布

适用场景

  1. 01初始化 Android 项目与 SDK
  2. 02排查 Activity 或 Fragment 状态问题
  3. 03为应用请求相机等运行时权限
  4. 04准备应用包并通过 Google Play Console API 上传

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill android

安装后在 Claude Code 中输入/android确认已加载。

详细介绍

Android

目的

此技能使 AI 能够处理 Android 开发的核心任务,包括 SDK 设置、管理 activity 和 fragment 生命周期、实现权限模型、应用 Material Design 原则,以及准备应用以发布到 Google Play 商店。它侧重于实用实现,帮助高效构建应用。

适用场景

在 Android 应用开发场景中使用此技能,例如使用 SDK 工具初始化项目、调试生命周期事件(如 onPause 或 onDestroy)、请求运行时权限、使用 Material 组件设计响应式 UI,或自动执行 Play 商店上传。在处理“mobile”集群中的移动应用时应用此技能,尤其适用于 Google 生态系统集成。

核心能力

  • 设置 Android SDK:通过 SDK Manager 下载和配置,并使用 sdkmanager --list 等命令查看软件包。
  • 管理 activity/fragment 生命周期:实现 onCreate() 等 activity 方法,或 onViewCreated() 等 fragment 方法,以处理状态变化。
  • 处理权限模型:使用 ContextCompat.checkSelfPermission() 进行运行时检查,并通过 ActivityCompat.requestPermissions() 请求权限。
  • 应用 Material Design:集成 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'。 处理 fragment 生命周期:
  3. 扩展 Fragment 并重写 onCreateView() 以填充布局。
  4. 在 fragment 中使用 getActivity() 访问 activity 上下文,以请求权限。 请求权限时:
  5. 先检查状态:如果尚未授予权限,则使用请求代码调用 requestPermissions()。
  6. 在 onRequestPermissionsResult() 中处理结果,以继续操作或显示错误。 应用 Material Design:使用 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(例如,向 https://www.googleapis.com/androidpublisher/v3/applications/{packageName}/edits 发送 POST 请求,并在标头中提供 $GOOGLE_API_KEY)。
  • 代码片段:
    • Activity 生命周期示例:
      @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);
      }
      
    • Material Design 组件:
      <com.google.android.material.button.MaterialButton
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="点击我" />
      
    • Fragment 生命周期:
      @Override
      public void onViewCreated(View view, Bundle savedInstanceState) {
          super.onViewCreated(view, savedInstanceState);
          // 在此处初始化视图
      }
      

集成说明

通过设置环境变量集成 Android SDK:设置 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,可通过重新使用 $GOOGLE_API_KEY 进行身份验证来捕获 401 错误的 HttpException。始终将 API 调用包装在 try { ... } catch (Exception e) { Log.d("Error", e.getMessage()); } 中。

具体使用示例

  1. 实现带权限检查的 activity: 创建一个请求摄像头访问权限的 activity:

    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 组件设计一个 fragment:

    <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>
    

    在 fragment 中:重写 onCreateView() 以进行展开并处理用户输入,确保与 activity 生命周期兼容。

图关系

  • 相关集群:mobile(共享移动开发概念)。
  • 关联技能:ios(用于跨平台移动策略)、google(通过“google”等共享标签关联生态系统工具)。
  • 链接:sdk(与 Android SDK 用法直接重叠)、permissions(与 web 技能一样涉及访问控制)。

评论

支持 Markdown