Android中常用的Gradle命令
说明
本文中使用的是Gradle命令,已经添加将Gradle添加到了环境变量中。
0.查看Gradle版本
gradle --version
com.android.tools.build:gradle版本网址查看地址
https://bintray.com/android/android-tools/com.android.tools.build.gradle
其他的一些android tool版本分布查看网址 https://bintray.com/android/android-tools/
1.刷新Gradle缓存
force gradle to redownload dependencies
用于解决一些奇怪的依赖问题
gradle --refresh-dependencies
2.查看依赖关系 比如项目引用了很多库,这些库都依赖了okhttp,此时你又单独引入了okhttp后,此时存在多个okhttp的版本。
那么最后,这些库到底依赖或者说使用了哪个版本的okhttp呢?这个问题,在某些情况下,显得十分重要。
比如我在项目中使用了如下的库
RxJava
compile ‘io.reactivex:rxandroid:1.2.1’
compile ‘io.reactivex:rxjava:1.1.10’
Retrofit2
compile ‘com.squareup.retrofit2:retrofit:2.1.0’
compile ‘com.squareup.retrofit2:converter-gson:2.1.0’
compile ‘com.squareup.retrofit2:adapter-rxjava:2.1.0’
OkHttp
compile ‘com.squareup.okhttp3:okhttp:3.4.1’
logging-interceptor
debugCompile ‘com.squareup.okhttp3:logging-interceptor:3.4.1’
查看okhttp,在各个库的依赖中最后依赖的版本
gradle -q app:dependencyInsight --dependency okhttp --configuration compile
查看rxjava,在各个库的依赖中最后依赖的版本
gradle -q app:dependencyInsight --dependency rxjava --configuration compile
查看support-annotations,在各个库的依赖中最后依赖的版本
gradle -q app:dependencyInsight --dependency com.android.support:support-annotations --configuration compile

查看Android相关库的依赖关系
gradle androidDependencies
显示 task 使用细节执行
gradle -q help --task assemble
可以获取到 task 的详细信息, 或者多项目构建中相同 task 名称的所有 task 的信息
查看module相关库的依赖关系
gradle -q dependencies app:dependencie
查看某个Task的相关库的依赖关系
gradle -q dependencies app:dependencies --configuration compile
依赖报告
gradle projectReport file:/home/malin/gitlab/bilibili/app/build/reports/project/dependencies/root.app.html
在浏览器中打开可以看到如下的网页,十分简介清楚。

说明:这里需要在module中的buil.gradle中添加如下声明:
apply plugin: 'project-report'
禁止lint Task
gradle build -x lint
Task 编译耗时检测
gradle build --profile file:/home/malin/gitlab/bilibili/build/reports/profile/
生成Gradle脚本
gradle init wrapper
lint
gradle lint file:/home/malin/gitlab/bilibili/app/build/outputs/
项目结构
gradle project
显示依赖包的存储路径
gradle showMeCache
clean
gradle clean
打包
gradle assembleDebug --debug gradle assembleRelease --info
打包并安装
gradle installDebug
gradle installRelease
获取APK包名
将/sdk/build-tools/24.0.3/aapt配置到环境变量中
aapt dump badging app.apk
grep过滤
aapt dump badging app.apk | grep package
aapt dump badging app.apk | grep uses-permission
查看权限
aapt dump permissions app.apk
查看资源列表
aapt dump resources app.apk
一般都会输出很多的信息,如要全部查看,请用下面这两句:
aapt dump resources app-xiaomi-debug.apk > /home/malin/xxx/xxx.txt
这样会把所有的信息通过重定向符”>”输出到sodino.txt文件中,然后再打开该文件即可查看。
查看apk配置信息
aapt dump configurations app.apk
查看指定apk的指定xml文件。
aapt dump xmltree app.apk res/layout/progress_dialog_layout.xml
aapt dump xmltree app.apk AndroidManifest.xml
应用的启动时间:
adb shell am start -W com.malin.animation/.mvp.MActivity
内存
adb shell dumpsys meminfo com.malin.animation
gradle编译工具的版本信息
gradle buildEnvironment
签名信息
gradle signingReport
Gradle GUI
gradle -gui
查看栈顶的Activity(包名)
adb shell dumpsys activity top | grep ACTIVITY
adb shell dumpsys activity | grep mFocusedActivity
查看安装应用的信息
adb shell dumpsys package com.malin.animation
查看安装应用的权限
adb shell dumpsys package com.malin.animation | grep permission
查看手机的屏幕信息
adb shell dumpsys display
查看手机分辨率
adb shell dumpsys display | grep DisplayInfo | grep app | grep width | grep height | grep real | grep mOverrideDisplayInfo
查看当前Activity的状态
adb shell dumpsys activity top
列出所有安装的应用的包名
adb shell pm list packages
adb shell screencap /sdcard/screen.png
adb shell am start -a android.intent.action.VIEW
启动一个Activity
adb shell am start -n com.malin.animation/.mvp.MActivity
adb shell am force-stop com.malin.animation
http:stormzhang.com/2016/09/08/common-adb-commands/
adb 命令大全
https:github.com/androidmalin/awesome-adb http:adbshell.com/ https:developer.android.com/studio/command-line/shell.html
adb shell monkey -p com.malin.animation -v 100
屏幕分辨率
adb shell wm size
屏幕密度
adb shell wm density
屏幕分辨率和密度,虚拟按键的高度
adb shell dumpsys window displays | grep init
adb shell am start -W -S -R 9 -n com.malin.animation/.mvp.MActivity
adb shell am start -n com.malin.animation/.mvp.MActivity
adb shell screenrecord --bugreport /sdcard/a.mp4
adb shell screenrecord /sdcard/a.mp4
adb pull /sdcard/a.mp4 /home/malin/aaaa
monkey
adb shell monkey -p com.malin.animation -v 10000
adb shell monkey -p com.malin.animation -v -v -v --ignore-crashes --ignore-timeouts --monitor-native-crashes 100 > d:\aaaa\a.txt
–ignore-crashes crash后继续
–ignore-timeouts ANR后继续
–monitor-native-crashes
–ignore-security-exceptions 权限问题后,继续
gradle文档
https:dongchuan.gitbooks.io/gradle-user-guide-/content/
即可看到所有依赖的对应路径,
Note : 因为 gradle 文件顺序执行的特点,这个任务应该定义在dependencies节点之下。
gradle showMeCache
离线模式编译
gradlew.bat build --offline -x lint
多命令顺序执行
gradlew.bat clean & gradlew.bat showMeCache & gradlew.bat build --offline -x lint
点击坐标点x=50 y=250的位置
adb shell input tap 50 250
task showMeCache « { configurations.compile.each { println it } }
自动化
光标切换到输入用户名
adb shell input tap 200 800
输入用户名
adb shell input text 15510600873
光标切换到输入密码
adb shell input tap 200 900
输入密码 abcd
adb shell input text abcdefgh
点击登陆
adb shell input tap 900 1200
点击返回键
adb shell input keyevent 4
自动化
just for windows task cleanall(type: Exec) { ext.lockhunter = ‘"D:\LockHunter\LockHunter.exe"’ def buildDir = file(new File(“build”)) commandLine ‘cmd’, “$lockhunter”, ‘/delete’, ‘/silent’, buildDir }
Enjoy Reading This Article?
Here are some more articles you might like to read next: