关于 android
面向 Android 应用开发者的技能,提供 SDK 配置、生命周期处理、运行时权限和 Material Design 实践,并涵盖 Google Play 发布准备。
主要功能
- 01配置 Android SDK
- 02处理 Activity 与 Fragment 生命周期
- 03实现运行时权限请求
- 04使用 Material Design 组件
- 05准备 Google Play 应用发布
适用场景
- 01初始化 Android 项目与 SDK
- 02排查 Activity 或 Fragment 状态问题
- 03为应用请求相机等运行时权限
- 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 项目:
- 使用 Android Studio 或 CLI:运行
gradle init --type android-library创建基本项目。 - 在 build.gradle 中添加依赖项,例如 implementation 'com.android.support:appcompat-v7:28.0.0'。 处理 fragment 生命周期:
- 扩展 Fragment 并重写 onCreateView() 以填充布局。
- 在 fragment 中使用 getActivity() 访问 activity 上下文,以请求权限。 请求权限时:
- 先检查状态:如果尚未授予权限,则使用请求代码调用 requestPermissions()。
- 在 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); // 在此处初始化视图 }
- Activity 生命周期示例:
集成说明
通过设置环境变量集成 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()); } 中。
具体使用示例
-
实现带权限检查的 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。 -
使用 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 技能一样涉及访问控制)。