前言
在Android开发过程中,难免会遇到安装APK,或者需要输入文字到手机的情况,一般都是用adb命令来完成。 然鹅在多台设备连接的时候,就得手动去指定设备,比较麻烦。所以就使用Compose for Desktop 开发了一款Android工具箱。
方便开发的同时,也可以学习下如何做一个Compose 应用。
这些是一些已完成和待完成的功能:
- 设备配对(二维码、地址)
- 设备属性查看
- 文件管理
- 设备控制
- Apk安装
- App 管理
- 剪贴板同步
- Activity栈查看
- Apk 签名
下载地址
功能介绍
添加设备
- 通过 IP 添加
- 通过连接码添加
- 通过开发者模式中的扫码添加
信息页和切换设备
- 显示prop信息
- 点击复制prop信息
- 切换选中设备
支持自定义显示信息
文件管理
- 文件查看
- 路径复制
- 文件删除功能
- 文件重命名功能
- 拖拽发送文件
控制
- 文本输入
- 按键
- 打开链接
- 屏幕截取
- 键盘透传
支持自定义Shell命令
APK安装
- 拖拽打开Apk信息
- 安装Apk
应用管理
- 查看已安装应用列表
- 查看和复制APP信息
- 启动、停止、卸载应用
- 导出APK
剪贴板同步
- 获取设备剪贴板
- 发送数据到设备剪贴板
设置页
- 设置APK导出路径
- 设置ADB路径
自定义功能
在config目录下可以通过JSON配置文件去自定义一些功能
信息页属性自定义
配置文件:config/info.json
配置格式:
title显示标题keygetprop 命令所对应的属性名
默认配置:
[
{
"title": "版本",
"key": "ro.build.version.sdk"
},
{
"title": "Android版本",
"key": "ro.system.build.version.release_or_codename"
},
{
"title": "品牌",
"key": "ro.product.product.brand"
},
{
"title": "型号",
"key": "ro.product.model"
},
{
"title": "名称",
"key": "ro.product.name"
},
{
"title": "abis",
"key": "ro.product.cpu.abilist"
}
]
控制页面自定义
配置文件:config/control.json
配置格式:
输入框
-
type类型,常量"input" -
title标题 -
actionshell命令 -
占位符
<input>代表用户输入的内容
{
"title": "输入文本",
"type": "input",
"action": "input text <input>"
}
按钮
type类型,常量"button"title标题actionshell命令
{
"title": "Home键",
"type": "button",
"action": "input keyevent 3"
}
键盘透传
type类型,常量"keyboard"title标题
{
"title": "键盘输入",
"type": "keyboard"
}
屏幕截取
type类型,常量"screenshot"title标题
{
"title": "屏幕截取",
"type": "screenshot"
}
组
type类型,常量"group"title标题spanCount横向最多显示数量children子配置
{
"title": "默认组",
"type": "group",
"spanCount": 4,
"children": [
{
"title": "键盘输入",
"type": "keyboard"
},
{
"title": "屏幕截取",
"type": "screenshot"
}
]
}
默认配置:
[
{
"title": "输入文本",
"type": "input",
"action": "input text <input>"
},
{
"title": "打开链接",
"type": "input",
"action": "am start -W -a android.intent.action.VIEW -d <input>"
},
{
"title": "按键",
"type": "group",
"spanCount": 3,
"children": [
{
"title": "Home键",
"type": "button",
"action": "input keyevent 3"
},
{
"title": "返回键",
"type": "button",
"action": "input keyevent 4"
},
{
"title": "菜单键",
"type": "button",
"action": "input keyevent 82"
},
{
"title": "音量+",
"type": "button",
"action": "input keyevent 24"
},
{
"title": "音量-",
"type": "button",
"action": "input keyevent 25"
},
{
"title": "电源键",
"type": "button",
"action": "input keyevent 26"
}
]
},
{
"title": "其它",
"type": "group",
"spanCount": 4,
"children": [
{
"title": "键盘输入",
"type": "keyboard"
},
{
"title": "屏幕截取",
"type": "screenshot"
}
]
}
]
项目地址
主要技术
- Compose for Desktop :UI框架
- Adb :设备控制
- Json Rpc :远程调用
- Zxing :二维码生成
- Sqlite :数据存储