如何从具有gradle依赖性的代码创建Android库?
我正在创建一个基于以下组件的依赖项的Android库。
- 我的库代码
- 布局和资源文件
- 对第三方的依赖关系。
首先,我想到为我的库创建.jar文件,但后来我发现laulyoit和资源文件不是用jar编译的。然后我决定创建AAR文件。请建议这个是正确的举动还是有其他选择?
现在,主要问题我被困在gradle依赖项中。我们正在创建一个付费库,该库使用一些第三方,例如只能通过Gradle获得的Google。现在,由于我正在创建一个AAR文件,因此不会有清单.xml和Gradle文件,我如何将第三方与我自己的代码集成。我们有严格的说明,我们不得告诉图书馆的用户包括该第三方。简而言之,我们不能让用户知道我们的图书馆正在使用什么样的第三方。那么,有没有办法创建一个AAR文件,该文件也具有预编译的gradle依赖项,而不会透露用户我们正在使用什么服务?
更新 1
这是我的 build.gradle for Library
apply plugin: 'com.android.library'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
dexOptions {
preDexLibraries = false
javaMaxHeapSize "4g" // 2g should be also OK
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:+'
compile 'com.google.android.gms:play-services-vision:10.2.1'
testCompile 'junit:junit:4.12'
}
之后,我将 .aar 文件移动到本地 maven,然后使用应用程序项目中的输出文件进行创建。这是相同的等级。
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.jarvis.myapplication"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile('com.company:mylibrary:1.0@aar')
{
transitive = true
}
compile 'com.android.support:appcompat-v7:25.3.0'
testCompile 'junit:junit:4.12'
}