精华内容
下载资源
问答
  • adb调试命令

    2019-01-31 16:16:58
    连接Android设备到电脑上,用这个命令检查设备连接状态,有device、offline和没有device三种状态。 1) device:正常运行状态,如下图,可以获取到设备的序列号。如果连接了多个设备,可以根据序列号,使用”-s + ...

    1. adb devices

    连接Android设备到电脑上,用这个命令检查设备连接状态,有device、offline和没有device三种状态。

    1) device:正常运行状态,如下图,可以获取到设备的序列号。如果连接了多个设备,可以根据序列号,使用”-s + 序列号”只对某个设备操作。例如:

    adb -s 2aa1c436 shell df

    adb -s 2aa1c436 install xxx.apk

    2) offline:未连接到 adb 或不响应。

    3) 没有device:未连接模拟器/设备。

     

    2. adb root

    意义:切换adb服务使用对象为root用户。

    常见问题:商用机上adb root命令无效。

    解决方案:这个命令只有工程机(测试机)上有用,对商用机无效。对于商用机,想切换成root用户,必须先root设备,然后在adb shell下使用命令“su”切换成root账户。

     

    3. adb push<pc机上的文件><android设备路径>

    意义:将PC机上的文件拷贝一份到Android设备路径下。注意PC机上文件路径和Android设备路径的路径分隔符可能是不同的。

    示例:

    adb push D:\android\test\test.sh /data/local/tmp/

    常见问题:push文件到设备里某些路径失败,比如/system/, /etc/等路径。

    解决方案:先使用以下两个命令,再用adb push命令。

    adb root

    adb remount

     

    4. adb pull<android设备上的文件><pc机路径>

    意义:将Android设备上的文件拷贝一份到PC机路径下。注意Android设备路径和PC机路径的路径分隔符可能是不同的。

    示例:

    adb pull /data/local/tmp/logcat.txt D:\android\test

    常见问题:没有成功将文件pull出来。这种情况在商用机上出现的比较多。有时候因为pull一个文件夹下所有文件,而其中的某几个文件没有pull出来,不仔细看,可能还发现不了问题。

    解决方案:1)先用adb root命令切换成root用户,再使用adb pull命令;2)如果无法切换成root用户,就请先用以下命令给需要pull的文件或文件夹加上可读的权限。

    adb shell

    chmod 777 <文件>

    chmod 777 <文件夹> -R

     

    5. adb install xx.apk

    意义: 安装xx.apk到设备中,xx.apk前可以加上apk所在路径,注意这个路径是PC机的路径。

    常见问题:安装失败。

    解决方案:安装失败有不同的原因,必须仔细分析有针对性地解决。

     

    6. adb uninstall package

    意义: 卸载package所对应的apk。

    常见问题:不知道apk对应的package是什么。

    解决方案:有很多的方法可以获取到package,这里提供其中的一种,首先打开要卸载的apk,输入adb shell dumpsys window windows | findstr "Current"命令,“/”之前红色区域的字符串就是当前apk的package。

     

    7. adb shell + shell_cmd

    意义: shell_cmd二进制文件存储在模拟器或设备的文件系统中,其路径为 /system/bin/ 和/system/xbin/。adb shell 后面可以直接跟上shell_cmd,也可以按下Enter键后,再输入shell_cmd。

     

    8. adb remount

    意义:remount /system/, /etc/等路径的读写权限,使当前用户有权限读写设备中/system/, /etc/等路径下的文件。使用先必须先用adb root命令。

    常见问题: remount失败。

    解决方案: 如果adb remount 命令提示remount失败,则可以先运行adb disable-verity命令,然后重启设备,最后再使用root和remount命令。

    adb disable-verity

    adb reboot

    adb root

    adb remount

     

    9. adb logcat [option] [filter-specs]

    意义: logcat用于存储系统消息日志,其中包括设备引发错误时的堆叠追踪以及从您的应用使用Log类编写的消息。[option]和[filter-specs]都有有多种设置。

    示例: 最常用的是以下几个。

    1) 查看主要日志缓冲区(默认值)的log,每行log前不包含时间信息,保存到PC机当前路径下main_log.txt文件中。在cmd窗口中输入“start .”(英文半角的点哦) 命令可以快速打开当前路径。

    adb logcat > main_log.txt

    2) 查看主要日志缓冲区(默认值)的log,每行log前包含时间信息,保存到PC机当前路径下main_log.txt文件中。

    adb logcat -v threadtime > main_log.txt

    3) 查看包含无线装置/电话相关消息的缓冲区,每行log前包含时间信息,保存到PC机当前路径下radio_log.txt文件中。

    adb logcat -v threadtime -b radio > radio_log.txt

    4) 查看包含事件相关消息的缓冲区,每行log前包含时间信息,保存到PC机当前路径下events_log.txt文件中。

    adb logcat -v threadtime -b events > events_log.txt

    5) 清除缓存区log

    adb logcat -c

    注意:所有这些logcat命令也可以在shell里面执行,如下所示,先用输入adb shell按下Enter键,然后在输入相关的命令。不过在shell里面输入,”>”重定向后面的路径必须是Android设备中的路径。

    adb shell

    logcat > /data/local/tmp/main_log.txt

    常见问题:log没有保存下来,或者保存下来的log不是想要的log。

    解决方案:1)如上述注意事项中所述,在不在shell中使用logcat命令,其保存的log文件路径是不同的,必须根据实际情况,书写正确的路径。2)路径没有错误,却没有保存下想要的log,原因可能是logcat缓存区log太多,没有及时保存导致。解决方案如下: 先输入logcat -c命令清除缓存区log,再输入logcat相关命令,然后开始测试或复现问题,等测试完毕,再终止logcat抓取窗口。

     

    10. adb kill-server/adb start-server

    意义: 停止adb 服务/启动adb 服务。通常只有在adb devices找不到设备时才会使用,并且是成对使用。

    常见问题:这两个命令都已经执行了,但是adb devices仍找不到设备。

    解决方案:adb devices找不到设备有很多的原因,请参考小编文章列表,根据不同的原因有针对性地解决。

     

    11. adb reboot [bootloader|recovery|]

    意义: adb reboot用于重启设备,adb reboot bootloader用于将设备切换至bootloader状态,adb reboot recovery用于将设备切换至recovery状态。

    常见问题: 切换至bootloader或recovery状态失败。

    解决方案: 想要切换至bootloader或recovery状态,则设备的版本软件中必须包含bootloader或recovery相关的image。因为image软件比较大,有时候为了更快地刷和版本(或者没有编译等其他原因),版本中不包含bootloader或recovery相关的image,就无法切换成功了。

     

    12. adb wait-for-usb-device /adb wait-for-device +其他命令

    意义: 等待设备处于在线状态之后执行其他命令,也就是说等正确连接到设备后立即执行其他命令。旧的adb版本用的是adb wait-for-device命令,新的adb 版本用的是adb wait-for-usb-device命令。

    示例:

    adb wait-for-device shell dmesg

    adb wait-for-usb-device shell dmesg

    如果不加wait-for-device,"adb shell dmesg”命令就会立即执行,这时要是找不到设备,就会直接报错,譬如,设备正在重启中。加了wait-for-device,命令就会一直处于pending状态,直到PC机正确连接上了设备就立即开始执行wait-for-device后续的命令。

     

    13. adb bugreport

    意义:将 dumpsys、dumpstate 和 logcat 数据输出到屏幕,包括进程列表,内存信息,VM信息等等,以用于报告错误。这个命令信息量非常大,执行起来也需要花费很多时间(大约1分钟),对于bug的分析也十分有用。

     

    14. adb version

    意义: 获取adb程序的版本号。

     

    15. adb get-state

    意义: 获取设备连接的状态(offline | bootloader | device),一般自动化测试中会用到这个命令,手动测试无需这个命令。

     

    16. adb get-serialno

    意义: 获取设备的序列号,一般自动化测试中会用到这个命令,手动测试无需这个命令。

     

    17. 更多的命令

    更多的命令请在cmd窗口中,输入adb,按下Enter,获取帮助:adb help

    展开全文
  • adb 调试命令

    千次阅读 2017-03-10 11:45:35
    ADB:Android Debug Bridge。 这里性能调试如下: 性能测试需要进行如下设置: ...如果要让user模式能够进行root操作,需要更改(system/core/adb/adb.c) ...以下命令将设备进入性能模式 将DDR进入

    ADB:Android Debug Bridge。

    这里性能调试如下:

    性能测试需要进行如下设置:

    • 如果要让user模式能够进行root操作,需要更改(system/core/adb/adb.c)
    • 将无用的log信息去掉,#define LOG_NIDEBUG 0
    • 如果调试Web的用户体验,需要wifi已经能够正常工作

    以下命令将设备进入性能模式

    将DDR进入性能模式

    adb shell echo 400000000 > /sys/class/kgsl/kgsl-3d0/gpuclk
    adb shell echo performance > /sys/class/kgsl/kgsl-3d0/devfreq/governor
    adb shell echo performance >/sys/class/devfreq/qcom,cpubw.30/governor(不同的设备可能会有差异)

    读取交互模式cpu频率管理器参数

    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/target_loads
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/boost
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/timer_rate
    adb shell cat /sys/devices/system/cpu/cpufreq/interactive/timer_slack

    禁止内核thermal

    adb shell
    echo 0 > /sys/module/msm_thermal/core_control/enabled

    通过无线adb调试

    1. Connect a USB and verify that Wi-Fi is working on the device.
    – adb tcpip 5555
    – adb shell netcfg
    – <output> wlan0 UP 10.42.118.17/22 0x00001043 f0:25:b7:f5:02:81
    – adb connect 10.42.118.17
    # In Wi-Fi settings, click the Wi-Fi network
    name to get the IP.
    2. Remove the USB and try adb devices.
    3. To end the session:
    – adb disconnect

    GPU性能调试

    将GPU进入性能模式

    adb shell echo 0 > /sys/class/kgsl/kgsl-3d0/bus_split
    adb shell echo performance > /sys/class/kgsl/kgsl-3d0/devfreq/governor
    adb shell echo 1 > /sys/class/kgsl/kgsl-3d0/force_bus_on
    adb shell echo 1 > /sys/class/kgsl/kgsl-3d0/force_rail_on
    adb shell echo 1 > /sys/class/kgsl/kgsl-3d0/force_clk_on
    adb shell echo 1000000 > /sys/class/kgsl/kgsl-3d0/idle_timer

    通过adb查看每秒滚屏数

    1. adb pull /system/build.prop
    
    2. Enable the properties debug.gr.calcfps = 1 and debug.gr.calcfps.period = 1 in the build.prop
    file and save the file.
    adb push build.prop /system/
    adb shell chmod 0644 /system/build.prop
    adb shell sync
    adb shell reboot
    3. Enable the FPS calculation (and display the distribution of frame arrival times) by setting
    debug.gr.calcfps = 2.
    4. Grep for FPS in logcat.

    
    

    检查设备layer的组成和层数

    1. Get the adb shell dumpsys SurfaceFlinger log.
    2. Search for lines similar to those highlighted in the following log:
    numHwLayers=4, flags=00000000
    type | handle | hints | flags | tr | blend | format | source crop | frame name
    ------------+----------+----------+----------+----+-------+----------+---------------------------+---------
    HWC | b71a1610 | 00000000 | 00000004 | 00 | 00100 | 00000002 | [ 160, 25, 480, 480] | [ 0, 25, 320, 480]
    com.android.systemui.ImageWallpaper

    HWC – MDP composition
    GLES – GPU composition
    During transition, the log sometimes shows HWC and GLES, which is Mixed mode composition.

    展开全文
  • ADB调试命令整理

    2018-06-22 11:49:43
    智能机的ADB调试命令整理,覆盖调试范围较广,需要花时间熟悉了解
  • 常用adb调试命令

    2017-11-24 21:57:28
    常用adb调试命令
    常用adb调试命令
    


    1、连接调试设备
    adb connect ip地址   //adb connect 192.168.2.226


    2、显示设备列表
    adb devices


    3、安装apk
    adb install apk路径


    覆盖安装
    adb install -r apk路径


    4、卸载apk包
    adb uninstall apk包名


    5、获取所有的apk包名
    adb shell pm list package -f
    adb shell pm list package -s


    6、列出除了系统应用的第三方应用的包名
    adb shell pm list packages -3


    7、杀掉所有的adb调试设备连接
    adb kill -server


    8、adb shell
    用来进入操作系统,在这里可以输入一些其他的命令来完成相应的操作,完成后
    记得ctrl+c退出


    9、复制文件
    复制一个文件或目录到设备或模拟器上
    adb push <source> <destination></destination></source>


    从设备上复制一个文件目录
    adb pull <source> <destination></destination></source>


    10、获取设备的ID和序列号
    adb get-serialno


    11、查看adb版本
    adb version


    12、判断设备状态
    adb get-state


    13、清除app数据与缓存
    adb shell pm clear


    14、查看日志
    adb logcat  


    15、获取MAC地址
    adb shell cat /sys/class/net/wlan0/address


    16、获取android系统版本
    adb shell getprop ro.build.version.release


     
    17、查看占用内存最高的三个app
    adb shell top -m 3


    18、查看后台service  
    adb shell service list


    19、查看当前内存占用
    adb shell cat /proc/meminfo


    20、打印内核调试日志
    adb shell dmesg


    21、系统日志过滤
    (V\D\I\W\E\F\S)由低到高


    22、查看电池状态
    adb shell dumpsys battery


    23、IMEI
    Android 4.4以下版本: adb shell dumpsys iphonesubinfo


    24、获取MAC地址
    adb shell cat /sys/class/net/wlan0/address




    25、使用monkey进行压力测试;monkey可以生成伪随机用户事件来模拟
    单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试


    adb shell monkey -p com.vincent.julie(包名) -v 500(次数)








    1、下载adb
    2、cmd
    3、进入adb命令
    4、adb connect ip地址
    5、adb logcat >> 1.txt
    展开全文
  • ADB Debugging(adb调试命令) adb devices 输出虚拟机/设备列表。返回虚拟机或设备编码和状态 adb forward 发送socket链接。例如:adb forward tcp:8000 tcp:5037 建立从服务端口8000发送到模拟器/设备5037的连接...

    ADB Debugging(adb调试命令)


    adb devices

    输出虚拟机/设备列表。返回虚拟机或设备编码和状态


    adb forward <local> <remote>

    发送socket链接。例如:adb forward tcp:8000 tcp:5037

    建立从服务端口8000发送到模拟器/设备5037的连接。前提条件:开启允许USB调试设备。

    adb kill-server

    中断adb服务进程。如果服务在运行将关闭该服务。(中断adb.exe进程)




    无线网(Wireless)

    adb connect  <host>[:<port>]

    通过Wi-Fi使用ADB,的操作步骤如下:

    Step_1:通过USB连接设备

    Step_2:使用adb devices验证设备是否连接正常

    Step_3:使用命令“adbtcpip 5555”重启TCP模式下的5555端口

     

    Step_4:查看Andriod设备的IP地址,查看方法是:设置--->关于手机--->状态消息----->IP地址


    Step_5:使用adb connect<host>[:port]命令连接设备


    Step_6:断开USB连接,通过命令"adb devices"任然能看到设备处于连接状态


    注意:确保连接服务<host>Andriod设备一直连接相同的Wi-Fi网络。

    adb usb

    通过usb模式使用adb,与adb connect相对应:


    展开全文
  • ADB调试命令大全

    千次阅读 2016-08-30 14:53:11
    ADB,常用命令调试大全。
  • Genymotion 安装应用后, 当使用 adb 命令的时候报错如下 : adb server is out of date. killing... cannot bind 'tcp:5037' ADB server didn't ACK * failed to start daemon * error: 问题原因 1.调用 adb ...
  • Android蓝牙adb调试命令

    千次阅读 2019-05-17 15:25:24
    注意:此命令只适用于broadcom 系列蓝牙芯片,例如RK903, AP6xxx 系列 1.第一种方式 # echo 1 > /sys/class/rfkill/rfkill0/state //打开蓝牙 # echo 0 > /sys/class/rfkill/rfkill0/state //关闭蓝牙 2.第...
  • Android adb调试命令集合

    千次阅读 2017-09-11 11:11:30
    转自:https://cwgoover.github.io/2016/10/09/android-adb-usage/ ...一些实用的命令 发送广播关闭USB $ adb shell am broadcast -a android.hardware.usb.action.USB_STATE --ez connect
  • 一 adb常用命令 1. 查看设备 adb devices //当前连接的设备, 连接到计算机的android设备或者模拟器将会显示处理 2. 安装软件 卸载软件 adb install xxx.apk //安装软件 adb install -r xxx.apk //重新...
  • Android input 子设备adb 调试命令

    千次阅读 2015-03-03 15:40:21
    adb shell getevent 查看input设备属于哪一个event adb shell getevent dev/input/event1 与input event 对应的信息 root@android:/ # cat/proc/bus/input/devices 查看TP上报的速率: getevent -r /dev/input/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,377
精华内容 12,950
关键字:

adb调试命令