admin 管理员组

文章数量: 887021

Android 日常开发adb指令记录(不断更新):

注:这里包名均使用com.redsun.phone代替。

一、java -version:

  • 查看java安装版本

二、adb  shell:

  • 查看手机是否连接到PC。

三、将手机中的数据库文件(info.db)复试一份到E盘中:

  • adb pull /data/data/com.redsun.phone/databases/info.db E:/

四、<1>将电脑上的某个.APK文件安装到手机上:

  • adb install apk安装包在电脑上的路径+apk文件名。

       <2>将手机上的某个app卸载。

  • adb uninstall com.redsun.phone

五、在dos中变换默认行的路径的话(比如换到D:\SeeJoPlayer_SourceCode),可以:

  • 1、cd D:\SeeJoPlayer_SourceCode(回车)
  • 2、d:

六、Android app签名的时候需要创建密匙库,步骤:

  • cmd->keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore,然后按照要求输入信息即可。

七、dos下面直接输入adb无反应:

  • 是因为系统PATH没有配置:在系统PATH中添加:D:\adt-bundle-windows-x86-20131030\sdk\platform-tools(假如adb.exe安装在该目录)。然后直接:窗口键+R 输入cmd 然后即可直接输入adb命令即可。

八、adb:

  • 直接查看所有信息。

九、adb devices:

  • 列出所有连接的移动设备。

十、adb start-server:开启adb ;adb kill-server:杀死adb进程。

十一、通过adb无线连接设备:

  • 手机连mac + usb调试打开,输入adb devices 可以看到设备列表.
  • 终端输入:adb tcpip 5555:
  • 拔掉USB连接线,输入:adb connect <手机ip> :5555
  • 如果出现--Connection refused【像华为手机】,
  • 那么需要将红框处,选择为MTP(多媒体传输)【前提是保持USB调试是打开的】,才能正确连接上。
  • 断连指令:adb disconnect <手机ip>:5555

十三、adb reboot:

  • 重启手机。

十四、adb install ***.apk

  • 安装apk包

十五、pwd:

  • 查看当前目录

十六、adb shell am start -n com.redsun.phone/com.redsun.phone.test.MainActivity:

--es name hongri --ei age 18【传参时加--参考】

  • 启动某个安装在手机应用中的某个Activity

十七、
<1>adb shell
<2>pm list package

  • 查看手机中所有APP的包名

十八、
<1>adb shell 
<2>pm list package grep | tencent

  • 筛选查看手机中所有APP的包名

十九、
<1>adb shell 
<2>pm list package -f

  • 查看apk包安装位置

二十、
adb shell
pm list package -f grep | tencent

  • 筛选查看apk包安装位置

二十一、

使用dumpsys命令可以列出Android系统相关的信息和服务状态。配合Linux下的shell命令,如"grep"、 "find"等,可以让dumpsys发挥非常强大的作用。这对性能优化,bug分析是非常有用的。dumpsys支持的命令非常多,这里列举常用的几项如下:


adb shell dumpsys activity activities:

  • 查看当前应用堆栈中Activity的情况。

adb shell dumpsys activity activities >record.txt:

  • 将生成堆栈中Activity的信息log存储到当前目录下的record文件中

adb shell dumpsys activity | grep com.redsun.phone > /Users/hongri/Desktop/dumpsys/dump_activity.txt 

or

adb shell dumpsys activity activities | grep com.redsun.phone > /Users/hongri/Desktop/dumpsys/dump_activity.txt 【堆栈信息看起来更简洁】

  • 仅查看当前应用com.redsun.phone的堆栈中的Activity信息,并将其堆栈log存储至箭头后面的文件中。可以通过在该txt文件查找Running activities查看启动了的各Activity,通过查找TaskRecord查看各任务栈中的Activity。

adb shell dumpsys meminfo

  • 查看内存信息

adb shell dumpsys battery:

  • 查看电量信息

adb shell dumpsys package:

  • 查看包信息

adb shell dumpsys wifi:

  • 查看WiFi信息

adb shell dumpsys procstats:

  • 显示内存状态

二十二、

adb shell am force-stop com.redsun.phone:

  • 杀死当前手机的com.redsun.phone进程的APP

二十三、
<1>adb shell ps:

  • 查看手机中所有的进程

<2>adb shell ps | grep com:

  • 查看手机中包含com包名的进程

<3>adb shell ps | grep com.redsun.phone:

  • 查看手机中包名为com.redsun.phone的进程

二十四(修改手机hosts文件的几种方法)、
方法1:
<1>root手机
<2>在root explorer文件浏览工具中,将system/etc这两级路径都设置成“挂在为读写”
<3>在命令行输入:adb pull /system/etc/hosts
<4>修改hosts文件
<5>adb push hosts /system/etc(个别手机没有完全root,此时可以将该文件 adb push hosts /sdcard 先push到sd卡,然后再从sd卡copy过去)
方法2:
使用root explorer找到system/etc/hosts以“文本编辑器”方式打开编辑即可。

二十五(使获得root的手机获取hosts修改权限)、
adb root 重启adb daemon,使它具有root权限
adb remount 具有读写hosts文件的权限
如果remount不成功,可以重新尝试如下步骤:
1. adb root
2. adb remount
3. adb disable-verity
4. adb reboot
5. adb root
6. adb remount

二十六(查看手机etc文件读取权限及修改读写权限)、
adb shell 
su
cd system
ls -l
d rwx rwx --x中:
第一个rwx表示“用户(user)”,即文件或目录的所有者
第二个rwx表示“同组(group)用户”即与文件属主有相同组ID的所有用户
最后--x表示“其他(others)用户”
r 可读
w 可写
x 可执行

chmod 777 data 可通过该指令修改etc读写权限

--------------查看手机cpu信息-----------------
二十七、
adb shell getprop ro.product.cpu.abi

  • 查看当前手机arm的版本【如arm64-v8a】


二十八、
adb shell “cat /proc/cpuinfo”

  • 查看当前cpu的位数【如包含AArch64,则表示是64位】

二十九、

adb shell dumpsys dropbox --print > /Users/hongri/Desktop/log/redsun.txt

  • 抓取设备中dropbox中的崩溃日志信息 至 上面的目录文件中【可通过查看当前设备的crash信息

三十、

 adb logcat -> logcat.txt 

  • 将AS实时log信息输出至logcat.txt文件中【可从中发掘所需的log信息

三十一、

adb install 六个选项:

-r:[replace existing application]--替换已经存在的应用程序,即强制安装

-t:[allow test package]--允许安装测试包

-d:[allow version code downgrade]--允许降级安装

-s:[install application on sdcard]--把应用安装到sd卡上

-l:[forward lock application]--锁定该应用程序

-g:[grant all runtime permission]--为该应用授予所有运行时的权限 

三十二、

使用adb指令时报错:bash: adb: command not found

情景(一):

第一步:打开Mac终端,切换到用户根目录:

cd ~/

第二步:创建.bash_profile文件(如果该文件存在,此步可省略):

touch .bash_profile

第三步:打开.bash_profile文件:

open .bash_profile

第四步:配置环境变量:

export ANDROID_HOME=/Users/name/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

第五步:使改动生效:

source .bash_profile

情景(二):

有的Mac上面配置完成后,依然会报如下错误:zsh: command not found adb:adb

可以看到差异就是bash与zsh,他们均是shell的一种,且zsh完美兼容bash,并且有比bash更强大的功能,用起来也比bash更优雅。

此解决方式跟bash是类似的,只不过把 .bash_profile 文件改成 .zshrc 文件即可。

三十三、

adb shell pm uninstall -k --user 0 包名:

  • 删除系统应用

adb shell pm list packages:

  • 查看手机上应用包名

adb shell pm list packages -f:

  • 查看手机上apk文件的安装位置

adb shell pm list permissions -d -g:

  • 查看危险权限

adb shell ps 或者 adb shell ps | grep 包名:

  • 查看进程信息

adb shell am force-stop 包名:

  • 强行关闭进程

adb shell pm clear 包名:

  • 停止APP进程,并且清除这个APP进程产生的所有数据,相当于reset

三十四、

adb shell getprop ro.product.cpu.abi:

  • 查看当前手机CPU类型

adb shell ps | grep zygote:

  • 查看系统的zygote进程【64位系统中会同时存在两个zygote进程---zygote和zygote64,分别对应32位和64位应用】

adb shell ps|grep 687【其中687是当前zygote64进程对应的进程id】:

  • 查看哪些app是64位应用
     

三十五、

adb shell am start -a android.intent.action.CALL -d tel:10086:

  • 拨打电话

adb shell am start -a android.intent.action.VIEW -d http://www.sohu:

  • 打开网站

adb shell am start -a android.intent.action.VIEW -d "路由地址"

  • deeplink唤端

adb shell am start -a android.intent.action.MUSIC_PLAYER:

  • 打开音乐播放器

adb shell am kill com.redsun.phone:

  • 杀死指定后台进程

adb shell am kill-all:

  • 杀死所有后台进程

adb shell am force-stop:

  • 强制杀死进程

adb shell dumpheap 18189 > /Users/zhongyao/Desktop/process:

  • 进程pid的堆信息输出到文件中


Intent常用参数:
-a <ACTION>: 指定Intent action, 实现原理Intent.setAction();
-n <COMPONENT>: 指定组件名,格式为{包名}/.{主Activity名},实现原理Intent.setComponent();
-d <DATA_URI>: 指定Intent data URI
-t <MIME_TYPE>: 指定Intent MIME Type
-c <CATEGORY> [-c <CATEGORY>] ...]:指定Intent category,实现原理Intent.addCategory()
-p <PACKAGE>: 指定包名,实现原理Intent.setPackage();
-f <FLAGS>: 添加flags,实现原理Intent.setFlags(int ),紧接着的参数必须是int型;

举例:
am start -a android.intent.action.VIEW
am start -n com.gityuan.app/.MainActivity
am start -d content://contacts/people/1
am start -t image/png
am start -c android.intent.category.APP_CONTACTS


adb shell am startservice com.hongri.recyclerview/com.hongri.recyclerview.service.MyService:

  • 启动一个Service

adb shell am stopservice com.hongri.recyclerview/com.hongri.recyclerview.service.MyService:

  • 停止一个Service


adb shell am broadcast com.hongri.recyclerview/com.hongri.recyclerview.broadcast.MyBroadcast:

  • 发送一个广播

三十六、

Android Studio调试时出现:debug info can be unavailable.Please close other application using ADB: Monitor, DDMS, Eclipse 弹框。

修复指令adb usb

三十七、

安装apk时,报错adb: more than one device/emulator:

解决方案:

1、输入:adb devices 查看设备

2、输入:adb -s [设备名] install -r [apk包绝对路径] 即可


 

 

参考:

am命令用法

Android Debug Bridge (adb)

Android 调试桥(adb)【中文】

ADB 操作命令详解及用法大全

本文标签: 指令 常用 Android ADB