adb Gradle常用语法学习

adb相关命令

如果运行过程中还没大概logcat某个APK就挂掉了,弹出已停止运行,我们可以用这个命令查看关键错误信息: logcat *:e , 这样只是会过滤出前面带有E的错误信息。

adb logcat *:e

同理
V — Verbose (lowest priority)
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (highest priority, on which nothing is ever printed)

adb命令安装

adb devices 显示所有设备
adb uninstall 包名 卸载
adb install 路径/文件名.apk

关闭某个应用

adb shell am force-stop com.xx.loveguider

首页冷启动时间

adb shell am start -W -n com.zhenai.loveguider/com.zhenai.loveguider.activites.MainActivity

Monkey命令参考

一个完整的Monkey 命令

adb shell monkey -p com.zhenai.loveguider -s 8888 --throttle 300 --pct-touch 30 --pct-appswitch 20 --pct-motion 30 --ignore-crashes --ignore-timeouts --monitor-native-crashes --ignore-security-exceptions -v -v -v 1000

指定伪随机数生成器的seed值8888, ,每个事件间隔300ms 触摸事件占30%,activity之间的切换20%,滑动事件30%
忽略crash和超时,监视本地程序崩溃,

如何分析monkey日志?

1、 ANR问题:在日志中搜索“ANR” 2、 崩溃问题:在日志中搜索“CRASH”或者Exception

如何重现BUG?

1、 找到是monkey里面的哪个地方出错
2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作
3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样

事件选项

-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200
--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100
--pct-touch:指定触摸事件的百分比,如:--pct-touch 5
--pct-motion (滑动事件)
--pct-appswitch (activity之间的切换)
--pct-trackball (轨迹球事件)
--pct-nav (导航事件 up/down/left/right)
--pct-majornav (主要导航事件 back key 、 menu key)
--pct-syskeys (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-anyevent (任意事件)

关闭Monkey

  • adb shell "ps | grep monkey"
    返回来的第一个数字,即是monkey的进程号
  • .kill 命令结束进程
    adb shell kill [刚才查到的进程号]

导出ANR后的trace文件

adb pull data/anr/traces.txt 导出到当前目录
adb pull data/anr/traces.txt E:\AndroidTool 导出到E:\AndroidTool目录

推某个文件到手机上

adb pull data/anr/traces.txt ./mytraces.txt

查看所有进程列表,Process Status

adb shell ps
也可以跟findstr结合搜索 过滤 带有tencent的
adb shell ps | findstr tencent

查看package_name程序进程

adb shell ps|grep

Gradle常用命令

这里注意是./gradlew, ./代表当前目录,gradlew代表 gradle wrapper,意思是gradle的一层包装,大家可以理解为在这个项目本地就封装了gradle,即gradle wrapper, 在GradleLearn/gradle/wrapper/gralde-wrapper.properties文件中声明了它指向的目录和版本。只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。

理解了gradle wrapper的概念,下面一些常用命令也就容易理解了。

./gradlew -v 版本号
./gradlew clean 清除GradleLearn/app目录下的build文件夹
./gradlew build 检查依赖并编译打包
这里注意的是 ./gradlew build 命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令 assemble, 如
./gradlew assembleDebug 编译并打Debug包
./gradlew assembleRelease 编译并打Release的包
除此之外,assemble还可以和productFlavors结合使用
./gradlew installRelease Release模式打包并安装
./gradlew uninstallRelease 卸载Release模式包
./gradlew app:dependencies 查看依赖树

androidStudio打印依赖树

./gradlew :app:dependencies --configuration compile (Mac)

gradle :app:dependencies (window)

Gradle知识点

Gradle知识点2

你可能感兴趣的:(adb Gradle常用语法学习)