# Tiny Android Template *For Android projects written in Kotlin and/or Java, using the latest AndroidX libraries* The purpose of this template is to give people the ability to write Android apps without having to use Android Studio or Gradle. When I picked up Android dev for the first time, I was struck by how frustratingly slow and janky these tools were to use, and that they seemed to only run at an acceptable pace on machines designed for gaming. However, I still wanted to write apps for Android, so I developed this template so I could continue my work without having to use an IDE or external build system. ### Requirements - Java Development Kit (JDK) - Kotlin Compiler ***(optional)*** - Android SDK - 7-Zip - Bash & Perl (Cygwin/MSYS if on Windows) ### Does Not Require - Android Studio - Gradle - Apache Maven / Ant - Any external build system ## Getting the Android SDK At the time of writing, [https://dl.google.com/android/repository/repository2-1.xml] contains a list of links to packages that form the Android SDK. The only required SDK packages for compilation are `build-tools_-.zip` and `platform_.zip`. If you wish to run native code with JNI, you'll also need `android-ndk--.zip`. For running the app remotely, you'll find `adb` inside `platform-tools_-.zip`. To download the SDK packages, run `sdk-package-list.py`, which will generate `sdk-package-list.html` with links to all SDK downloads. Alternatively, you can acquire packages manually by downloading the aforementioned xml file and append each package name to `https://dl.google.com/android/repository/`. ## Installing the Tools 1) Make sure you have 7-Zip, Java Development Kit (a superset of the Java Runtime Environment), Bash & Perl, and optionally the Kotlin compiler installed. These will all need to be accessible from your $PATH variable (see [https://en.wikipedia.org/wiki/PATH_(variable)]). If you're on Windows, you'll need Cygwin/MSYS to make use of Bash and Perl. 2) Copy all files from this repository into a separate folder. In the level above that folder, create another folder called `Sdk`. 3) Download the `build-tools` and `platform` Android SDK packages - see **"Getting the Android SDK"** above for details. Extract the contents of both archives (at the top level) into the `Sdk` folder. 4) Check the variables at the top of the `includes.sh`. Edit them to match the names of the folders that were just extracted. ## Selecting a template This repository offers three templates: vanilla, JNI and AndroidX. Only the AndroidX template has dependencies. To select one to start from, rename `src-