From 63bfa3d4131f004eb51ea30fffe87f7f183df2a4 Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 8 Aug 2018 06:23:17 -0700 Subject: [PATCH] Use gradle dependencies for Cronet extension This also allows us to distribute the extension via jCenter ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=207874626 --- RELEASENOTES.md | 1 + core_settings.gradle | 8 ++---- extensions/cronet/README.md | 39 +++++++++-------------------- extensions/cronet/build.gradle | 16 ++++++------ extensions/cronet/jniLibs/README.md | 1 - extensions/cronet/libs/README.md | 1 - 6 files changed, 23 insertions(+), 43 deletions(-) delete mode 100644 extensions/cronet/jniLibs/README.md delete mode 100644 extensions/cronet/libs/README.md diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 3ae240d689..09068c4cc9 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -2,6 +2,7 @@ ### dev-v2 (not yet released) ### +* Distribute Cronet extension via jCenter. * Add `AudioListener` for listening to changes in audio configuration during playback ([#3994](https://github.com/google/ExoPlayer/issues/3994)). * Improved seeking support: diff --git a/core_settings.gradle b/core_settings.gradle index fc738c8476..4d90fa962a 100644 --- a/core_settings.gradle +++ b/core_settings.gradle @@ -30,6 +30,7 @@ include modulePrefix + 'extension-flac' include modulePrefix + 'extension-gvr' include modulePrefix + 'extension-ima' include modulePrefix + 'extension-cast' +include modulePrefix + 'extension-cronet' include modulePrefix + 'extension-mediasession' include modulePrefix + 'extension-okhttp' include modulePrefix + 'extension-opus' @@ -51,6 +52,7 @@ project(modulePrefix + 'extension-flac').projectDir = new File(rootDir, 'extensi project(modulePrefix + 'extension-gvr').projectDir = new File(rootDir, 'extensions/gvr') project(modulePrefix + 'extension-ima').projectDir = new File(rootDir, 'extensions/ima') project(modulePrefix + 'extension-cast').projectDir = new File(rootDir, 'extensions/cast') +project(modulePrefix + 'extension-cronet').projectDir = new File(rootDir, 'extensions/cronet') project(modulePrefix + 'extension-mediasession').projectDir = new File(rootDir, 'extensions/mediasession') project(modulePrefix + 'extension-okhttp').projectDir = new File(rootDir, 'extensions/okhttp') project(modulePrefix + 'extension-opus').projectDir = new File(rootDir, 'extensions/opus') @@ -58,9 +60,3 @@ project(modulePrefix + 'extension-vp9').projectDir = new File(rootDir, 'extensio project(modulePrefix + 'extension-rtmp').projectDir = new File(rootDir, 'extensions/rtmp') project(modulePrefix + 'extension-leanback').projectDir = new File(rootDir, 'extensions/leanback') project(modulePrefix + 'extension-jobdispatcher').projectDir = new File(rootDir, 'extensions/jobdispatcher') - -if (gradle.ext.has('exoplayerIncludeCronetExtension') - && gradle.ext.exoplayerIncludeCronetExtension) { - include modulePrefix + 'extension-cronet' - project(modulePrefix + 'extension-cronet').projectDir = new File(rootDir, 'extensions/cronet') -} diff --git a/extensions/cronet/README.md b/extensions/cronet/README.md index ea84b602db..f1f6d68c81 100644 --- a/extensions/cronet/README.md +++ b/extensions/cronet/README.md @@ -5,37 +5,22 @@ The Cronet extension is an [HttpDataSource][] implementation using [Cronet][]. [HttpDataSource]: https://google.github.io/ExoPlayer/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html [Cronet]: https://chromium.googlesource.com/chromium/src/+/master/components/cronet?autodive=0%2F%2F -## Build instructions ## +## Getting the extension ## -To use this extension you need to clone the ExoPlayer repository and depend on -its modules locally. Instructions for doing this can be found in ExoPlayer's -[top level README][]. In addition, it's necessary to get the Cronet libraries -and enable the extension: +The easiest way to use the extension is to add it as a gradle dependency: -1. Find the latest Cronet release [here][] and navigate to its `Release/cronet` - directory -1. Download `cronet_api.jar`, `cronet_impl_common_java.jar`, - `cronet_impl_native_java.jar` and the `libs` directory -1. Copy the three jar files into the `libs` directory of this extension -1. Copy the content of the downloaded `libs` directory into the `jniLibs` - directory of this extension -1. In your `settings.gradle` file, add - `gradle.ext.exoplayerIncludeCronetExtension = true` before the line that - applies `core_settings.gradle`. -1. In all `build.gradle` files where this extension is linked as a dependency, - add - ``` - android { - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - } - ``` - to enable Java 8 features required by the Cronet library. +```gradle +implementation 'com.google.android.exoplayer:extension-cronet:2.X.X' +``` + +where `2.X.X` is the version, which must match the version of the ExoPlayer +library being used. + +Alternatively, you can clone the ExoPlayer repository and depend on the module +locally. Instructions for doing this can be found in ExoPlayer's +[top level README][]. [top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md -[here]: https://console.cloud.google.com/storage/browser/chromium-cronet/android ## Using the extension ## diff --git a/extensions/cronet/build.gradle b/extensions/cronet/build.gradle index 0a52344464..7d8c217b58 100644 --- a/extensions/cronet/build.gradle +++ b/extensions/cronet/build.gradle @@ -19,14 +19,10 @@ android { buildToolsVersion project.ext.buildToolsVersion defaultConfig { - minSdkVersion project.ext.minSdkVersion + minSdkVersion 16 targetSdkVersion project.ext.targetSdkVersion } - sourceSets.main { - jniLibs.srcDirs = ['jniLibs'] - } - compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 @@ -34,9 +30,7 @@ android { } dependencies { - api files('libs/cronet_api.jar') - implementation files('libs/cronet_impl_common_java.jar') - implementation files('libs/cronet_impl_native_java.jar') + api 'org.chromium.net:cronet-embedded:66.3359.158' implementation project(modulePrefix + 'library-core') implementation 'com.android.support:support-annotations:' + supportLibraryVersion testImplementation project(modulePrefix + 'library') @@ -47,3 +41,9 @@ ext { javadocTitle = 'Cronet extension' } apply from: '../../javadoc_library.gradle' + +ext { + releaseArtifact = 'extension-cronet' + releaseDescription = 'Cronet extension for ExoPlayer.' +} +apply from: '../../publish.gradle' diff --git a/extensions/cronet/jniLibs/README.md b/extensions/cronet/jniLibs/README.md deleted file mode 100644 index e9f0717ae6..0000000000 --- a/extensions/cronet/jniLibs/README.md +++ /dev/null @@ -1 +0,0 @@ -Copy folders containing architecture specific .so files here. diff --git a/extensions/cronet/libs/README.md b/extensions/cronet/libs/README.md deleted file mode 100644 index 641a80db18..0000000000 --- a/extensions/cronet/libs/README.md +++ /dev/null @@ -1 +0,0 @@ -Copy cronet.jar and cronet_api.jar here.