使用droidrun库实现AI控制安卓手机

使用droidrun库实现AI控制安卓手机


介绍

DroidRun 是一个框架,通过LLM代理控制 Android 设备。它允许您使用自然语言命令自动化 Android 设备交互。

安装环境

安装源码依赖

git clone https://github.com/droidrun/droidrun.git
cd droidrun
conda create --name droidrun python=3.11 -y
conda activate droidrun
pip install -e .

安装 ADB

  • Install ADB

    • macOS:

    • brew install android-platform-tools
      
    • Windows: 下载 Android SDK Platform Tools 平台工具并解压 ZIP 文件

  • 验证安装

    • (droidrun) ➜  droidrun git:(main) adb version
      Android Debug Bridge version 1.0.41
      Version 35.0.2-12147458
      Installed as /opt/homebrew/bin/adb
      Running on Darwin 24.4.0 (arm64)
      (droidrun) ➜  droidrun git:(main)
      

安装 DroidRun Portal 应用

  • 下载地址
安装到手机

这里我使用的安卓虚拟机

droidrun setup --path=/Users/hejh/Desktop/droidrun-portal-v0.1.0.apk

(droidrun) ➜  droidrun git:(main) ✗ droidrun devices
Found 1 connected device(s):• emulator-5554
(droidrun) ➜  droidrun git:(main) ✗ droidrun setup --path=/Users/hejh/Desktop/droidrun-portal-v0.1.0.apk
Using device: emulator-5554
Set DROIDRUN_DEVICE_SERIAL to: emulator-5554
Step 1/2: Installing APK: /Users/hejh/Desktop/droidrun-portal-v0.1.0.apk
Installation successful!
Step 2/2: Enabling accessibility service
Accessibility service enabled successfully!Setup complete! The DroidRun Portal is now installed and ready to use.

image-20250418145922350

image-20250418153347906

设置 API 密钥

  • 项目根目录创建一个 .env 文件或设置环境变量
# Choose at least one of these based on your preferred provider
export OPENAI_API_KEY="your_openai_api_key_here"
export ANTHROPIC_API_KEY="your_anthropic_api_key_here"
export GEMINI_API_KEY="your_gemini_api_key_here"

可以只设置OPENAI_API_KEY

验证设置

# Should list your connected device and show portal status
droidrun status

image-20250418153627098

运行Demo

  • droidrun "打开设置" --provider openai --model gpt-4.1-mini
    

image-20250418154853407

  • droidrun "打开Chrome,访问 www.baidu.com, 然后搜索 Weather" --provider openai --model gpt-4o
    

image-20250418162538378

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

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

相关文章

知识库建设全流程指南(AI时代优化版)

知识库建设全流程指南(AI时代优化版) ​​一、知识库建设的战略定位​​ ​​核心价值锚点​​ ​​AI时代基建​​:知识库是GEO优化的核心载体,决定内容被AI引用的概率权重​​动态护城河​​:结构化知识体系可抵御算…

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(五级)真题

青少年软件编程(Python)等级考试试卷(五级) 分数:100 题数:38 答案解析:https://blog.csdn.net/qq_33897084/article/details/147341437 一、单选题(共25题,共50分) 1. 以下哪个选…

基于RRT的优化器:一种基于快速探索随机树算法的新型元启发式算法

受机器人路径规划中常用的快速探索随机树(RRT)算法的搜索机制的启发,我们提出了一种新颖的元启发式算法,称为基于RRT的优化器(RRTO)。这是首次将RRT算法的概念与元启发式算法相结合。RRTO的关键创新是其三种…

进阶篇|CAN FD 与性能优化

引言 1. CAN vs. CAN FD 对比 2. CAN FD 帧结构详解

【随身WiFi】随身WiFi Debian系统优化教程

0.操作前必看 本教程基于Debian系统进行优化,有些操作对随身WiFi来说可能会带来负优化,根据需要选择。 所有操作需要在root用户环境下运行,否则都要加sudo 随身wifi Debian系统,可以去某安的随声WiFi模块自行搜索刷机 点赞&am…

【Pandas】pandas DataFrame where

Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法DataFrame.loc用于基于标签(行标签和列标签&#…

C++代码优化

前段时间写了一些代码&#xff0c;但是在运算过程中发现有些代码可以进行改进以提高运行效率&#xff0c;尤其是与PCL相关的部分&#xff0c;可以进行大幅度提高&#xff0e;特意在此进行记录&#xff0c;分享给大家&#xff0c;也供自己查看&#xff0e; pcl::PointCloud< …

RAG-分块策略

分块策略在检索增强生成&#xff08;RAG&#xff09;方法中起着至关重要的作用&#xff0c;它使文档能够被划分为可管理的部分&#xff0c;同时保持上下文。每种方法都有其特定的优势&#xff0c;适用于特定的用例。将大型数据文件拆分为更易于管理的段是提高LLM应用效率的最关…

Linux网络编程 深入解析TFTP协议:基于UDP的文件传输实战

知识点1【TFTP的概述】 学习通信的基本&#xff1a;通信协议&#xff08;具体发送上面样的报文&#xff09;、通信流程&#xff08;按照什么步骤发送&#xff09; 1、TFTP的概述 tftp&#xff1a;简单文件传输协议&#xff0c;**基于UDP&#xff0c;**不进行用户有效性验证 …

「数据可视化 D3系列」入门第十一章:力导向图深度解析与实现

D3.js 力导向图深度解析与实现 力导向图核心概念 力导向图是一种通过物理模拟来展示复杂关系网络的图表类型&#xff0c;特别适合表现社交网络、知识图谱、系统拓扑等关系型数据。其核心原理是通过模拟粒子间的物理作用力&#xff08;电荷斥力、弹簧引力等&#xff09;自动计…

音频格式转换

1. 下载ffmpeg https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-7.1.1-full_build.7z 2. 配置ffmpeg环境变量 3.安装pydub pip install pydub 4.编写转化工具代码 from pydub import AudioSegment def convertM4aToWav(m4a,wav):sound AudioSegment.from_file(m4a, f…

基于spring boot 集成 deepseek 流式输出 的vue3使用指南

本文使用deepseek API接口流式输出的文章。 环境要求 jdk17 spring boot 3.4 代码如下: package com.example.controller;import jakarta.annotation.PostConstruct; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.mes…

微博辐射源和干扰机

微波辐射源和干扰机是电子战和通信领域中的两个重要概念&#xff0c;它们在军事、民用及科研中具有广泛应用。以下是两者的详细解析及其相互关系&#xff1a; ‌1. 微波辐射源‌ ‌定义‌&#xff1a; 微波辐射源是指能够主动发射微波&#xff08;频率范围通常为 ‌300 MHz&…

2025年4月16日华为留学生笔试第三题300分

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 智慧城市网络优化 问题描述 K小姐是一家智慧城市服务提供商的网络架构师。她负责规划城市边缘计算节点的布局,以提供更快速、稳定的网络服务。 城市内有 n n

多线程编程的简单案例——单例模式[多线程编程篇(3)]

目录 前言 1.wati() 和 notify() wait() 和 notify() 的产生原因 如何使用wait()和notify()? 案例一:单例模式 饿汉式写法: 懒汉式写法 对于它的优化 再次优化 结尾 前言 如何简单的去使用jconsloe 查看线程 (多线程编程篇1)_eclipse查看线程-CSDN博客 浅谈Thread类…

pytorch基本操作2

torch.clamp 主要用于对张量中的元素进行截断&#xff08;clamping&#xff09;&#xff0c;将其限制在一个指定的区间范围内。 函数定义 torch.clamp(input, minNone, maxNone) → Tensor 参数说明 input 类型&#xff1a;Tensor 需要进行截断操作的输入张…

一次制作参考网杂志的阅读书源的实操经验总结(附书源)

文章目录 一、背景介绍二、书源文件三、详解制作书源&#xff08;一&#xff09;打开Web服务&#xff08;二&#xff09;参考网结构解释&#xff08;三&#xff09;阅读书源 基础&#xff08;四&#xff09;阅读书源 发现&#xff08;五&#xff09;阅读书源 详细&#xff08;六…

并发设计模式实战系列(2):领导者/追随者模式

&#x1f31f; ​大家好&#xff0c;我是摘星&#xff01;​ &#x1f31f; 今天为大家带来的是并发设计模式实战系列&#xff0c;第二章领导者/追随者&#xff08;Leader/Followers&#xff09;模式&#xff0c;废话不多说直接开始~ 目录 领导者/追随者&#xff08;Leader/…

自求导实现线性回归与PyTorch张量详解

目录 前言一、自求导的方法实现线性回归1.1自求导的方法实现线性回归的理论讲解1.1.1 线性回归是什么&#xff1f;1.1.2线性回归方程是什么&#xff1f;1.1.3散点输入1.2参数初始化1.2.1 参数与超参数1.2.1.1 参数定义1.2.1.2 参数内容1.2.1.3 超参数定义1.2.1.4 超参数内容1.…

2025年机电一体化、机器人与人工智能国际学术会议(MRAI 2025)

重要信息 时间&#xff1a;2025年4月25日-27日 地点&#xff1a;中国济南 官网&#xff1a;http://www.icmrai.org 征稿主题 机电一体化机器人人工智能 传感器和执行器 3D打印技术 智能控制 运动控制 光电系统 光机电一体化 类人机器人 人机界面 先进的运动控制 集成制造系…