https://blog.csdn.net/Z_HUALIN/article/details/77878609

设置adb环境变量
其实就是将adb.exe的路径放到Path中,目的是cmd直接可以使用adb命令 
比如我的adb.exe路径G:\tools\adt-bundle\sdk\platform-tools\adb.exe 
我的电脑》高级》设置》环境变量》Path》增加G:\tools\adt-bundle\sdk\platform-tools 
(注意不要adb.exe)

检测环境变量
打开cmd窗口,输入adb看效果 
如果出现一堆adb信息说明配置成功 
如果出现’adb’ is not recognized as an internal or external command

进入shell
adb shell 
如果有多个设备怎么办? 
adb devices查看你的设备; 
adb -s xiaomi shell:-s命令表示选择设备,这里是选择xiaomi设备进shell

ls查看文件
ls -l /system/app/Demo.apk 
rwxr-xr-x root root 48550 2016-02-22 21:55 CertificateInstallerProviders.apk 
Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。 
对rwxr-xr-x 的解读: 
rwx(Owner)r-x(Group)r-x(Other) 
这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。 
命令中r=4,w=2,x=1,比如 
chmod 644 system/app/Demo.apk命令执行以后,查看这个文件发现权限被修改了 
ls -l /system/app/Demo.apk 
-rw-r–r– root root 48550 2016-02-22 21:55 Demo.apk(将这个apk放在了system下面,而且还让它具有root权限了)

ls -a 列出当前目录下的所有文件

cd切换路径
cd /mnt/sdcard 切换到内存卡

mount挂载
mount -o remount,rw /system 将/system目录挂载,设置为可以读写 
实例: 
127|shell@android:/mnt/sdcard $ mount -o remount,rw /system 
mount -o remount,rw /system 
mount: Operation not permitted 
如果出现mount: Operation not permitted说明没有root权限

su获取ROOT权限
前提是你的手机已经root了 
su命令表示切换ROOT用户下运行(就是说你有了root权限啦) 
下面先获取root,获取root成功的时候$变成了#

255|shell@android:/mnt/sdcard $ su 
su 
root@android:/storage/sdcard0 # mount -o remount,rw /system 
mount -o remount,rw /system 
此时在执行挂载就可以成功

注意:$表示普通权限用户;#表示ROOT权限用户。

cp复制文件
cp -f /sdcard/SDKLongRrs.apk /system/app/SDKLongRrs.apk## 
如果 cp: not found,说明该手机中cp命令不存在,换cat复制试试 
127|root@android:/storage/sdcard0 # cat /sdcard/SDKLongRrs.apk> /system/app/SDKLongRrs.apk 
rs.apk> /system/app/SDKLongRrs.apk < 
右箭头>指明拷贝的方向哈

获取md5值
md5 /system/app/SDKLongRrs.apk 
获取一个目录下所有文件的md5 
md5 /system/app/*

chmod修改文件权限
让apk变成可以安装的 
chmod 644 /system/app/SDKLongRrs.apk

pm安装apk卸载应用
pm install -r /system/app/SDKLongRrs.apk 
pm uninstall com.baidu.map.location

cmd安装apk卸载应用
adb install C:\Users\Administrator\Desktop\Root.apk 
这个将电脑桌面的Root.apk安装到手机上 
有可能不成功,直接看信息,对照英文找原因,比如小米的需要点击允许安装,在比如空间不足,在比如应用已经存在手机上

adb uninstall com.baidu.map.location(你需要知道应用的包名哈)

启动应用
(1)启动Activity 
am start -n com.googleplayapp.storerootsuaction/.MainActivity( 你得知道对应的界面的Activity路径以及包名哈)

adb shell am start -n com.test.provider/.MainActivity
1
2
(2)启动service

<service
android:name=".MyService"
android:description="@string/Desciption"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.nandhan.myservice" />
</intent-filter>
</service>
1
2
3
4
5
6
7
8
9
adb shell am startservice com.nandhan.myservice/.MyService

查看正在运行的 Services
adb shell dumpsys activity services [<packagename>]
包名是必须的、不需要写完整的包名、支持模糊匹配
例如adb shell dumpsys activity services com.linux.example
1
2
3
查看正在运行的 activity
adb shell dumpsys activity [<packagename>]
包名是必须的、不需要写完整的包名、支持模糊匹配
例如adb shell dumpsys activity com.linux.example
1
2
3

clear 清除应用数据
pm clear com.googleplayapp.storerootsuaction

cmd下直接使用adb shell命令
如果不进入shell的,如何执行以上命令 
cmd下面直接使用adb shell 后面跟上对应的命令就好 
比如清除应用数据 
adb shell pm clear com.googleplayapp.storerootsuaction

电脑输入文字到手机
比如手机要上百度,手机打开浏览器,点击地址栏,输入法切换到英文,cmd命令

adb shell input text "www.baidu.com"
1
你会看到手机浏览器的网址变成百度了

文件传输
电脑复制文件到手机 
方法1:cmd下面使用push命令 
adb push “C:\Users\Administrator\Downloads\Root.apk” /mnt/sdcard/goodRoot/ 
将电脑下载里面的Root.apk复制到手机sdcard的goodRoot文件夹下面 
方法2:直接使用eclipse里面的File Explorer(对android程序员而言的哈) 
复制手机文件到电脑 
adb pull /sdcard/packages.xml C:\Users\linux\Desktop\packages.xml

快速获取文件路径
打开cmd,将文件拖进来,你就可以看到文件的路径哈

eclipse中File Explorer的使用
手机调试模式连接电脑,使用File Explorer可以查看手机文件; 
root以后的手机可以查看data下面的文件 
如果已经root,但是data打不开,使用以下命令 
cmd下面 
adb shell 
shell@android:/ $ su root 
chmod -R 755 /data 
(R必须大写,linux命令区分大小写的,cmd命令不区分大小写,shell命令是一种linux命令) 
点击这里查看chmod 755的含义

rm 删除命令
rm -r /mnt/sdcard/AppFolder/a.mp3 移除a.mp3文件 
删除文件夹的时候需要加上-r参数 
rm -r /mnt/sdcard/AppFolder

关闭程序
adb shell am force-stop 包名

一次卸载多个应用
adb uninstall com.android.a
adb uninstall com.android.b
adb uninstall com.android.c
adb uninstall com.android.d
adb uninstall com.android.e
1
2
3
4
5
将这多条命令写成一个.bat文件,直接点击bat就可以卸载多个应用了。

reboot重启手机
adb reboot 重启 
adb reboot recovery 重启进入recovery模式

cat查看文件
cat error.txt 这个命令可以查看error.txt文件的内容

批量执行多条adb shell命令
adb命令带参数,cmd下面带上参数,先获取su,然后做其他事 
演示在cmd下面可以直接使用su权限来删除/system/bin/testa文件和/system/xbin/testb 
adb shell “su -c ‘rm -r -f /system/bin/testa’” 
adb shell “su -c ‘rm -r -f /system/xbin/testb’” 
如果是直接一条条执行shell命令将是下面的4条命令 
adb shell 
su 
rm -r -f /system/bin/testa 
rm -r -f /system/xbin/testb 
如何批量执行多条命令呢 
写一个.bat文件,文件内容如下: 
adb shell “su -c ‘rm -r -f /system/bin/testa’” 
adb shell “su -c ‘rm -r -f /system/xbin/testb’” 
pause 
保存为bat文件,直接点击执行.(windows系统下)。 
(pause表示不关闭cmd窗口,这样就可以看到执行的结果了)

查看进程加载的库
可以根据进程id,查看进程加载了哪些库,cat /proc/pid/maps

kill 干掉进程
adb shell am force-stop 
作用:强制关闭一个应用程序 
举例:adb shell am force-stop com.lt.test 
adb shell am force-stop比使用 kill -9 要方便 
参考http://blog.sina.com.cn/s/blog_6294abe70101275q.html 
ps可以查看到进程的pid 
kill -s 9 pid干掉指定pid的进程 
批量干掉进程 
busybox pkill -9 父进程 
ps 
USER PID PPID VSIZE RSS WCHAN PC NAME 
u0_a145 10608 134 292960 26816 ffffffff 4019ca70 S com.ex.thre 
u0_a146 10755 134 302420 32152 ffffffff 4019ca70 S com.ex.two 
使用kill -s 9 134,就可以干掉 PID =134. PID =10608. PID =10755三个进程

查看内存信息
看手机内存信息cat /proc/meminfo 
查看应用的内存信息 dumpsys meminfo 应用包名

查看应用是否安装
查看应用的安装路径 pm path 应用包名 
获取手机上已经安装的所有的程序 pm list packages

过滤grep 和findstr
引用块内容

在windows上直接使用findstr来过滤你想要的信息

adb shell ps|findstr baidu
1
这个命令找出手机上正在运行并且这个名字包含baidu的进程

//下面的写法也对
adb shell ps baidu
adb shell ps|findstr -i baidu
1
2
3
引用块内容

对应的android或者linux中的shell命令是grep

ps|gerp baidu
1
引用块内容

提示 :有的手机上没有grep命令,这时候可以采用findstr;或者往手机里放一个busybox文件,然后使用busybox grep命令,效果一样

查看运行的程序
查看手机正在运行的程序 ps 
查看自己的程序是否在运行 ps | grep 应用包名 
如果没有grep命令,可以放置一个busybox工具到手机 
查看360对应的程序是否在运行 ps | busybox grep m.qihoo*

删除多个文件
cd dir 
rm * 删除dir中所有文件

adb获取手机参数
adb获取手机所有参数参考这个 
adb shell getprop 
adb获取iccid 
service call iphonesubinfo 4(需要权限android.permission.READ_PHONE_STATE) 
adb获取imei 
adb -d shell dumpsys iphonesubinfo 
adb获取androidid 
androidid藏在这里[net.hostname]: [android-b33f3ac550112627] 
命令:getprop net.hostname 
adb获取serialno 
命令:getprop ro.boot.serialno或者getprop ro.serialno 
adb获取imei 
service call iphonesubinfo 1 
更多信息参考这个 
http://stackoverflow.com/questions/27002663/adb-shell-dumpsys-iphonesubinfo-not-working-since-android-5-0-lollipop

使用”读取proc的方式”获取正在运行的进程
// 1,遍历”/proc”文件夹下面的文件夹,其中有些”文件夹名称”就是进程id(PID) 
ls /proc 
// 2,cat命令获取对应进程的名字(cat /proc/PID/cmdline
cat /proc/1/cmdline 得到结果/init

查看进程具体的信息
(实例:12073是要查看的进程的PID) 
cat /proc/12073/maps 查看进程的文件结构 
cat /proc/12073/status 查看进程的状态

通过packages.xml文件查看app安装信息
/data/system/packages.xml文件中,找到你应用相关内容 
我在小米上使用cat /data/system/packages.xml命令得到以下数据

<package name="com.trafficctr.miui" codePath="/system/app/TrafficControl" nativeLibraryPath="/system/app/TrafficControl/lib" flags="540229" ft="152fdda2cc0" it="152fdda2cc0" ut="152fdda2cc0" version="29" userId="10069">
.....
</package>
1
2
3
显然name就是包名,codePath就是安装的路径

使用shell启动和终止模拟器
adb shell stop//停止 
adb shell start//启动

多设备选择
adb devices//显示处于调式模式的devices 
adb -s emulator-5554 shell  //表示选择5554模拟器的进入shell 
42.busybox的安装

查看进程优先级
假设要查看程序com.test.app.a的进程优先级 
adb shell(进入shell) 
ps|grep com.test.app.a(列出这个进程)

u0_a37 28155 164 909516 36900 ffffffff b75baa27 S com.test.app.a
1
cat /proc/28155/oom_adj(获取这个进程的adj值) 
adj值则在ProcessList中定义,adj的取值范围[-17,16],取值越大说明优先级越低。adj取值说明参考这里

dumpsys 查看内存,cpu,电量信息
1)查看所有内存信息 
命令:dumpsys meminfo 
2)查看某个包的内存信息 
命令:dumpsys pkg_name 
3)查看CPU信息 
命令:adb shell dumpsys cpuinfo 
4)查看电量信息 
命令:dumpsys battery 
参考这里:Android 通过adb shell命令查看内存,CPU,启动时间,电量等信息

findstr 和grep过滤搜索
1)cmd下搜索包名为com.linux.test的进程 
adb shell ps|findstr /i “com.linux.test” 
2)shell下面搜索 
先使用adb shell进去,然后使用grep命令过滤 
ps|grep “com.linux.test”

查看最上层成activity名字
adb shell dumpsys activity | findstr "mFocusedActivity"
1
查看最上层窗口信息
adb shell dumpsys window windows | findstr mCurrent
1
修改host翻墙
1,电脑下载一个android版本的hosts,地址http://laod.cn/hosts/2016-google-hosts.html 
2,将hosts放入手机中

adb push C:\Users\Administrator\Downloads\Android安卓跟Linux系列\hosts /data/local/tmp/
3138 KB/s (154351 bytes in 0.048s)
1
2
3,修改hosts文件(需要root权限)

C:\Users\Administrator>adb shell
shell@android:/ $ su
su
shell@android:/ # mount -o remount,rw /system
mount -o remount,rw /system
shell@android:/ # cat /data/local/tmp/hosts>/system/etc/hosts
cat /data/local/tmp/hosts>/system/etc/hosts
shell@android:/ # ls -l /system/etc/hosts
ls -l /system/etc/hosts
-rw-r--r-- root root 154351 2016-09-28 17:53 hosts
shell@android:/ #
1
2
3
4
5
6
7
8
9
10
11
修改完毕,手机随便连接一个wifi或者打开数据流量就可以上google和facebook等等网站了。

查看端口
显示已连接的端口:netstat -ntup 
显示正监听的端口:netstat -ntupl 
查询端口进程应关系cat /proc/net/tcp6 

如果查询14752端口被那个进程占用? 
(1)16进制39A0=10进制14752; 
(2)39A0对应的进程ID(也叫uid)是10096 
sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 
0: 00000000000000000000000000000000:39A0 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 10096 0 8887 1 00000000 100 0 0 2 -1 
(3)使用ps命令 
在android中,uid大于10000的是应用程序创建的用户。 
ps的第一列是uid,大于10000的uid会以u0_a开头,10096 显示为u0_a96,最后一列就是进程名。

adb发送广播
adb shell am broadcast -n com.lt.test/.MyBroadcast 
adb shell am broadcast -a “MyBroadcastAction”

转载于:https://www.cnblogs.com/jodyccf/p/11150799.html

学习转载:Android中常用shell命令详解相关推荐

  1. hadoop fs –ls /hbase 无内容_Hadoop学习---HDFS的常用shell命令详解

    注意:访问hdfs系统的指令 hadoop dfs --- 已过时 hadoop fs -- 使用范围更大 hdfs dfs --范围相对较小hadoop fs 和 hdfs dfs之间没有太大的区别 ...

  2. adb shell 命令详解,android, adb logcat

    http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...

  3. android音视频工程师,音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)...

    ## 音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源) ## 视音频编辑器 ## 前言 有时候我们想对音视频进行加工处理,比如视频编辑.添加字幕.裁剪等功能处 ...

  4. linux cut命令学习,Linux中的cut 命令详解

    今天小编要跟大家分享的文章是关于Linux中的cut 命令详解.cut 命令在Linux和Unix中的作用是从文件中的每一行中截取出一些部分,并输出到标准输出中.我们可以使用 cut 命令从一行字符串 ...

  5. Fedora 中的 Yum 命令详解

    http://pengjiayou.com/blog/yum-fedora-in-order-detailed-explanation 总所周知,Redhat和Fedora的软 件安装命令是rpm,但 ...

  6. 常用U-boot命令详解

    原文来自:http://www.flatws.cn/article/program/shell/2011-02-23/14038.html 常用U-boot命令详解 U-boot发展到现在,他的命令行 ...

  7. 常用memcached命令详解

    常用memcached命令详解: Memcached作为缓存服务器,对其操作的命令主要分为三类: 1.  服务器状态命令:可以查看memcahced服务的当前状态 2.  数据存储命令:如何存储数据到 ...

  8. Android中的四大组件详解

    Android中的四大组件详解 我们都知道Android系统应用层框架中,为开发者提供了四大组件来便于应用的开发,它们是Activity.Service.BroadcastReceiver.Conte ...

  9. java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例

    java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...

最新文章

  1. 80m的mysql文件要导入多久_mysql导入导出数据库的问题
  2. BTCBCH 谁是最终的王者
  3. 此windows副本不是正版解决方法
  4. 信息学奥赛C++语言: 商品排序
  5. Windows RDP远程桌面无密码账户
  6. Java轻量级业务层框架Spring两大核心IOC和AOP原理
  7. 基于java+SpringBoot+HTML+Mysql)疫情防控微信小程序
  8. 微信小程序登录小实例
  9. luoguP4173 残缺的字符串 FFT
  10. 计算机指令窗口如何放大,我电脑每次打开一个窗口都好小,怎么设置为每次都全屏啊?...
  11. 聊聊Java那些事儿
  12. 通过SyncToy进行服务器定时服务备份流程
  13. ZooKeeper的节点类型有哪些?
  14. android学习步骤
  15. java开发wap_C#开发WAP程序
  16. 一个技术青年的网络失足
  17. 《游梦人·诗的诞生》
  18. 22届应届生入职华为OD一个半月,治好了我的精神内耗...
  19. PDF预览、图片预览插件
  20. Android系统的音量控制

热门文章

  1. 如何在vue项目中,跨页面(跨路由)使用新手引导工具 Intro.js
  2. vsftp日志查看_vsftp日志配置
  3. python计算n阶乘中尾部零的个数_计算n阶乘中尾部零的个数
  4. 做一个树莓派微博机器人
  5. Android 的显示原理
  6. Android图表库--MPChart(Piechart)
  7. 【论文阅读】Bi-Directional Cascade Network for Perceptual Edge Detection(2019)
  8. 基于springboot + vue 的个人博客搭建过程(续)
  9. Oracle-SQL语句应用
  10. 【Kafka】Kafka3.3.1集群搭建指南KRaft版本