展示如何使用 pkg 包进行应用管理操作。
go run main.go -ip <设备IP> -id <安卓云机ID> -cmd list
go run main.go -ip <设备IP> -id <安卓云机ID> -cmd download -pkg <包名> [-o <输出目录>]
| 参数 | 说明 | 示例 |
|---|---|---|
-ip | 设备IP地址 | 10.10.11.3 |
-id | 安卓云机ID | 3992400d18962a021424e22a02ac95bbc2e6cd6b406d49c865389837754f0209 |
-cmd | 命令类型:list 或 download | list |
-pkg | 应用包名(download命令需要) | com.android.chrome |
-o | 输出目录(可选,默认为当前目录) | ./apks |
# 列出应用
go run main.go -ip 10.10.11.3 -id 3992400d18962a021424e22a02ac95bbc2e6cd6b406d49c865389837754f0209 -cmd list
# 下载APK到当前目录
go run main.go -ip 10.10.11.3 -id 3992400d18962a021424e22a02ac95bbc2e6cd6b406d49c865389837754f0209 -cmd download -pkg com.android.chrome
# 下载APK到指定目录
go run main.go -ip 10.10.11.3 -id 3992400d18962a021424e22a02ac95bbc2e6cd6b406d49c865389837754f0209 -cmd download -pkg com.android.chrome -o ./apks
包名 状态 ----------------------------------------------------------------- com.android.chrome 启用 com.tencent.mm 启用 com.gibb.easyclick 禁用 ... 共 156 个包
正在导出 com.android.chrome 的APK... 成功导出 1 个APK文件到 ./apks: [1] /data/app/com.android.chrome/base.apk
package main
import (
"context"
"flag"
"fmt"
"strings"
"atomgit.com/mytsdk/adrctl-go/pkg"
)
func main() {
// 解析命令行参数
ip := flag.String("ip", "", "设备IP地址")
id := flag.String("id", "", "安卓云机ID")
flag.Parse()
// 创建 pkg 客户端
client := pkg.New(*ip, *id)
// 列出用户应用
res, err := client.ListPackage(context.Background(), &pkg.ListPackageReq{
Type: pkg.PackageTypeUser, // 只列出用户应用
})
// 打印结果
for _, p := range res.Packages {
fmt.Printf("%-50s %-10s\n", p.PackageName, status)
}
}
// 导出应用 APK
res, err := client.Export(ctx, &pkg.ExportReq{
PackageName: "com.example.app",
SaveTo: "./apks", // 指定输出目录
})
if err != nil {
fmt.Printf("导出失败: %v\n", err)
return
}
for _, path := range res.APKPaths {
fmt.Printf("APK路径: %s\n", path)
}
如需更多功能,可参考 pkg 包的其他接口:
// 禁用应用
client.SetEnabled(ctx, &pkg.SetEnabledReq{
PackageName: "com.example.app",
Enabled: false,
})
// 清除应用数据
client.ClearData(ctx, &pkg.ClearDataReq{
PackageName: "com.example.app",
})
// 卸载应用
client.Uninstall(ctx, &pkg.UninstallReq{
PackageName: "com.example.app",
})