欢迎光临
我们一直在努力

Android + Kiro AI软件开发实战教程

Android + Kiro 软件开发实战教程

文章目录

  • Android + Kiro 软件开发实战教程
    • 一、Kiro 简介
      • 1.1 Kiro 与传统 IDE 的区别
      • 1.2 适用场景
    • 二、环境搭建
      • 2.1 安装 Kiro
      • 2.2 打开 Android 项目
      • 2.3 推荐配置
    • 三、实战流程:以蓝牙文件接收功能为例
      • 3.1 第一步:代码分析
      • 3.2 第二步:需求描述
      • 3.3 第三步:迭代修复
      • 3.4 第四步:日志分析
      • 3.5 第五步:功能优化
    • 四、Kiro 核心功能在 Android 开发中的应用
      • 4.1 代码搜索与分析
      • 4.2 跨文件修改
      • 4.3 布局文件生成
      • 4.4 字符串资源管理
      • 4.5 文档生成
      • 4.6 Steering 规范引导
      • 4.7 Hooks 自动化
    • 五、高效使用技巧
      • 5.1 对话技巧
      • 5.2 上下文管理
      • 5.3 模式选择
      • 5.4 大型项目策略
    • 六、常见问题
      • Q1:Kiro 修改的代码编译不过怎么办?
      • Q2:Kiro 修改后固件中没有新代码?
      • Q3:Kiro 对 Android 系统 API 不熟悉怎么办?
      • Q4:对话太长 Kiro 忘记之前的上下文?
      • Q5:如何让 Kiro 生成的代码风格一致?
    • 七、实战项目总结
    • 八、附录
      • 8.1 本项目修改文件清单
      • 8.2 调试命令速查
  • Kiro并不是万能的,但是它算是一个很好的开发助手。

一、Kiro 简介

Kiro 是 AWS 推出的 AI 辅助开发 IDE,基于 VS Code 内核,集成了 AI Agent 能力。 它能理解代码上下文、执行文件操作、运行命令、搜索代码,并通过对话式交互帮助开发者完成复杂的编码任务。

最近我用Kiro解决了不少Android Studio 应用的问题和系统源码应用的问题;

使用Kiro写Android代码确实可以减少 80%的精力,并且生成和修改的代码简洁,功能完善,还有总结文档。

下面是Kiro的使用介绍。

1.1 Kiro 与传统 IDE 的区别

特性传统 IDEKiro
代码补全 基于语法的补全 AI 理解上下文的智能补全
代码搜索 文本搜索 语义理解 + 正则搜索
重构 手动修改多个文件 AI 自动分析依赖并批量修改
调试分析 手动阅读日志 粘贴日志让 AI 分析根因
文档生成 手动编写 AI 根据代码自动生成

1.2 适用场景

  • AOSP 系统级应用开发(蓝牙、Settings、SystemUI 等)
  • Android App 开发
  • 跨文件重构和代码分析
  • 日志分析和 Bug 定位
  • 代码审查和文档生成

二、环境搭建

2.1 安装 Kiro

  • 下载 Kiro 安装包:https://kiro.dev

  • Windows 双击安装,安装完成后启动

  • 登录GitHub、 AWS 账号或 Builder ID

    可以先登录GitHub 使用免费账号体验,我是用的公司收费账号(20¥/月)

  • Kiro没有复杂的配置过程,下载安装后,登录就可以使用。

    2.2 打开 Android 项目

    方式1:直接打开模块目录
    File → Open Folder → 选择 packages/modules/Bluetooth/android/app/

    方式2:打开整个 AOSP 源码(大型项目建议只打开需要修改的模块)
    File → Open Folder → 选择 release
    让Kiro分析蓝牙部分代码:packages/modules/Bluetooth/

    如下图所示:

    在这里插入图片描述

    登录后左下角会有显示用户,open目录后代码显示在左边,可以在右边提问题:解决bug或者实现功能;

    运行后一次也可以吧报错的log文件放到根目录,让它帮忙分析解决就可以了;

    主要工作就是:提需求,验证测试。

    2.3 推荐配置

    在项目根目录创建 .kiro/steering/android-dev.md,添加开发规范:


    inclusion: always

    # Android AOSP 开发规范

    – 使用 java.time.* 替代 java.util.Date(errorprone 检查)
    – LocalTime.now() 必须传入 ZoneId.systemDefault()
    – 日志关键字统一使用 lwzbt 便于过滤
    – 所有新增字符串需要同步添加中英文资源
    – 修改后确认 AndroidManifest.xml 中组件注册正确


    三、实战流程:以蓝牙文件接收功能为例

    3.1 第一步:代码分析

    对话示例:

    用户:分析 opp 目录的代码的作用

    Kiro 会自动:

    • 扫描 src/com/android/bluetooth/opp/ 目录下所有文件
    • 分析每个类的职责和调用关系
    • 生成结构化的分析报告

    关键技巧:

    • 让 Kiro 先分析再动手,避免盲目修改
    • 可以要求生成 .mk 文档保存分析结果
    • 对于大型文件,Kiro 会自动分段读取

    3.2 第二步:需求描述

    对话示例:

    用户:分析蓝牙应用源码,修改如下需求:
    1、目前系统没有下拉框和状态栏,需要拦截蓝牙文件接收,弹框确认
    2、确认接收后,弹出传输进度对话框
    3、接收完成后 toast 提示并隐藏对话框
    4、支持缩小为悬浮窗
    5、接收失败显示异常标记

    技巧:

    • 一次性描述完整需求,Kiro 会统筹规划
    • 如果有参考图片,可以拖拽到对话框中
    • 需求越具体,生成的代码越准确

    3.3 第三步:迭代修复

    Android AOSP 开发中,编译错误是常见的。Kiro 的优势在于快速分析和修复。

    对话示例:

    用户:修改后编译报错分析解决:
    packages/modules/Bluetooth/android/app/src/com/android/bluetooth/opp/
    BluetoothOppTransferDialogActivity.java:213: error: [JavaUtilDate]
    Date has a bad API that leads to bugs; prefer java.time.Instant or LocalDate.

    Kiro 会:

    • 识别 errorprone 检查规则
    • 自动替换为符合规范的代码
    • 检查是否有其他同类问题一并修复

    3.4 第四步:日志分析

    对话示例:

    用户:点击缩小传输过程的对话框报错日志分析:
    04-14 10:50:06.289 4102 4102 E AndroidRuntime:
    java.lang.RuntimeException: Unable to start service
    com.android.bluetooth.opp.BluetoothOppFloatService:
    android.view.WindowManager$BadTokenException:
    permission denied for window type 2003

    Kiro 会:

    • 识别 window type 2003 = TYPE_APPLICATION_OVERLAY
    • 分析权限缺失原因
    • 提供多种解决方案并实施

    3.5 第五步:功能优化

    开发过程中不断发现问题并优化:

    用户:目前还发现几个需要优化的地方:
    1、隐藏传输过程重新显示后,未显示已接收的文件信息
    2、缩小的悬浮框默认位置改为左下角
    3、悬浮框去掉白边,透明背景蓝色图案
    4、悬浮框显示接收文件进度 N/M

    技巧:

    • 多个优化点可以一次性提出
    • Kiro 会分析每个问题的根因并逐一修复
    • 修复后会自动更新相关联的文件

    四、Kiro 核心功能在 Android 开发中的应用

    4.1 代码搜索与分析

    用户:搜索 BluetoothOppObexServerSession 中 onPut 方法的完整实现

    Kiro 使用 readCode 工具智能读取代码,大文件自动提取函数签名,指定函数名可以精确定位实现。

    4.2 跨文件修改

    用户:添加一个 prop 属性判断 persist.sys.skg.bluetooth_aosp,
    true 走自定义逻辑,false 走原生逻辑

    Kiro 会:

    • 识别所有需要添加判断的入口点
    • 在多个文件中同时添加 SystemProperties 检查
    • 自动添加必要的 import 语句

    4.3 布局文件生成

    用户:创建传输对话框布局,包含标题栏、文件信息、进度条、已接收文件列表

    Kiro 生成完整的 XML 布局文件,包含合理的 id 命名和样式。

    4.4 字符串资源管理

    用户:添加的字符串帮忙添加中英文的字符串

    Kiro 会同步更新:

    • res/values/strings.xml(英文)
    • res/values-zh-rCN/strings.xml(简体中文)
    • res/values-zh-rTW/strings.xml(繁体中文)
    • res/values-zh-rHK/strings.xml(香港繁体)

    如果有需要添加所有国家的语言也是可以的。

    4.5 文档生成

    用户:总结修改的全部内容,生成 mk 文档,包含文件清单、移植说明、问题排查

    Kiro 会遍历所有修改过的文件过程,生成结构化的技术文档。

    注意: Kiro可以生成文件、文档,但是无法直接生成图片; 比如某个代码流程图,它可能会生成mmd文件,但是没啥用; 正确的做法是:让它把XXX内容的流程图生成html文件,然后打开网页直接查看或者可以导出成图片,试过是可以的。

    4.6 Steering 规范引导

    在 .kiro/steering/ 目录下创建 markdown 文件,Kiro 会在每次对话中自动加载:

    # 编码规范
    – 不使用 java.util.Date
    – 广播接收器使用 RECEIVER_EXPORTED
    – 新增组件必须在 AndroidManifest.xml 注册

    这样 Kiro 在生成代码时会自动遵守这些规范。

    4.7 Hooks 自动化

    创建 Hook 在文件保存时自动检查:

    用户:创建一个 hook,当 java 文件编辑后,提醒检查是否有 errorprone 问题


    五、高效使用技巧

    5.1 对话技巧

    场景推荐写法避免写法
    分析代码 “分析 opp 目录代码的文件接收流程” “看看代码”
    修复 Bug 直接粘贴完整报错日志 只说"编译报错了"
    需求开发 列出 1、2、3 具体需求点 模糊描述"改一下界面"
    优化 描述现象 + 期望效果 只说"有问题"

    5.2 上下文管理

    • 使用 #File 引用特定文件让 Kiro 聚焦
    • 使用 #Folder 引用整个目录
    • 使用 #Problems 查看当前文件的问题
    • 使用 #Terminal 引用终端输出
    • 使用 #Git Diff 查看当前修改

    5.3 模式选择

    • Autopilot 模式:Kiro 自动修改文件,适合信任度高的场景
    • Supervised 模式:每次修改后可以 revert,适合谨慎操作

    5.4 大型项目策略

    AOSP 项目文件量巨大,建议:

    • 只打开需要修改的模块目录,不要打开整个 AOSP
    • 先让 Kiro 分析目标模块的结构
    • 使用 steering 文件预设项目规范
    • 复杂修改分步进行,每步验证

    六、常见问题

    Q1:Kiro 修改的代码编译不过怎么办?

    直接把编译错误粘贴给 Kiro,它会分析错误原因并修复。 AOSP 的 errorprone 检查比较严格,常见问题包括:

    • JavaUtilDate:用 java.time.* 替代
    • JavaTimeDefaultTimeZone:LocalTime.now() 加 ZoneId.systemDefault()
    • UnusedMethod:删除未使用的方法

    Q2:Kiro 修改后固件中没有新代码?

    • 确认编译路径正确
    • AOSP 增量编译可能不会重新编译未变更的模块
    • 尝试删除 out 目录下对应模块的中间产物后重新编译

    Q3:Kiro 对 Android 系统 API 不熟悉怎么办?

    • 提供相关源码文件让 Kiro 阅读
    • 粘贴 Android 官方文档链接
    • 指出具体的 API 用法,Kiro 会学习并应用

    Q4:对话太长 Kiro 忘记之前的上下文?

    • 使用 “CONTEXT TRANSFER” 总结之前的对话要点
    • 在新对话开头粘贴关键信息摘要
    • 使用 steering 文件持久化项目规范

    Q5:如何让 Kiro 生成的代码风格一致?

    • 创建 .kiro/steering/ 规范文件
    • 在对话中明确指出代码风格要求
    • 提供现有代码作为参考样例

    七、实战项目总结

    以本次蓝牙 OPP 文件接收功能开发为例,整个过程:

    阶段Kiro 的作用人工操作
    需求分析 分析源码结构,生成分析文档 提出需求
    方案设计 确定修改点,规划数据流 审核方案
    编码实现 生成 Java/XML/字符串资源 审核代码
    编译修复 分析报错并自动修复 粘贴错误日志
    运行调试 分析 logcat 日志定位问题 提供设备日志
    迭代优化 根据反馈修改代码 描述问题现象
    文档输出 生成完整技术文档 审核文档

    整个开发过程中,Kiro 完成了约 90% 的编码工作, 开发者主要负责需求描述、方案审核、设备测试和问题反馈。

    项目完成后,最好让它生成一个总结文档。


    八、附录

    8.1 本项目修改文件清单

    新增文件:
    src/com/android/bluetooth/opp/BluetoothOppTransferDialogActivity.java
    src/com/android/bluetooth/opp/BluetoothOppFloatService.java
    res/layout/bt_file_transfer_dialog.xml
    res/layout/bt_file_transfer_item.xml
    res/layout/bt_file_transfer_float.xml

    修改文件:
    AndroidManifest.xml
    src/com/android/bluetooth/opp/BluetoothOppNotification.java
    src/com/android/bluetooth/opp/BluetoothOppIncomingFileConfirmActivity.java
    src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java
    src/com/android/bluetooth/opp/BluetoothOppReceiver.java
    res/values/strings.xml
    res/values-zh-rCN/strings.xml
    res/values-zh-rTW/strings.xml
    res/values-zh-rHK/strings.xml
    res/values/styles.xml

    8.2 调试命令速查

    # 过滤自定义日志
    adb logcat | grep lwzbt

    # 授予悬浮窗权限
    adb shell appops set com.android.bluetooth SYSTEM_ALERT_WINDOW allow

    # 查看 prop 开关状态
    adb shell getprop persist.sys.skg.bluetooth_aosp

    # 开启自定义弹框模式
    adb shell setprop persist.sys.skg.bluetooth_aosp true

    # 关闭自定义弹框模式(使用原生通知栏)
    adb shell setprop persist.sys.skg.bluetooth_aosp false

    # 重启蓝牙服务使 prop 生效
    adb shell am force-stop com.android.bluetooth

    Kiro并不是万能的,但是它算是一个很好的开发助手。

    Kiro确实是对Android比较有用的,没用的人赶紧试试。 AI可能会淘汰很多人,但是先淘汰的是不会使用AI工具的人。

    赞(0)
    未经允许不得转载:171主机测评 » Android + Kiro AI软件开发实战教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址