因为很多行星的星友对ADB不熟悉,又问了我这个问题,所以我今天想给大家整理一下相关的ADB知识。作为Android Developer,ADB是必需的。这是必不可少的知识。(大卫亚设,Northern Exposure(美国电视剧),Northern Exposure)。
ADB的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在IDE中调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Android Studio时adb进程就会自动运行。
在我们的sdk目录androidSdk\platform-tools下可以直接使用我们的adb,如果这个目录没有,则可以在androidSdk\tools 目录下找到
但是如果你想像JDK一样可以全局使用,那就得配置一下adb的环境了,不然会报adb找不到的错误,配置环境很简单,把我们的路径加入到我们的PATH路径下就好了
首先在系统变量中增加一个ADB的字段填入路径
然后在path中增加%ADB%字段即可
这样我们就可以在终端使用了
Log
如果只是纯应用开发的话,用到的log应该是比较多的,你输入
logcat
就会和你的IDE一样在刷log了,如果你想过滤,其实也好办
logcat -s TAG
有时候程序突然挂了,而我的IDE也没什么东西,可能抽风了,那怎么办?输入
logcat -s "AndroidRuntime"
如果你的log太多,想保存下来分析的话,你也可以这样
logcat > c:\XX.txt
adb shell
shell下能做很多的事情,常用的是我们Linux命令,我们先来看几个简单的命令吧
su
su是获取权限的意思,这样就有权限查看系统文件了
cat
如果你想查看文本或者其他文本类,比如.java等文件就可以直接cat xxx.txt了,嗯,这些都比较简单,我们想看一下连接的设备可以
adb devices
有设备了,我想安装一个apk,那就很简单咯
adb install c:\\xxx.apk
如果卸载呢?卸载有很多种方式哈,你删掉也是其中一种,先说下正常卸载,那也是你安装的应用才能卸载,系统的应用是不让卸载的,卸载可以用
adb uninstall 包名
如果你想删掉一个系统文件,你会怎么做?首先进入system/app目录下对吧,然后输入
rm -rf xxx.apk
但是,你会看到这样的一个提示
什么?只读文件?我明明已经是#的root管理权限了啊,那我应该怎么做呢?
adb root
首选我们获取一下root,然后
adb remount
切换一下remount模式,这样我们就可以删掉了,那好,问题来了,我们如何用命令启动一个Activity或者一个Servie呢?
首先看下启动Activity,假设我现在有一个程序的包名是com.lgl.test,而我想启动这个MainActivity,服务就是MainService那应该怎么写?首先你得进入shell模式,然后
am start -n com.lgl.test/.MainActivity
启动服务的话
am startservice -n com.lgl.test/.MainService
到这里,一些简单的应该是没什么问题的了
Linux
在shell模式下,你可以看一些权限
ls -l
你可以看到一行有两个root,他们是什么意思呢?左边的是用户组,右边的是用户群组,这个可是在源码编译中有些注意的哟
但是你如果在linux中
你可以看到不管是用户组还是用户群组都是我是用户名,再实际开发中,肯定是我们的文件拥有的权限要大一些,那这些怎么改呢?
左边的可以这么改
sudo chown -R 用户名 文件名
右边
sudo chown -R root:用户名 文件名
这里刚好说到权限的问题,如果你想要一个权限是可读可写的话,你可以这样设置
sudo chmod 777 文件
还有一些简单的,我就直接贴出来
//移动
mv
//复制
cp
//重启
reboot
//我们想重启也可以adb reboot
//创建文件
mkdir
//压缩
tar
这些都是比较常见的了,我们怎么这么快就扯到了Linux?我们的adb还有很多命令没说呢,再来看下我们的的push和pull
想取的系统的文件的文件的话,就需要pull了
adb pull /system/a c:\\
这里我就把这个apk放在了c盘,如果你想把一些文件给塞进去系统,你可以
adb push c:\\ /system/app/
对了,ls是我们的清单,显示当前目录的文件夹,在Dos下是dir,如果我想在一个目录项回退到上一个目录,可以
cd ..
如果想回退到上上个目录,可以
cd ../..
如果你蛋疼的想回到上上上个目录,那就以此类推了
cd ../../..
好的,我们再来看下剩下的adb命令
adb命令
这部分我也不是很常用
- 1. 显示系统中全部Android平台:
- android list targets
- 2.显示系统中全部AVD(模拟器)
- android list avd
- 3.创建AVD(模拟器)
- android create avd --name 名称 --target 平台编号
- 4.启动模拟器
- emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)
- 5.删除AVD(模拟器)
- android delete avd --name 名称
- 6.启动DDMS
- ddms
- 7.模拟按键
- input keyevent 5
这些就差不多了,有些不行的话,可以尝试在shell模式下进行
monkey
我们调试的时候需要用到monkey的话可以执行
//对应用做压力测试1W次
monkey -p 包名 --pct-syskeys 0 -v 100000
//对整个系统进行压力测试1000W次
monkey --pct-syskeys 0 -v 10000000
实战
想在adb中过滤log: adb logcat -s "AndroidRuntime"
想安装apk: adb install xx.apk
想删除system/app下的系统应用:
adb root
adb remount
adb shell
cd system/app/
rm -rf xxx.apk
reboot
大概就是如此,希望你学会了。
1.《怎么使用adb?总结很全面速看!Android ADB 使用技巧 学会了稳赚不亏》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《怎么使用adb?总结很全面速看!Android ADB 使用技巧 学会了稳赚不亏》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3196729.html