在更新到Android Studio 3.0并创建一个新项目后,我注意到build.gradle有一种新方法可以添加新的依赖项,而不是compile存在implementation而不是testCompile存在testImplementation.
例:
implementation 'com.android.support:appcompat-v7:25.0.0'
testImplementation 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)
代替
compile 'com.android.support:appcompat-v7:25.0.0'
testCompile 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)
它们之间有什么区别,我应该使用什么?
dependency-management gradle transitive-dependency build.gradle gradle-plugin
AAPT(Android资产包装工具)是什么意思?它是如何工作的?
我可以.so使用AAPT将一个应用程序的文件发送到另一个应用程序的APK文件中吗?
当我在源代码中进行一些更改时,Android Studio(实际上是gradle)需要重建项目.很明显.
为什么即使我没有对项目进行任何更改,第二次构建也会像第一次构建那样花费几乎相同的时间?当我查看GradleConsole时,它会等待"assembleDubug"任务.我认为gradle应该意识到没有变化,不应该浪费太多时间.
如果有人能帮助我理解有关Android Studio的一些事情,那将是最具启发性的.
所以,我已经在一个月前从Eclipse切换到Android Studio,到目前为止我只处理过迁移的应用程序.因此,我一直在修补Eclipse中常见的AndroidManifest.xml文件.
然而,最近,我开始创建一个新项目,以便从头开始学习Android Studio与Eclipse的差异.除了我遇到的非常恼人的appcompat_v7问题之外,我还对build.gradle的一些事情感到困惑.
以下是从Android Studio创建的应用中的gradle代码块:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
applicationId "com.myapp"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:mediarouter-v7:22.2.0'
}
Run Code Online (Sandbox Code Playgroud)
另一方面,下面是迁移的Eclipse项目的build.gradle中的代码块:
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':google-play-services_lib')
}
android {
compileSdkVersion 21
buildToolsVersion '22.0.1'
sourceSets {
main { …Run Code Online (Sandbox Code Playgroud) 我有个问题.
在(根)build.gradle Gradle Version中是3.1.3
(根)的build.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
Run Code Online (Sandbox Code Playgroud)
在项目结构中,Gradle Version是4.4
项目结构
Gradle version 4.4
Run Code Online (Sandbox Code Playgroud)
在Gradle-wrapper-properties中,Url的Gradle版本是4.4
摇篮 - 包装 - 属性
#Tue Jul 17 17:49:20 KST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Run Code Online (Sandbox Code Playgroud)
但我可以构建,我可以在SmartPhone中运行应用程序.
什么是真正的Gradle版本?
请回复.
谢谢.
我正在阅读有关Android Testing Samples项目的文章,并注意到一个名为Bazel的" 新 "构建工具正用于构建Android项目:
实验性Bazel支持
其中一些示例可以在Linux上使用Bazel构建.这些示例包含一个
BUILD.bazel文件,类似于build.gradle文件.外部依赖项在顶级WORKSPACE文件中定义.这是实验性功能.要运行测试,请按照Bazel网站上的说明安装最新版本的Bazel(0.12.0或更高版本).
然后,
更新#1:更新了farhana的接受答案,感谢Jin提供有关google构建系统的详细信息.
更新#2:更新了谷歌代码实验室,用于bazel android介绍.
在同一个网站上还有一些其他相关问题,但我无法理解这一点.
在他们的网站上,他们非常抽象.
Gradle是构建自动化的演变.Gradle可以自动构建,测试,发布,部署以及更多软件包或其他类型的项目,例如生成的静态网站,生成的文档或其他任何内容.
那个的真实意义是什么?谢谢
在棉花糖中,添加了ART的AOT编译器。从Android N起,除了AOT外,还添加了另一个编译器JIT。
什么是AOT编译器特定的作业/功能,什么是JIT编译器的作业/功能?