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)
<meta charset="utf-8">

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 <percent> (滑动事件)
--pct-appswitch <percent> (activity之间的切换)
--pct-trackball <percent> (轨迹球事件)
--pct-nav <percent> (导航事件 up/down/left/right)
--pct-majornav <percent> (主要导航事件 back key 、 menu key)
--pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-anyevent <percent>(任意事件)

关闭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 <package_name>

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一个不为人知的梦, 一个关于单车和鲜花的梦…… 我希望有一个明媚少年, 或与我并肩骑行,或让我坐其后座, 我的手里...
    Candice_5413阅读 285评论 0 0
  • 午夜姑娘的呻吟声 让隔壁的汉子听了个饱 打着花折伞的姑娘 身材曼妙 玉肌裸露 那白皙的双腿 那乌黑的长发 烈日下走...
    裴文达阅读 191评论 0 2
  • 我来自乡野,我的妈妈是村里的小学语文老师。在村庄西面那个破旧的学校,她一待就是几十年,从十六岁到五十五岁,妈妈把生...
    清雨儿阅读 1,441评论 1 2
  • 1.扇贝单词100个 2.英语趣配音2个,配音《再别康桥》时很感动! 3.京剧刻意练习1小时 4.爵士舞一节课,第...
    Sailing333阅读 207评论 0 0

友情链接更多精彩内容