首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Android环境配置之adb

Android环境配置之adb

作者头像
测试加
发布2022-04-27 15:38:48
发布2022-04-27 15:38:48
1.6K0
举报

前言

最近给一台新的mac机器配置Android自动化测试环境,包含: adb环境、android sdk等。

adb命令主要用途: 查看log日志、查看手机文件、查看内存等。

特此重新记录下adb环境安装和adb常用命令操作。

adb安装

brew安装

代码语言:javascript
复制
install brew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

install adb : brew cask install android-platform-tools

use adb: adb devices

sdk安装

代码语言:javascript
复制
echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile

source ~/.bash_profile

adb工具原理

原理图

当启动 adb 客户端时,客户端首先检查 adb 服务端进程是否运行,如果没有运行,则启动服务端。当服务端启动时,它会绑定到本地的 TCP5037 端口,并且监听从 adb 客户端发来的命令——所有 adb 客户端都使用 5037 端口与 adb 服务端通信。

接下来服务端与所有正在运行的模拟器或手机连接。它通过扫描 5555-5585 之间的奇数号端口来搜索模拟器或手机,一旦发现 adb 守护进程,就通过此端口进行连接。需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号端口用于控制台连接,奇数号端口用于 adb 连接。

adb相关命令

查看设备系统版本

代码语言:javascript
复制
adb shell getprop ro.build.version.release

out:6.0

查看设备中的app是否安装某个app

代码语言:javascript
复制
adb  shell pm list packages com.xueqiu.android

out: package:com.xueqiu.android

等待设备

代码语言:javascript
复制
adb wait-for-device

打印ping

代码语言:javascript
复制
adb shell echo ping

查询app中的权限等信息

代码语言:javascript
复制
adb shell dumpsys package io.appium.settings

out: more app infomation

查询设备中sdk版本号

代码语言:javascript
复制
adb shell getprop ro.build.version.sdk

out:23

启动某个app

包名/启动类

代码语言:javascript
复制
adb  shell am start -W -n io.appium.settings/.Settings -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000'

启动某个app前,先强制关闭

代码语言:javascript
复制
-S是强行关闭app参数 

adb shell am start -W -n com.xueqiu.android/.view.WelcomeActivityAlias -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000

赋予app模拟定位权限

代码语言:javascript
复制
appops set io.appium.settings android\:mock_location allow

安装app

代码语言:javascript
复制
adb install UnicodeIME-debug.apk

获取输入法

代码语言:javascript
复制
adb shell settings get secure default_input_method

out:io.appium.android.ime/.UnicodeIME

设置输入法

代码语言:javascript
复制
adb shell ime enable io.appium.android.ime/.UnicodeIME'

获取设备屏幕尺寸

代码语言:javascript
复制
adb shell wm size

out:Physical size: 480x800

获取设备型号

代码语言:javascript
复制
adb shell getprop ro.product.model

out:Samsung Galaxy S6 - 6.0.0 - API 23 - 1440x2560

查询设备是模拟器还是真机

代码语言:javascript
复制
adb shell getprop ro.product.manufacturer

out:Genymotion

强行停止某个app

代码语言:javascript
复制
adb shell am force-stop com.xueqiu.android

清除某个app数据

代码语言:javascript
复制
adb shell pm clear com.xueqiu.android

把设备转发到本地

代码语言:javascript
复制
adb forward tcp:4724 tcp:4724

把本地文件push到设备上

代码语言:javascript
复制
adb push 本地文件路径/手机设备文件夹路径

push /usr/local/lib/node_modules/appium/node_modules/appium-android-bootstrap/bootstrap/bin/AppiumBootstrap.jar /data/local/tmp/

查看手机设备上进程

代码语言:javascript
复制
adb shell ps

out:
shell     2757  268   698820 59108    ep_poll f731dd75 S com.android.shell
u0_a61    2791  268   1209988 198016    ep_poll f731dd75 S com.xueqiu.android
u0_a61    2844  268   1114452 125092    ep_poll f731dd75 S com.xueqiu.android:pushservice

查询设备上当前窗口信息

代码语言:javascript
复制
adb shell dumpsys window

out:    
Surface: shown=true layer=21015 alpha=1.0 rect=(0.0,0.0) 480.0 x 800.0
  Window #2 Window{b1145d7 u0 com.xueqiu.android/com.xueqiu.android.common.MainActivity}:

模拟设备上事件

代码语言:javascript
复制
input keyevent 3 home键

input keyevent 4 back键

Android Logcat 后台运行

代码语言:javascript
复制
adb logcat -v time  -n 20 -r 10240  -f /sdcard/log/note.log &
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • adb安装
    • brew安装
    • sdk安装
  • adb工具原理
  • adb相关命令
    • 查看设备系统版本
    • 查看设备中的app是否安装某个app
    • 等待设备
    • 打印ping
    • 查询app中的权限等信息
    • 查询设备中sdk版本号
    • 启动某个app
    • 启动某个app前,先强制关闭
    • 赋予app模拟定位权限
    • 安装app
    • 获取输入法
    • 设置输入法
    • 获取设备屏幕尺寸
    • 获取设备型号
    • 查询设备是模拟器还是真机
    • 强行停止某个app
    • 清除某个app数据
    • 把设备转发到本地
    • 把本地文件push到设备上
    • 查看手机设备上进程
    • 查询设备上当前窗口信息
    • 模拟设备上事件
    • Android Logcat 后台运行
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档