• adb命令


    Android手机测试环境搭建

    Android SDK概念:
    SDK:(software development kit)软件开发工具包。被软件开发工程师用于为
    特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
    Android SDK 指的是Android专属的软件开发工具包。
    Android SDK的安装与环境变量配置:
    1、下载Android SDK,解压后即可(全英文路径)
    下载地址:http://tools.android-studio.org/index.php/sdk
    2、新建一个环境变量,变量名:ANDROID_HOME,变量值:c:sdk(以你安装目录
    为准,确认里面有tools和add-ons等多个文件夹),点击确认。
    3 、在系统变量path中添加 ; %ANDROID_HOME

    Android SDK概念:
    SDK:(software development kit)软件开发工具包。被软件开发工程师用于为
    特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
    Android SDK 指的是Android专属的软件开发工具包。
    Android SDK的安装与环境变量配置:
    1、下载Android SDK,解压后即可(全英文路径)
    下载地址:http://tools.android-studio.org/index.php/sdk

    点击SDK Manager文件,点击安装默认勾选的文件

    2、新建一个环境变量,变量名:ANDROID_HOME,变量值:c:sdk(以你安装目录
    为准,确认里面有tools和add-ons等多个文件夹),点击确认。
    3 、在系统变量path加 ; % ANDROID_HOME % platform-tools;
    %ANDROID_HOME% ools
    4、Android SDK配置完成,接下来验证配置是否成功。
    5、点击运行——输入cmd——回车——输入adb——回车,出现英文命令提示即正确。

    安装Android模拟器genymotion

    Genymotion模拟器简介
    原生的模拟器启动比较慢,操作起来也不流畅,还会出现莫名的问题。
    Genymotion模拟器完美的解决了上述问题。
    1、Genymotion加载APP的速度比较快,操作起来也很流畅。
    2、Genymotion依赖于virtualBox(著名的开源虚拟机软件,轻巧、好用!),
    就是说Genymotion跟VirtualBox要一起使用(Genymotion调用了VirtualBox的
    接口)。
    3、Genymotion可作为Eclipse、Android Studio的插件使用,很方便。
    Genymotion模拟器安装:
    1、Genymotion官网下载:https://www.genymotion.com/#!/download
    2、安装下载后的软件(genymotion带virtual box版本的软件);
    3、启动Genymotion,并使用自己在Genymotion官网注册的账号密码登陆,下
    载自己所需要的手机型号模拟器;
    4、关联本地的SDK,在genymotion主界面,依次点击settings—>ADB—>Use
    custom Android SDK tools,在Android SDK框中选择你电脑上sdk文件夹路径
    备注:不能启动成功可能原因是win7主题问题,把win7主题还原即可。

    Adb命令的使用

    adb的全称为(Android Debug Bridge)就是调试桥的作用。Adb命令存放在SDK
    的Tools文件夹下,又称为手机和电脑连接的桥梁命令。
    借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:
     快速更新设备或手机模拟器中的代码,如应用或Android 系统升级;
     在设备上运行shell命令;
     管理设备或手机模拟器上的预定端口;
     在设备或手机模拟器上复制或粘贴文件。

    常用的adb命令:
    显示当前运行的全部模拟器: adb devices
    安装应用程序: adb install 应用程序.apk
    覆盖安装应用程序: adb install 应用程序.apk –r
    缷载apk包:adb uninstall apk包的主包名
    对某一模拟器执行命令: adb -s 模拟器编号 命令
    进入手机的超级终端Terminal:adb shell
    向模拟器中写文件(上传): adb push <local> <remote>
    从模拟器中复制文件到本地(下载):adb pull <remote> <local>
    命令行显示Log: adb logcat
    以root权限重启adb:adb root
    备注:在使用adb命令之前,手机要开启usb debug模式(设置->关于手机->版本 连续点击7次,出现开发者工具后点击开启)

    使用adb shell命令时出错,如下图所示:

    问题分析:出现此问题是由于端口占用引起,把占用端口的进程kill掉
    解决方法:
    adb nodaemon server
    netstat -ano | findstr "5037”
    然后去任务管理器关掉相应进程

    命令行显示Log: adb logcat
    adb logcat [选项] [过滤项], 其中 选项 和 过滤项 在 中括号 [] 中, 说明这是可选的。
    -- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志; 如想要输出 "System.out" 标
    签的信息, 就可以使用adb logcat -s System.out 命令
    “-f”选项 : 将日志输出到文件, 默认输出到标准输出流中,该选项后面跟着输入日志的
    文件, 使用adb logcat -f /sdcard/log.txt 命令, 注意这个log文件是输出到手机上,需要
    指定合适的路径。
    "-c"选项 : 清空所有的日志缓存信息;
    "-v"选项 :
    adb logcat -v time :可以啥看日志的输出时间;
    adb logcat -v threadtime :可以啥看日志的输出时间和线程信息;
    adb logcat -v process:格式为“优先级 (进程ID) : 日志信息 "的日志;
    adb logcat -v tag:格式为 " 优先级 / 标签 : 日志信息" 的日志;
    adb logcat -v thread :格式为 "优先级 ( 进程ID : 线程ID) 标签 : 日志内容" 的日志;
    adb logcat -v raw :只输出日志信息, 不附加任何其他信息;
    adb logcat -v long:格式为 “ [ 日期 时间 进程ID : 线程ID 优先级 / 标签] 日志信息 ”
    的日志。

    过滤项解析:
    过滤项格式 : <tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;
     V : Verbose (明细);
     D : Debug (调试);
     I: Info (信息);
     W: Warn (警告);
     E: Error (错误);
     F: Fatal (严重错误);
     S : Silent(Super all output) (最高的优先级, 可能不会记载东西)
    举例:
    1、显示 Error 以上级别的日志:adb logcat *:E
    2、可以同时设置多个过滤器,如:adb logcat WifiHW:D dalvikvm:I *:S
    输出 WifiHW 标签 的 Debug 以上级别 和 dalvikvm 标签的 Info 以上级别的日志
    Logcat还支持过滤固定字符串、使用正则表达式匹配,如下:
    adb logcat | grep -i wifi adb logcat | grep "^..Activity"

    复杂的adb命令:
    命令查看当前运行的包名和Activity,使用它前先要打开待测app:
    adb shell dumpsys window | findstr mCurrentFocus
    查看app相关所有信息,包括action,codepath,version,需要的权限等等信息:
    adb shell dumpsys package <package_name>
    package_name可以通过上面的命令获取,也可以使用:
    Aapt dump badging APK路径 反编译方式获取
    查看app的路径:
    adb shell pm path <package_name>
    启动activity:
    adb shell am start -n <package_name>/.<activity_class_name>

    复杂的adb命令:
    删除与包相关的所有数据,清除数据和缓存:
    adb shell pm clear <package_name>
    查看某个app的进程相关信息:
    adb shell ps | grep <package_name>
    杀掉某个进程,一般用于模拟某个bug复现:
    adb shell kill pidNumber
    查看某一个app的内存占用:
    adb shell dumpsys meminfo <package_name|PID>
    利用adb命令按住按键:
    adb shell input keyevent KEYCODE_POWER
    KEYCODE_POWER为键值

  • 相关阅读:
    Linux性能评测工具之一:gprof篇
    几个源码下载的网站
    linux svn代码回滚命令
    这就是阶层——你根本不知道世界有多残酷
    shell脚本中的数据传递方式
    XGBoost参数调优完全指南(附Python代码)
    机器学习(一) ---- 最优化理论基础
    Docker构建Java web应用服务
    使用Dockerfile创建支持SSH服务的镜像
    使用commit方式构建具有sshd服务的centos镜像
  • 原文地址:https://www.cnblogs.com/joy-field/p/13427394.html
Copyright © 2020-2023  润新知