AndroidIDE Developer Guide

General information/guide about building the AndroidIDE project locally. User’s wiki is available here.

Note

The documentation is still a work in progress. It may contain out-of-date or incomplete information. If you find any issues, please open an issue at https://github.com/AndroidIDEOfficial/docs/issues.

Projects

All source code that belongs to AndroidIDE are split between repositories under the AndroidIDEOfficial GitHub organisation.

  • AndroidIDE - The AndroidIDE application sources.

  • terminal-packages - patches and build system for the terminal packges (fork of termux-packages).

  • android-tree-sitter - Java bindings for the tree-sitter library for fast and incremental syntax analysis.

  • androidide-tools - basic bash scripts for AndroidIDE (including the installation script). The Android SDK updates and build/platform tools for AndroidIDE are released in this repository.

  • platform-tools - Patches and build configuration for building Android build/platform tools (aapt2, aidl, adb, etc.) for AndroidIDE.

  • tree-sitter-* - tree sitter grammars for AndroidIDE.

This wiki provides information about building the AndroidIDE project. To build other projects, visit the respective GitHub repositories.

External projects

Apart from the projects that are hosted under the GitHub organisation, AndroidIDE also uses other projects. Some of them are listed below.

  • sora-editor - A multifunctional Android code editor library.

  • AOSP - AndroidIDE uses projects from the Android Open Source Project.

    • aaptcompiler* - for parsing and analyzing XML sources in Android modules.

    • layoutlib-api* - The layoutlib API (required by aaptcompiler).

    • tools-common - Android SDK Commons.

    • other tools from AOSP (listed in version catalog)

  • nb-javac-android* - The JDK 17’s Java Compiler ported for Android (based on nb-javac). It includes the following modules :

    • java-compiler - Java Compiler API.

    • jdk-compiler - Java Compiler (internal) implementation.

    • jdk-jdeps

  • javapoet* - for dynamically creating Java files.

  • eclipse-lemminx* - The DOM API from the Eclipse LemMinX project.

  • jaxp* - for parsing & processing XML files (required by LemMinX’s Parser).

  • flashbar* - for showing (interactive) messages in the IDE.

  • fuzzywuzzy* - for fuzzy matching completion items.

Projects marked with * are included directly in AndroidIDE (i.e. they are built from source).

Other repositories

The following are some of the projects that are not directly linked with AndroidIDE but can still be helpful to users/developers :

Translations

Translations are managed on Crowdin. You can visit the Crowdin project page to help with the translations.

AndroidIDE is translated into 10+ languages, thanks to all the Crowdin contributors.

Help & Support

  • Telegram group - You can join the Telegram group to discuss bugs, features and suggestions.

  • Telegram channel - Join the channel to get latest updates about AndroidIDE.

If you have any questions or need assistance with the contribution process, please don’t hesitate to reach out. We value your commitment to open source and look forward to collaborating with you.