Getting Start Make Module AAR for Android Project (Remote)

Introduce

AAR Format

The ‘aar’ bundle is the binary distribution of an Android Library Project.

The file extension is .aar, and the maven artifact type should be aar as well, but the file itself a simple zip file with the following entries:

  • /AndroidManifest.xml (mandatory)
  • /classes.jar (mandatory)
  • /res/ (mandatory)
  • /R.txt (mandatory)
  • /assets/ (optional)
  • /libs/*.jar (optional)
  • /jni//*.so (optional)
  • /proguard.txt (optional)
  • /lint.jar (optional)

These entries are directly at the root of the zip file.

The R.txt file is the output of aapt with –output-text-symbols.

In android’s view, bitmap,graphics, opengl and animation are included in graphics. The classes about shape will be introduced in this article. The other content will be introduced later.

Different between AAR and JAR

  • *.jar: contains only the class file and the manifest file, does not contain resource files, such as pictures, all res in the file.

  • *.Aar: contains all resources, class and res resource files are all included

Getting Started

Build a AAR

Create a new project, create a new module in the project, select Android jar, and then the next step next. After the new you will see in your module in the first line of the build.gradle file apply plugin: ‘com.android.library’, which represents it is a jar. Then run with

install```, you will see an aar file in your project directory.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122

### uploadBinary

1. Edit the buid.gradle of mxaar
```java
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 24
versionCode 1
versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

lintOptions {
disable 'InvalidPackage'
checkReleaseBuilds false
abortOnError false
}

}

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:24.2.0'
testCompile 'junit:junit:4.12'
}
version = "1.0.0"

def siteUrl = 'https://github.com/dachmx/mxaar' //

def gitUrl = 'https://github.com/dachmx/mxaar.git' // git

group = "com.dachmx" //

install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
name 'MxAAR For Android' // Title of the package
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'dachmx'
name 'dachmx'
email 'dachmx@outlook.com'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}

task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}

task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}

artifacts {
archives javadocJar
archives sourcesJar
}

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")

configurations = ['archives']
pkg {
userOrg = "dachmxorg" # new version of bintray, repo is in the organization
repo = "mavean"
name = "MxAAR"
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}

  1. upload
install```
1
2

``` ./gradlew bintrayUpload
  1. use aar
    add repo
    1
    2
    3
    4
    maven{
    url 'https://dl.bintray.com/dachmxorg/mavean/'

    }

add compile dependencies

1
compile 'com.dachmx:mxaar:1.0.0'

  1. Attention

The most important is that you must add userOrg, otherwise can’t find the path upload.

ref:

New Version Bintray,upload aar to jcenter (Used in the article)

build aar with gradle

android-reference-local-aar