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

okhttp

查看rxjava,在各个库的依赖中最后依赖的版本
gradle -q app:dependencyInsight --dependency rxjava --configuration compile

查看support-annotations,在各个库的依赖中最后依赖的版本
gradle -q app:dependencyInsight --dependency com.android.support:support-annotations --configuration compile

annotations

查看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

在浏览器中打开可以看到如下的网页,十分简介清楚。

denpendencies1 denpendencies2

说明:这里需要在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:

  • Claude Code CLI 新手使用指南
  • AndroidX,migrate,jetifier
  • KDE Connect Indicator
  • BusyBox
  • Source for Android 28