Cursor+Claude-3.5生成Android app

news2025/3/24 22:33:23

一、Android Studio下载

https://developer.android.com/studio?hl=zh-tw#get-android-studio

在这里插入图片描述
等待安装完成
在这里插入图片描述

二、新建工程

点击new project
在这里插入图片描述
选择Empty Activity
在这里插入图片描述
起一个工程名
在这里插入图片描述
当弹出这个框时
在这里插入图片描述
可以在settings里面选择No proxy
在这里插入图片描述
新建好后如下
在这里插入图片描述
点击右边模拟器,一会手机就出来了
在这里插入图片描述

三、打开cursor

打开crusor,导入刚才创建的工程
在这里插入图片描述
可以看到,界面如下,右上就是模型选择,这里选择claude 3.7
在这里插入图片描述
指定角色
在工程根目录下新建一个文件,文件名.cursorrules

#.cursorrules
# 角色
你是一名精通 **安卓应用开发**的高级工程师,拥有18年以上的 **移动应用**开发经验,熟悉**Android Stud10、Kotlin
# 目标
你的目标是以用户容易理解的方式帮助他们完成 **安卓应用** 的设计和开发工作,确保应用功能完善、性能优异、用户体验良好。
# 要求
这是用Jetpack Compose创建的Android应用,请按照以下规则开发:
使用Jetpack Compose创建UI,不要使用XML.
在理解用户需求、设计UI、编写代码、解决问题和项目选代优化时,你应该始终遵循以下原则:
## 项目初始化
- 在项目开始时,首先仔细阅读项目目录下的 README.md文件并理解其内容團包括项目的目标、功能架构、技术和开发计划
- 如果还没有READHE.md文件,请主动创建一个用于后续记录该应用的功能模块、页面结构、数据流、依赖库等信息。
## 需求理解
- 充分理解用户需求,站在用户角度思考,分析需求是否存在缺漏,并与用户讨论完善需求;-
- 选择最简单的解决方案来满足用户需求,避免过度设计。
- ##UI和样式设计
- 使用现代UI框架进行样式设计(例如 **Jetpack compose****XL布局**,道循 **aterial Design** 设计规范);
- 在不同平台上实现一致的设计和响应式模式
## 代码编写
-  技术选型:根据项目需求选择合适的技术栈(例如 **Kotlin** 用于主要开发语言,**JetpackCompose** 用于构建声明式UI
-**Kotlin**:用于主要开发语言,遵循面向对象编程原则,确保代码结构清晰且易于扩展。
- **Jetpack Compose**:用于构建声明式UI,遵循MVVM架构模式,确保UI与业务逻辑分离。
- **Room**:用于数据持久化,遵循数据模型与视图分离的原则,确保数据管理高效且安全。
- **Retrof1t**:用于网络请求县遵循RESTfuL API设计原则,确保网络请求高效且易于维护。
- **Dagger/H1lt**:用于依赖注入,遵循依赖注入原则,确保代码模块化且易于测试。
- 代码结构:强调代码的清晰性、模块化、可维护性,遵循最佳实践(如DRY原则、最小权限原则、响应式设计等)
- 代码安全性:在编写代码时,始终考虑安全性,避免引入漏洞,确保用户输入的安全处理
- 性能优化:优化代码的性能,减少资源占用,提升加载速度,确保项目的高效运行
- 测试与文档:编写单元测试,确保代码的健壮性,并提供清晰的中文注释和文档,方便后续阅读和维护
# 问题解决
- 全面阅读相关代码,理解 **安卓应用**的工作原理
- 根据用户的反馈分析问题的原因,提出解决问题的思路
- 确保每次代码变更不会破坏现有功能,且尽可能保持最小的改动
## 选代优化
- 与用户保持密切沟通,根据反馈调整功能和设计,确保应用符合用户需求
- 在不确定需求时,主动询问用户以澄清需求或技术细节
- 每次选代都需要更新README.md文件,包括功能说明和优化建议
## 方法论
- 系统2思维:以分析严谨的方式解决问题。将需求分解为更小、可管理的部分,并在实施前仔细考虑每一步
- 思维树:评估多种可能的解决方案及其后果。使用结构化的方法探索不同的路径,并选择最优的解决方案
- 迭代改进:在最终确定代码之前,考虑改进、边缘情况和优化。通过潜在增强的选代,确保最终解决方案是键壮的

输入提示词
@Codebase:仅在对话窗口使用,用于扫描代码仓中的文件
它与通过 CTRL + Enter 快捷键的主要区别在于,你可以自定义查询的过滤规则。

@Codebase 我已经先在Android Studio创建了一个用于安卓 APP开发的项目文件,现在用Cursor打开的就是这个项目文件。
现在在这个项目文件里,我要开发-个todolitst的安卓APP,基础功能就两个1、支持添加待办事项
2、打钩可以完成待办事项,打钩后待办事项就从待办区域移至已完成事项区域,同时这条待办事项会画上删除线

便捷提供上下文信息的注记
为了更方便地向大语言模型提供上下文信息,Cursor 内置了不同类型的 @ 注记。使用这些 @ 注记,可以轻松地将各种上下文信息注入到你的对话中。
@ Files:传递指定代码文件的上下文
@ Code 提供更精确的代码片段。使用 @ 注记的方式类似,都会弹出相应的检索框。只需输入关键词,然后在索引列表中选择所需的代码块即可。
@Docs 可以从函数或库的官方文档中获取上下文
@Web:从搜索引擎获取上下文
@Folders:传递文件目录信息的上下文
@Chat:仅在文件内的代码生成窗口使用
@Definitions:仅在文件内的代码生成窗口使用
Git:仅在对话窗口使用

提示词写好后,点击send,等待代码生成
在这里插入图片描述
在这里插入图片描述
最后还生成了README.md,然后点击右下方的Accept all,会把生成的文件保存到工程里。中间没有报错,一次性成功。

四、测试

在Android Studio中run
在这里插入图片描述
把gradle库更新下
在这里插入图片描述
run的时候有报错
在这里插入图片描述
直接把错误复制给cursor,它会自动去纠错,后面要是还报错,就继续重复这个步骤。
在这里插入图片描述
再次运行,一个android app生成了。
在这里插入图片描述
如果不想用模拟器,在手机上体验一下,可以直接生成apk
在这里插入图片描述
apk生成
在这里插入图片描述
安装手机测试
在这里插入图片描述
流程都跑通了,功能上可以修改提示词,不断的优化。

五、项目二五子棋

告诉deepseek要开发一个五子棋,然后把内容给都cursor。

. 开发工具
语言:Kotlin(主推)或Java

棋盘绘制:自定义View + Canvas

AI算法:MiniMax(基础) / 神经网络(进阶)

2. 网络架构(联网功能)
通信协议:WebSocket(实时性高)

后端框架:Node.js + Socket.IO

数据库:Firebase实时数据库或MongoDB

3. 性能优化
棋盘渲染帧率≥60fps

内存管理:避免位图资源泄漏

四、测试与发布
测试用例

兼容性测试:覆盖Android 8.0及以上版本。

压力测试:模拟1000并发在线对战。

发布渠道

Google Play Store,符合隐私政策(如GDPR)。

五、扩展功能(可选)
AR模式:通过摄像头识别实体棋盘并同步落子。

观战模式:允许用户观看他人对战并评论。

AI教学:分析用户棋局并提供策略建议。

六、开发周期建议
MVP版本(6周):单机双人+简单AI+基础界面。

V1.0完整版(12周):联网对战+高级AI+用户系统。

此文档可作为开发团队的基线需求,根据实际资源调整优先级。

复制进去以后就等待生成
在这里插入图片描述
等待一会完成了,非常友好,还写了README
在这里插入图片描述
直接在Android Studio这面点击build就可以了。
这次没报任何错,从cursor代码生成,到studio run模拟器的开启,这次是首先让deepseek给了更加明确的提示词。整个app开发,有了第一个todolist,第二个总共也就不到10分钟完成。后面可以放到手机,玩的时候发现问题可以继续优化。
在这里插入图片描述
点击settings,里面还有很多选项
在这里插入图片描述
可以根据自己喜好进行体验修改

生成apk后,在手机上安装,可以玩,三种模式可供选择,人和人,人和机,机和机,难度有简单,中等,困难
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2320393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT Quick(C++)跨平台应用程序项目实战教程 3 — 项目基本设置(窗体尺寸、中文标题、窗体图标、可执行程序图标)

目录 1. 修改程序界面尺寸和标题 2. 窗体图标 3. 修改可执行程序图标 上一章创建好了一个初始Qt Quick项目。本章介绍基本的项目修改方法。 1. 修改程序界面尺寸和标题 修改Main.qml文件,将程序宽度设置为1200,程序高度设置为800。同时修改程序标题…

Transformers x SwanLab:可视化NLP模型训练(2025最新版)

HuggingFace 的 Transformers 是目前最流行的深度学习训框架之一(100k Star),现在主流的大语言模型(LLaMa系列、Qwen系列、ChatGLM系列等)、自然语言处理模型(Bert系列)等,都在使用T…

VSCode 抽风之 两个conda环境同时在被激活

出现了神奇的(toolsZCH)(base) 提示符,如下图所示: 原因大概是:conda 环境的双重激活:可能是 conda 环境没有被正确清理或初始化,导致 base 和 toolsZCH 同时被激活。 解决办法就是 :conda deactivate 两次…

Mybatis的基础操作——03

写mybatis代码的方法有两种: 注解xml方式 本篇就介绍XML的方式 使用XML来配置映射语句能够实现复杂的SQL功能,也就是将sql语句写到XML配置文件中。 目录 一、配置XML文件的路径,在resources/mapper 的目录下 二、写持久层代码 1.添加mappe…

React:React主流组件库对比

1、Material-UI | 官网 | GitHub | GitHub Star: 94.8k Material-UI 是一个实现了 Google Material Design 规范的 React 组件库。 Material UI 包含了大量预构建的 Material Design 组件,覆盖导航、滑块、下拉菜单等各种常用组件,并都提供了高度的可定制…

python每日十题(6)

】函数定义:函数是指一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用其函数名即可。函数能提高应用的模块性和代码的重复利用率 在Python语言中,用关键字class来定义类 在Python语…

1.Go - Hello World

1.安装Go依赖 https://go.dev/dl/ 根据操作系统选择适合的依赖,比如windows: 2.配置环境变量 右键此电脑 - 属性 - 环境变量 PS: GOROOT:Go依赖路径; GOPATH:Go项目路径; …

优先队列 priority_queue详解

说到&#xff0c;priority_queue优先队列。必须先要了解啥是堆与运算符重载(我在下方有解释)。 否则只知皮毛&#xff0c;极易忘记寸步难行。 但在开头&#xff0c;还是简单的说下怎么用 首先&#xff0c;你需要调用 #include <queue> 在main函数中&#xff0c;声明…

《信息系统安全》(第一次上机实验报告)

实验一 &#xff1a;网络协议分析工具Wireshark 一 实验目的 学习使用网络协议分析工具Wireshark的方法&#xff0c;并用它来分析一些协议。 二实验原理 TCP/IP协议族中网络层、传输层、应用层相关重要协议原理。网络协议分析工具Wireshark的工作原理和基本使用规则。 三 实…

简要分析IPPROTO_TCP参数

IPPROTO_TCP是操作系统或网络编程中定义的一个 协议号常量&#xff0c;用于标识 传输控制协议&#xff08;TCP&#xff09;。其核心作用是 在传输层指定使用TCP协议&#xff0c;确保数据通过TCP的可靠传输机制进行通信。 一、定义与值 头文件&#xff1a;定义在<netinet/in.…

JavaScript与客户端开发

1、简介 简单的讲&#xff0c;JavaScript是一种脚本语言&#xff0c;为网站提供了一种在客户端运行程序的手段&#xff0c;通过它可以实现客户端数据验证、网页特效等功能。 JavaScript是一种基于对象和事件驱动&#xff08;不懂啥意思&#xff0c;暂不管它&#xff09;&…

基于CNN的FashionMNIST数据集识别5——GoogleNet模型

源码 import torch from torch import nn from torchsummary import summaryclass Inception(nn.Module):def __init__(self, in_channels, c1, c2, c3, c4):super().__init__()self.ReLu nn.ReLU()#路径1self.p1_1 nn.Conv2d(in_channelsin_channels, out_channelsc1, kern…

JVM垃圾回收笔记01-垃圾回收算法

文章目录 前言1. 如何判断对象可以回收1.1 引用计数法1.2 可达性分析算法查看根对象哪些对象可以作为 GC Root ?对象可以被回收&#xff0c;就代表一定会被回收吗&#xff1f; 1.3 引用类型1.强引用&#xff08;StrongReference&#xff09;2.软引用&#xff08;SoftReference…

【初探数据结构】树与二叉树

&#x1f4ac; 欢迎讨论&#xff1a;在阅读过程中有任何疑问&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果你觉得这篇文章对你有帮助&#xff0c;记得点赞、收藏&#xff0c;并分享给更多对数据结构感…

蓝桥杯备考:二分答案之路标设置

最大距离&#xff0c;找最小空旷指数值&#xff0c;我们是很容易想到用二分的&#xff0c;我们再看看这个答案有没有二段性 是有这么个二段性的&#xff0c;我们只要二分就行了&#xff0c;但是二分的check函数是有点不好想的&#xff0c;我们枚举空旷值的时候&#xff0c;为了…

回调方法传参汇总

文章目录 0. 引入问题1. 父子组件传值1.1 父传子&#xff1a;props1.2 子传父&#xff1a;$emit1.3 双向绑定&#xff1a;v-model 2. 多个参数传递3. 父组件监听方法传递其他值3.1 $event3.2 箭头方法 4. 子组件传递多个参数&#xff0c;父组件传递本地参数4.1 箭头函数 … 扩…

XSS基础靶场练习

目录 1. 准备靶场 2. PASS 1. Level 1&#xff1a;无过滤 源码&#xff1a; 2. level2&#xff1a;转HTML实体 htmlspecialchars简介&#xff1a; 源码 PASS 3. level3:转HTML深入 源码&#xff1a; PASS 4. level4:过滤<> 源码&#xff1a; PASS: 5. level5:过滤on 源码…

Redis核心机制(一)

目录 Redis的特性 1.速度快 2.以键值对方式进行存储 3.丰富的功能 4.客户端语言多 5.持久化 6.主从复制 7.高可用和分布式 Redis使用场景 Redis核心机制——持久化 RDB bgsave执行流程 ​编辑 AOF AOF重写流程 3.混合持久化&#xff08;RDBAOF&#xff09; Red…

QGroupBox取消勾选时不禁用子控件

默认情况下&#xff0c;QGroupBox取消勾选会自动禁用子控件&#xff0c;如下图所示 那么如何实现取消勾选时不禁用子控件呢&#xff1f; 实现很简单&#xff0c;直接上代码了 connect(ui->groupBox, &QGroupBox::toggled, this, [](bool checked){if (checked false){…

MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!

目录 一、什么是 MyBatis-Plus 自动填充&#xff1f; &#x1f914;二、自动填充的原理 ⚙️三、实际例子&#xff1a;创建时间和更新时间字段自动填充 ⏰四、注意事项 ⚠️五、总结 &#x1f389; &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢…