F-Droid buildsď
F-Droid builds (most) applications from source, signs them using their signing key and then those applications are published on their applications repository. Publishing on F-Droid also requires us to make sure that the project is Free, Libre and Open Source Software (FLOSS) and does not use or depend on proprietary software, trackers or ad libraries.
AndroidIDE already complies with F-Droidâs Inclusion Policy. However, there are a few things that must be taken into account when working on the AndroidIDE project.
Note
The following instructions MUST be followed if you are working on the AndroidIDE project and plan to propose a change. The instructions can be ignored if youâre building AndroidIDE for personal use or if you do not intend to propose your changes to the upstream AndroidIDE repository.
Trusted maven repositories - Only trusted Maven repositories must be used in the project. Check the list of maven repositories that are allowed by F-Droid in their inclusion policy.
No pre-packaged libraries - Prebuilt libraries must not be included in the projectâs codebase. For example, you cannot directly include a
.jar
or.aar
file in the libs directory. Instead, try to build the library from source by adding it as a module. If this is not possible, please open an issue so it can be discussed with the maintainers.No prebuilt executables/shared-libraries - Prebuilt executable files must not be included in the projectâs codebase. For example, you cannot simply include a JNI library into the codebase. Shared libraries must be built from source, always.
Build configurationď
When building AndroidIDE for F-Droid, certain properties are provided to the Gradle build via the fdroid.properties
file.
As of this writing, the following properties are defined in this file :
ide.build.fdroid=<boolean>
- Whether we are building AndroidIDE in F-Droidâs build server. This is always set totrue
when building for F-Droid.ide.build.fdroid.version=<string>
andide.build.fdroid.vercode=<integer>
- Version name and version code for AndroidIDE. When building for F-Droid, a fixed version name and version code is provided. Learn more about this in versioning.ide.build.fdroid.arch=<string>
- An APK for each supported CPU architecture is built separately for F-Droid builds. This property specifies the CPU architecture that we are building for. Its value must be one of the following :arm64-v8a
armeabi-v7a
x86_64
ide.build.fdroid.aapt2File.<arch>=<path-to-aapt2>
- Path to the prebuiltaapt2
file for the given CPU architecture. The value of<arch>
here must be the same as the value ofide.build.fdroid.arch
property. The F-Droid build server buildsaapt2
from source before building AndroidIDE, then it provides the path to this builtaapt2
binary via this property.