From c7a5bd7a5c69f95a562dd335b3747c07bf0d328e Mon Sep 17 00:00:00 2001 From: Eric Gribkoff Date: Sat, 13 Jan 2018 14:30:24 -0800 Subject: [PATCH] cronet: add build.gradle and script for Cronet deps --- RELEASING.md | 1 + cronet/.gitignore | 1 + cronet/README.md | 8 ++++ cronet/build.gradle | 60 +++++++++++++++++++++++++++++ cronet/cronet_deps.sh | 6 +++ cronet/proguard-rules.pro | 13 +++++++ cronet/src/main/AndroidManifest.xml | 2 + 7 files changed, 91 insertions(+) create mode 100644 cronet/.gitignore create mode 100644 cronet/build.gradle create mode 100755 cronet/cronet_deps.sh create mode 100644 cronet/proguard-rules.pro create mode 100644 cronet/src/main/AndroidManifest.xml diff --git a/RELEASING.md b/RELEASING.md index 4ceabbd9ef..96512bae74 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -65,6 +65,7 @@ $ VERSION_FILES=( build.gradle android-interop-testing/app/build.gradle core/src/main/java/io/grpc/internal/GrpcUtil.java + cronet/build.gradle examples/build.gradle examples/pom.xml examples/android/helloworld/app/build.gradle diff --git a/cronet/.gitignore b/cronet/.gitignore new file mode 100644 index 0000000000..2fd4c3b350 --- /dev/null +++ b/cronet/.gitignore @@ -0,0 +1 @@ +libs/ diff --git a/cronet/README.md b/cronet/README.md index 1103f31f6d..d0304aaf33 100644 --- a/cronet/README.md +++ b/cronet/README.md @@ -44,3 +44,11 @@ ExperimentalCronetEngine engine = new ExperimentalCronetEngine.Builder(context /* Android Context */).build(); ManagedChannel channel = CronetChannelBuilder.forAddress("localhost", 8080, engine).build(); ``` + +## Running the tests with Gradle + +To run the gRPC Cronet tests with the included `gradle.build` file, you will +need to first download the Cronet jars and place them in the `libs/` directory. +The included script, `cronet_deps.sh`, will do this automatically but requires +the [gsutil](https://cloud.google.com/storage/docs/gsutil) tool to access files +from Google Cloud Storage. diff --git a/cronet/build.gradle b/cronet/build.gradle new file mode 100644 index 0000000000..9a3e43a9df --- /dev/null +++ b/cronet/build.gradle @@ -0,0 +1,60 @@ +apply plugin: 'com.android.library' + +description = "gRPC: Cronet Android" + +buildscript { + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.0.1' + } +} + +allprojects { + repositories { + jcenter() + mavenLocal() + } +} + +android { + compileSdkVersion 27 + defaultConfig { + minSdkVersion 14 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + } + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + testOptions { + unitTests { + includeAndroidResources = true + } + } + lintOptions { + disable 'InvalidPackage' + } +} + +dependencies { + implementation 'io.grpc:grpc-core:1.10.0-SNAPSHOT' // CURRENT_GRPC_VERSION + testImplementation 'io.grpc:grpc-testing:1.10.0-SNAPSHOT' // CURRENT_GRPC_VERSION + + implementation files('libs/cronet_api.jar') + implementation files('libs/cronet_impl_common_java.jar') + + testImplementation 'junit:junit:4.12' + testImplementation 'org.mockito:mockito-core:1.10.19' + testImplementation "org.robolectric:robolectric:3.5.1" +} diff --git a/cronet/cronet_deps.sh b/cronet/cronet_deps.sh new file mode 100755 index 0000000000..952f80b1ce --- /dev/null +++ b/cronet/cronet_deps.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +mkdir libs +gsutil cp gs://chromium-cronet/android/64.0.3254.0/Release/cronet/cronet_api.jar libs/ +gsutil cp gs://chromium-cronet/android/64.0.3254.0/Release/cronet/cronet_impl_common_java.jar \ + libs/ diff --git a/cronet/proguard-rules.pro b/cronet/proguard-rules.pro new file mode 100644 index 0000000000..b671e77af6 --- /dev/null +++ b/cronet/proguard-rules.pro @@ -0,0 +1,13 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in $ANDROID_HOME/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +-dontwarn org.chromium.** +-dontnote org.chromium.** diff --git a/cronet/src/main/AndroidManifest.xml b/cronet/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..5b77412a88 --- /dev/null +++ b/cronet/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ +