栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Android Studio和Gradle构建Android库?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Android Studio和Gradle构建Android库?

注意:此答案是纯Gradle答案,我定期在IntelliJ中使用此答案,但我不知道与Android Studio的集成方式。我相信自己会发生什么,所以这就是我使用Gradle和Android的方式。

TL; DR完整示例-https://github.com/ethankhall/driving-time-tracker/

免责声明:这是我正在/正在从事的项目。

Gradle具有定义的结构(您可以更改,底部的链接告诉您如何),如果您曾经使用过,则它与Maven非常相似。

Project Root+-- src|   +-- main (your project)|   |   +-- java (where your java pre goes)|   |   +-- res  (where your res go)|   |   +-- assets (where your assets go)|   |   -- AndroidManifest.xml|   -- instrumentTest (test project)|       -- java (where your java pre goes)+-- build.gradle-- settings.gradle

如果只有一个项目,则不需要settings.gradle文件。但是,您要添加更多项目,因此我们需要它。

现在,让我们看一下该build.gradle文件。您将需要它(添加android工具)

build.gradle

buildscript {    repositories {        mavenCentral()    }    dependencies {        classpath 'com.android.tools.build:gradle:0.3'    }}

现在,我们需要告诉Gradle一些Android部件。很简单 一个基本的(适用于我的大多数情况)如下所示。我在此区块中有一条评论,它将使我在生成APK时指定版本名称和代码。

build.gradle

apply plugin: "android"android {        compileSdkVersion 17            }

我们将要添加的东西,以帮助那些尚未了解Gradle的人,让他们无需安装即可使用该项目。

build.gradle

task wrapper(type: org.gradle.api.tasks.wrapper.Wrapper) {    gradleVersion = '1.4'}

因此,现在我们要构建一个项目。现在,我们将添加其他。我将它们放在目录中,也许称为deps或subProjects。其实并不重要,但是您需要知道它放在哪里。要告诉Gradle项目在哪里,您需要将它们添加到settings.gradle中。

目录结构:

Project Root+-- src (see above)+-- subProjects (where projects are held)|   +-- reallyCoolProject1 (your first included project)|       -- See project structure for a normal app|   -- reallyCoolProject2 (your second included project)|       -- See project structure for a normal app+-- build.gradle-- settings.gradle

settings.gradle:

include ':subProjects:reallyCoolProject1'include ':subProjects:reallyCoolProject2'

你应该确保的最后一件事是子项

目/ reallyCoolProject1 /
build.gradle
具有
apply plugin: "android-library"
代替
apply plugin: "android"

像每个Gradle项目(和Maven)一样,我们现在需要告诉根项目有关它的依赖关系。这还可以包括所需的任何常规Java依赖项。

build.gradle

dependencies{    compile 'com.fasterxml.jackson.core:jackson-core:2.1.4'    compile 'com.fasterxml.jackson.core:jackson-databind:2.1.4'    compile project(":subProjects:reallyCoolProject1")    compile project(':subProjects:reallyCoolProject2')}

我知道这似乎有很多步骤,但是一旦执行一次或两次,它们就非常容易。假设您已在其中安装了Android SDK,这种方法也将允许您在CI服务器上进行构建。

NDK旁注:如果要使用NDK,则需要类似以下内容。示例build.gradle文件可以在这里找到:https ://gist.github.com/khernyo/4226923

build.gradle

task copyNativeLibs(type: Copy) {    from fileTree(dir: 'libs', include: '**/*.so' )  into  'build/native-libs'}tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs }clean.dependsOn 'cleanCopyNativeLibs'tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->  pkgTask.jniDir new File('build/native-libs')}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/364748.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号