blob: 1c61748322cd21b3d6f5dfb7f4409be80672101a (
plain)
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
|
# Distributing Mapbox GL Native for Android
Depending on your use case, you may want to support all or just a subset of [Android ABIs](http://developer.android.com/ndk/guides/abis.html). This document covers building an `.aar` file from the Mapbox Android SDK and building `.so` files for specific ABIs. In normal circumstances an application developer will use [APK splits](https://developer.android.com/studio/build/configure-apk-splits.html) to optimize this at application level.
##### Build types
With a `BUILDTYPE` var you can specify the build type for the `.so` and `.aar` files:
```bash
BUILDTYPE=Debug or BUILDTYPE=Release
```
##### Creating an Android Archive file that supports all ABIs
```sh
BUILDTYPE=Release make apackage
```
This will build native libraries to support following ABIs:
- armeabi
- armeabi-v7a
- arm64-v8a
- x86
- x86_64
- mips
After succesfully finish building the native libraries, gradle will build the MapboxAndroidSDK module and generate an Android Archive file in `MapboxAndroidSDK/build/outputs/aar `. The packaged native libraries can be found in `MapboxAndroidSDK/src/main/jniLibs/<abi>`.
##### Build native libraries for a specific ABI
```sh
make android-lib-%%
```
In the command above you'll need to replace `%%` with an ABI key listed below:
| ABI Key | Android ABI |
| ------- | ----------- |
| arm-v5 | armeabi |
| arm-v7 | armeabi-v7a |
| arm-v8 | arm64-v8a |
| x86 | x86 |
| x86-64 | x86_64 |
| mips | mips |
For example, to build the arm64-v8a ABI the Makefile target would be:
```sh
make android-lib-arm-v8
```
It's also possible to build multiple ABI (without having to build them all) by running the Makefile multiple times. For example to build arm64-v8a and x86_64 in the same project the commands would be:
```sh
make android-lib-arm-v8
make android-lib-arm-x86-64
```
|