Giter Club home page Giter Club logo

awesome-adb's Issues

install apk 章节的一些 补充&修正

  • 参数 -l 的中文/英文的含义 和命令里的解释不一样
 install [-lrtsdg] PACKAGE
 install-multiple [-lrtsdpg] PACKAGE...
     push package(s) to the device and install them
     -l: forward lock application
     -r: replace existing application
     -t: allow test packages
     -s: install application on sdcard
     -d: allow version code downgrade (debuggable packages only)
     -p: partial application install (install-multiple only)
     -g: grant all runtime permissions

友情提醒:在8.0开始 如果继续使用 -l 参数会抛该异常java.lang.IllegalArgumentException: New installs into ASEC containers no longer supported

前言

Table of Contents 前的部分

无线连接命令

谢谢这么全的指引!

我在参考无线连接(需要root权限)一节指引中发现下面步骤有缺失

  1. 打开 Android 设备上的终端模拟器,在里面依次运行命令:
su
setprop service.adb.tcp.port 5555

设置端口后还需要重启adbd服务

stop adbd
start adbd

adb 模拟发送广播

使用adb 模拟广播发送的,希望写的详细点,你举得例子看不明白

关于启动service的问题

在终端里 adb shell am startservice 启动服务,在我的service开启了线程,发现没有等待我service执行完毕,终端就停止了(可以执行下一条指令),有什么方法保持同步或者监听service stop了

INSTALL_FAILED_UPDATE_INCOMPATIBLE解决方案

在手机端使用系统自带的卸载功能卸载某app后,再使用adb命令进行安装,弹出以下错误:
INSTALL_FAILED_UPDATE_INCOMPATIBLE或者INSTALL_FAILED_ALREADY_EXISTS。

可以这样解决:
adb uninstall packagename

然后再安装

todo

  • adb shell uiautomator
  • 获取实时截屏
  • adb shell 获得点击屏幕的位置坐标 参考 这里
  • 举例 adb(d) 获取 root 权限后能干哪些普通权限干不了的事情
  • 使用 adb 拍照 - 参考 Take a Photo via adb
  • adb backup / restore
  • 调研是否能用 adb 让 Android 通过 USB 上网
  • adb shell am monitor
  • 更改设置
  • 查看 Service
  • USB 连接相关
  • 无线连接
  • 调起 Activity
  • 调起 Service
  • 发送广播
  • 查看/过滤日志
  • 显示屏参数输出解析
  • 重新挂载 system 分区为可写
  • 刷机相关的命令
  • adb reboot
  • adb root
  • 更改 adb 运行端口
  • 修改系统时间
  • 查看 WiFi 密码
  • 查看 Mac 地址
  • 点亮/熄灭/解锁屏幕(adb shell input 的各种用法)
  • 查看 adb 版本

adb install更详细的用法

写的稍微有点乱,lz自己整理下。

adb install 1.0.36会出现安装进度。

adb install的过程:

  1. push文件到/data/local/tmp
  2. 调用pm install安装软件

缺点,目前的adb install不会删除到残留在/data/local/tmp下的安装包

手动安装方法

  1. adb push some.apk /data/local/tmp/
  2. adb shell pm install /data/local/tmp/some.apk
  3. 清理 adb shell rm /data/local/tmp/some.apk

BTW: adb在mac上还有更好的实现 https://github.com/facebook/fb-adb

adb的无线连接的前提

刚看了另一个issue说 5.0以下的设备可以直接adb connect,但是在5.0以上不太一样,需要设备上执行过setprop service.adb.tcp.port 5555 之后重启adbd然后PC端才可以连接

新建一个模拟器,一直 unauthorized

com.android.ddmlib.AdbCommandRejectedException: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
Error while Installing APK

速度问题

我测试了一下,点击屏幕用时1s左右,截图就需要4s,感觉速度太慢,一些实时性的游戏就适应不了,adb能不能再快一点呢?

wm 命令设置分辨率和密度

楼主提了adb shell wm 查看当前的分辨率和密度,居然没提设置,超级有用的一条命令。
adb shell wm size 480x854 临时设置屏幕尺寸
adb shell wm density 200 临时设置屏幕密度
adb shell wm overscan 0,200,100,0 缩小屏幕
恢复默认用 reset 参数

添加手机图片到相册

参考 https://blog.csdn.net/u011014032/article/details/46331687

ADB直接传图片到手机上,手机相册是看不到的。因为安卓有个广播机制,传入图片后还需要通知这个广播机制才能在图库里查看到传入的图片。

adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///storage/sdcard0/picture/test.jpg 

其中/storage/sdcard0/picture/test.jpg就是该图片的路径

7.0上截图的问题

不是文档的bug,就是讨论一下。

在三星S6,Android 7.0上,直接
adb shell screencap -p | sed "s/\r$//" > sc.png
会失败,文件可以创建,但是打不开图片,文件大小也是有的。
先adb shell screencap -p /sdcard/sc.png,再adb pull /sdcard/sc.png就没问题。

分享一下自己的经验----多个本地机器用adb同时连接同一个Android设备

名词:
adbd server: Android设备上运行的adbd程序,即adb服务端
adb server: 本地运行的adb server,即adb客户端创建的server

===多个本地机器用adb同时连接同一个Android设备
需要使用adb无线连接(高版本可以不需要,见下)

低版本Android(Android5.0以下,不包含)可以直接使用adb connect命令连接,高版本Android不行,原因见下。

高版本adbd(Android5.0以上)只支持一个adb server,再创建adb server(如adb -P 5038 start-server),然后adb -P 5038 connect ... ,再使用 adb -P 5038 devices ,会显示设备为offline状态。 如果要实现多adb客户端,只能共用adb server

高版本adb支持 -H -P参数,从而支持连接到远程的adb server。 -H 参数可以指定目标adb server的ip地址。可以使用 本地端口映射工具(如netsh) 将第一个机器的adb server监听的地址如127.0.0.1:5037,映射到0.0.0.0:5038供外网访问。

netsh interface portproxy add v4tov4 listenport=8001 connectport=80 connectaddress=127.0.0.1

安装 adbd Insecure只有一个弹框,点击后闪退

安装 adbd Insecure后进入,弹框“ adbd Insecure SuperUser access is needed,but could not be acquired.Are you rooted and did you give permission?” 然后只有“OK”可以点,点“OK”后就闪退了。而且下了root大师,也一键root失败,该怎么解决?

补充1个,新增1个(不知道是否实用)

根据 “查看前台activity”那一节,使用的命令 是 linux下的,这里还有一个也是类似的,使用:

C:\Users\Edward\Desktop> adb -s Baytrail26AB2111 shell dumpsys activity package com.tencent.mm

在输出的信息 下拉找到这个位置:

·······
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)                                                                          
  Stack #1:                                                                                                                        
    Task id #8                                                                                                                     
      TaskRecord{22b6d760 #8 A=com.tencent.mm U=0 sz=1}                                                                            
      Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.tencent.mm/.ui.Launcher
UI }                                                                                                                               
        Hist #0: ActivityRecord{224794a0 u0 com.tencent.mm/.ui.LauncherUI t8}                                                      
          Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.tencent.mm/.ui.Laun
cherUI bnds=[129,163][309,363] }                                                                                                   
          ProcessRecord{2250b8e0 5300:com.tencent.mm/u0a188}                                                                       

    Running activities (most recent first):                                                                                        
      TaskRecord{22b6d760 #8 A=com.tencent.mm U=0 sz=1}                                                                            
        Run #3: ActivityRecord{224794a0 u0 com.tencent.mm/.ui.LauncherUI t8}                                                       

    mResumedActivity: ActivityRecord{224794a0 u0 com.tencent.mm/.ui.LauncherUI t8}                                                 

  mFocusedActivity: ActivityRecord{224794a0 u0 com.tencent.mm/.ui.LauncherUI t8}                                                   

mFocusedActivity 就是 当前展示的activity

新增:受到 获取mac 地址那条命令启发,比如每次要想查看 ip地址 都要进入设置里面 查看 ,这里可以使用命令:

C:\Users\Edward\Desktop> adb -s Baytrail26AB2111 shell netcfg
lo       UP                                   127.0.0.1/8   0x00000049 00:00:00:00:00:00
sit0     DOWN                                   0.0.0.0/0   0x00000080 00:00:00:00:00:00
p2p0     UP                                     0.0.0.0/0   0x00001003 02:09:4c:11:27:e5
wlan0    UP                                 192.110.1.4/24  0x00001043 00:09:4c:11:27:e5
rmnet2   DOWN                                   0.0.0.0/0   0x00000000 1e:f9:44:33:fc:5f
rmnet1   DOWN                                   0.0.0.0/0   0x00000000 5e:e0:a8:e2:bd:d4
rmnet0   DOWN                                   0.0.0.0/0   0x00000000 9e:5f:16:47:34:75

其中wlan0 就是 设备通过wifi 连接的ip地址
或者使用:

C:\Users\Edward\Desktop> adb -s Baytrail26AB2111 shell ifconfig wlan0
wlan0: ip 192.110.1.4 mask 255.255.255.0 flags [up broadcast running multicast]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.