A collection of Android build scripts for various third-party libraries and the tooling to build them

Related tags

Utility ndktools
Overview

ndkports

A collection of Android build scripts for various third-party libraries and the tooling to build them.

If you're an Android app developer looking to consume these libraries, this is probably not what you want. This project builds AARs to be published to Maven. You most likely want to use the AAR, not build it yourself.

Note: Gradle support for consuming these artifacts from an AAR is a work in progress.

Ports

Each third-party project is called a "port". Ports consist of a description of where to fetch the source, apply any patches needed, build, install, and package the library into an AAR.

A port is a subclass of the abstract Kotlin class com.android.ndkports.Port. Projects define the name and version of the port, the URL to fetch source from, a list of modules (libraries) to build, and the build steps.

See the Port class for documentation on the port API.

Individual port files are kept in ports/$name/port.kts. For example, the cURL port is ports/curl/port.kts.

Building a Port

ndkports requires an NDK to be used for building to be specified on the command line as well as a list of packages to build. For example, to build cURL:

$ ./gradlew run --args='--ndk /path/to/android-ndk-r20 openssl curl'
Build output...
$ find  -name '*.aar'
./out/curl/curl.aar
./out/openssl/openssl.aar

Note that dependencies currently need to be already built or ordered explicitly.

To build all ports using Docker, use scripts/build.sh.

You might also like...
Collection of source codes, utilities, templates and snippets for Android development.

Android Templates and Utilities [DEPRECATED] Android Templates and Utilities are deprecated. I started with this project in 2012. Android ecosystem ha

FractalUtils - A collection of utility functions and classes, with an emphasis on game related utilities

A collection of utility functions and classes written in Kotlin. There is some emphasis on utilities useful for games (Geometry, Random, Time, Updating, etc).

A collection of small utility functions to make it easier to deal with some otherwise nullable APIs on Android.

requireKTX is a collection of small utility functions to make it easier to deal with some otherwise nullable APIs on Android, using the same idea as requireContext, requireArguments, and other similar Android SDK methods.

ModernStorage is a group of libraries that provide an abstraction layer over storage on Android to simplify its interactions
ModernStorage is a group of libraries that provide an abstraction layer over storage on Android to simplify its interactions

ModernStorage ModernStorage is a group of libraries that provide an abstraction layer over storage on Android to simplify its interactions by apps dev

Sample android setup for deploying libraries on maven central

Perfect-android-library-template This is how I prefer my android setup. This setup has a sample app and a deployable library that deploys to maven cen

Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

gRPC and protocol buffers for Android, Kotlin, and Java.

Wire “A man got to have a code!” - Omar Little See the project website for documentation and APIs. As our teams and programs grow, the variety and vol

General purpose utilities and hash functions for Android and Java (aka java-common)

Essentials Essentials are a collection of general-purpose classes we found useful in many occasions. Beats standard Java API performance, e.g. LongHas

A simple and easy to use stopwatch and timer library for android

TimeIt Now with Timer support! A simple and easy to use stopwatch and timer library for android Introduction A stopwatch can be a very important widge

Comments
  • Unable to build ndkports with provided information

    Unable to build ndkports with provided information

    I'm trying to build a project with a scripts/build_release.sh but an errors occurs. OpenSSL builds well, the first error occurs in the resiprocate:extractSrc task

    * What went wrong:
    A problem was found with the configuration of task ':resiprocate:extractSrc' (type 'SourceExtractTask').
    > File '/tmp/reSIProcate-snapshot.tar.gz' specified for property 'source' does not exist.
    

    When I added the archive manually (I added COPY reSIProcate-snapshot.tar.gz /tmp/reSIProcate-snapshot.tar.gz to docker file) another error occurs

    * What went wrong:
    Execution failed for task ':resiprocate:prefab'.
    > java.io.FileNotFoundException: /src/resiprocate/build/port/dependencies/openssl-1.1.1l-beta-1/AndroidManifest.xml (No such file or directory)
    

    Could you check if the scripts are correct and update how to build information?

    Screenshot 2022-02-10 at 03 37 26 Screenshot 2022-02-10 at 03 29 47
    opened by nikedlab 1
Owner
reSIProcate project
C++ implementation of SIP and related standards
reSIProcate project
A tiny framework to execute shell scripts on Android

Skippy A tiny framework to execute shell scripts on Android Why I first sought out to create a basic script manager for Android.

Tyler 4 Jul 31, 2022
A collection of Android libraries for simplifying development

Andromeda A collection of Android libraries for simplifying development Usage Andromeda uses Jitpack for distribution, the following gradle dependency

Kyle Corry 11 Dec 6, 2022
Access and process various types of personal data in Android with a set of easy, uniform, and privacy-friendly APIs.

PrivacyStreams PrivacyStreams is an Android library for easy and privacy-friendly personal data access and processing. It offers a functional programm

null 269 Dec 1, 2022
🐫🐍🍢🅿 Multiplatform Kotlin library to convert strings between various case formats including Camel Case, Snake Case, Pascal Case and Kebab Case

KaseChange Multiplatform Kotlin library to convert strings between various case formats Supported Case Formats SCREAMING_SNAKE_CASE snake_case PascalC

PearX Team 67 Dec 30, 2022
Matches incoming and/or outgoing text messages against set rules and sends them over to webhook.

Textmatic If you ever wanted a tool to simply push the SMS (or text messages) from your phone to somewhere remote, this is it. This app matches all in

Float 2 Jan 7, 2022
Various useful utilities for Android apps development

Android Commons Various useful utilities for Android apps development. API documentation provided as Javadoc. Usage Add dependency to your build.gradl

Alex Vasilkov 112 Nov 14, 2022
Secure Preference Manager for android. It uses various Encryption to protect your application's Shared Preferences.

Secure-Pref-Manager ##Secure Preference Manager is a simple Library to help you protect your Shared Preferences. Secure Preference Manager for android

Prashant Solanki 72 Nov 25, 2022
A simple Android utils library to write any type of data into cache files and read them later.

CacheUtilsLibrary This is a simple Android utils library to write any type of data into cache files and then read them later, using Gson to serialize

Wesley Lin 134 Nov 25, 2022
XClipper is a clipboard manager for Windows & Android which helps to track clipboard activities and makes it easier to interact with them.

XClipper XClipper is a clipboard manager for Windows & Android which helps to track clipboard activities and makes it easier to interact with them ❤️

Kaustubh Patange 134 Dec 31, 2022
SharedPreference Library to save all types including your custom types and observe them if need be.

A SharedPreference Library that can be used to store all types including your custom classes and observe them too if needed.

Ehma Ugbogo 18 Nov 10, 2021