adb安卓常用命令

 adb start-server       

        开启adb服务

 

adb kill-server              

        终止adb服务

 

adb devices   

        列出所有连接到adb的设备, 包括真机和模拟器

 

adb version                  

        显示adb的版本号

 

adb install <apk file name>    

将指定的app安装到唯一连接到adb的设备上,后边跟的参数为安装包的文件名

 

adb install -r <apk file name>

        安装应用程序, 但是保留原有应用程序的所有数据

 

adb uninstall <package name>

        将包名指定的app从目标设备上卸载,后边跟的参数为应用程序的包名

 

adb uninstall -k <package name>    

将包名指定的app从目标设备上卸载, 但是保留配置文件和缓存

 

adb push <local> <remote>    

将本机的文件或目录拷贝到目标设备的文件系统中

 

adb pull <remote> [<local>]  

将目标设备中的文件或目录拷贝到本机中

 

adb shell 

进入目标设备的Linux Shell环境, 在该环境中可以执行一些Linux命令.如在Linux Shell环境中执行ps可以查看android设备中运行的所有进程.在Linux Shell环境中执行exit可以退出Linux Shell环境

 

adb shell dumpsys activity

列出目标设备上的activity栈(back stack)和任务(task)的信息, 还有其他组件的一些信息和一些关于进程的信息

 

adb shell dumpsys packages

列出一些系统信息和所有应用的信息。这个命令的输出很庞大,在三星nexus上的输出有12000多行。这些信息

都非常详细,包括Features,Activity Resolver Table等。以下是输出的主要信息:

adb shell pm list permissions

         列出目标平台上的所有权限

 

adb shell pm list packages

列出目标设备上安装的所有app的包名

 

adb shell pm list features

        列出目标设备上的所有feature

 

 

使用adb命令启动一个Activity

[plain] view plain copy

    1. <span style="font-family:SimSun;font-size:14px;">adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE  
    2. adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY  
    3. # example  
    4. adb shell am start -n com.growingwiththeweb.example/.MainActivity  
    5. adb shell am start -n com.growingwiththeweb.example/com.growingwiththeweb.example.MainActivity</span>  
     屏幕截图, 并使用perl命令保存截图
    adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

     

    解锁屏幕

    adb shell input keyevent 82

     

     

    注:  所有以"adb shell"开头的命令,都可以先执行adb shell命令进入目标设备的Linux Shell环境, 然后在目标设备的Linux Shell中再执行"adb shell"之后的命令.如adb shell dumpsys activity, 可以先执行adb shell, 然后再Linux Shell中再执行dumpsys activity




    常用记一下

    =========================================

    adb devices
    
     pm list packages -f
    
     adb uninstall com.skype.raider

     

    1. adb devices 显示都有哪些设备连接

     

    2. adb -s emulator-5556 shell {command} 发送指定命令

    3. adb -s emulator-5556 shell 进入shell命令行

    2中我们是每次发送命令都需要指定是哪个设备,这无疑是非常麻烦的。我们可以先通过adb -s {emulator-name} shell 进入指定模拟器的shell。
    然后我们就可以畅快输入命令了: 

    最后使用exit命令退出。 

    error: insufficient permissions for device(解决adb shell问题)

    今天在linux下连接平板usb,试用adb shell时出现error: insufficient permissions for device,

     

    而且我们输入adb devices显示:

     

    adb devices

    List of devices attached 

    ????????????    device

    那么我们怎么解决它呢?

     

    首先在终端查看usb的ID,输入lsusb命令,我们可以看到我们刚插如usb的ID号,如:

     

    ~$ lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 003: ID 0461:4d80 Primax Electronics, Ltd 
    Bus 001 Device 004: ID 1c7a:0801 LighTuning Technology Inc. Fingerprint Reader
    Bus 002 Device 003: ID 5986:0190 Acer, Inc 
    Bus 001 Device 019: ID 0bb4:0c02 High Tech Computer Corp. Dream / ADP1 / G1 / Magic / Tattoo (Debug)
     
    红色的就是我们插入usb的ID号。
    那么我们进入到cd /etc/udev/rules.d/下,新建一个51-android.rules文件(sudo  vim  51-android.rules),在这个文件中写上:
    SUBSYSTEM=="usb", ATTRS{idVendor}==" 0bb4", ATTRS{idProduct}=="0c02",MODE="0666"
    保存,再为51-android.rules加上权限(sudo chmod a+x 51-android.rules).

     

    拔掉usb重新插上就可以了,如:

    xxnan@xxnan-pt:~$ adb devices
    List of devices attached 
    AB100607    device

     

    这样就解决了不能识别USB的问题