Yes, you can easily do it ALL from the command line (I do not agree with the IDE proposal).
It uses the old faithful Apache Ant . It uses no Gradle , which requires more work.
To summarize
What you type ( total 2 lines to create apk):
android create project
(This creates an Apache Ant build file called build.xml , which is similar to build.gradle . Now write some code, but TestActivity.java already exists and will be compiled)
ant debug
Customization
( Note : the <<27> command has been deprecated since Build Tools v26 , so use the old one (see link below), deprecated in this case means TOTALLY deleted! { Mischievous Google}).
Install the Java JDK if it is not already installed (for example, you can use jdk-8u151-windows-x64.exe), and make sure the JAVA_HOME environment variable is defined , for example:
JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_112
JAVA_PATH = C: \ Program Files \ Java \ jre1.8.0_112 \ bin
JDK is a Java Development Kit.
JRE is a Java runtime.
Install the Android SDK Tools (for example, installer_r24.4.1-windows.exe , see this answer ) if it is not already done, then deselect in the SDK Manager GUI and select βAndroid SDK Build-Toolsβ (for example, Android SDK Build-Tools 19.1 ) + one (or many) platforms (e.g. Android 4.1.2 (API 16) JELLY_BEAN ). To prove that you do not need Android Studio , you are not going to download it! (SDK only).
Download Apache Ant (e.g. apache-ant-1.9.9-bin.zip )
Detail
To create a project from the command line using the Android SDK :
Determine the location for your project:
cd c:\android mkdir antTest cd antTest
Run the command:
C:\Android\sdk1\tools\android create project --target "android-16" --path basj --activity TestActivity --package com.android.basj ^ | --------------+ (here where I keep an old version of tools (version 25 in my case)
Here is the directory structure created (and all the files you need to collect):
C:. +---basj +---bin +---libs +---res Β¦ +---drawable-hdpi Β¦ +---drawable-ldpi Β¦ +---drawable-mdpi Β¦ +---drawable-xhdpi Β¦ +---layout Β¦ +---values +---src +---com +---android +---basj
detailed output of the creation project:
Created project directory: C:\Android\antTest\basj Created directory C:\Android\antTest\basj\src\com\android\basj Added file C:\Android\antTest\basj\src\com\android\basj\TestActivity.java Created directory C:\Android\antTest\basj\res Created directory C:\Android\antTest\basj\bin Created directory C:\Android\antTest\basj\libs Created directory C:\Android\antTest\basj\res\values Added file C:\Android\antTest\basj\res\values\strings.xml Created directory C:\Android\antTest\basj\res\layout Added file C:\Android\antTest\basj\res\layout\main.xml Created directory C:\Android\antTest\basj\res\drawable-xhdpi Created directory C:\Android\antTest\basj\res\drawable-hdpi Created directory C:\Android\antTest\basj\res\drawable-mdpi Created directory C:\Android\antTest\basj\res\drawable-ldpi Added file C:\Android\antTest\basj\AndroidManifest.xml Added file C:\Android\antTest\basj\build.xml Added file C:\Android\antTest\basj\proguard-project.txt
Download Apache Ant from http://ant.apache.org/ .
See this tutorial for customization: http://www.vogella.com/tutorials/ApacheAnt/article.html
Also see this tutorial: http://blog.vogella.com/2011/03/16/creating-android-applications-via-the-command-line-ant/
Write your code (Hello world).
Run this command and you will get Android Apk on the other hand (called TestActivity-debug.apk):
ant debug
Hey presto, you have android apk!
New structure added:
C:. ββββbin β ββββclasses β β ββββcom β β ββββandroid β β ββββbasj β ββββdexedLibs β ββββres β ββββdrawable-hdpi β ββββdrawable-ldpi β ββββdrawable-mdpi β ββββdrawable-xhdpi ββββgen β ββββcom β ββββandroid β ββββbasj
For final assembly:
ant release
If you are interested in a more extensive example of Ant build.xml or DEX files, and deeper Android work look here
How to sign an already compiled apk
See how to sign an already compiled apk , as well as this
From @ for3st's answer here you can find the relevant part of this post:
Manual process:
Step 1: Generate Keystore (only once)
You need to create a keystore once and use it to sign unsigned apk. Use the keytool provided by the JDK found in %JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
Step 2 or 4: Zipalign
zipalign which is a tool provided by the Android SDK in particular %ANDROID_HOME%/sdk/build-tools/24.0.2/ is a mandatory optimization step if you want to download apk to the Play Store.
zipalign -p 4 my.apk my-aligned.apk
Note: when using the old jarsigner you need to zipalign AFTER signing. When using the new apksigner method apksigner you do this before you sign up (confusing, I know). Calling zipalign before apksigner works fine because apksigner preserves APK alignment and compression (unlike jarsigner ).
You can check the alignment with:
zipalign -c 4 my-aligned.apk
Step 3: Sign and Confirm
Using built-in tools 24.0.2 and later
Use jarsigner , which, like keytool, comes with the JDK distribution found in %JAVA_HOME%/bin/ and use it like this:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
and can be checked with
jarsigner -verify -verbose my_application.apk
Using built-in tools 24.0.3 and newer
Android 7.0 introduces APK Signature Scheme v2 new application subscription scheme that offers faster application installation time and greater protection against unauthorized changes in APK files (see here and here for more details). Therefore, Google implemented its own APK subscriber: apksigner (duh!) The script file can be found in %ANDROID_HOME%/sdk/build-tools/24.0.3/ (.jar is located in the /lib subfolder). Use it like this:
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
and can be checked with:
apksigner verify my-app.apk