Android APK generation
using command line
In order to generate, we
need to follow the following steps
1. 1. Folder
Create these folders
inside your parent folder named AndroidTest. Folders you need to
create inside manually are
· Assets
This folder contains all html folder.
· Res
o Folders you need to create manually inside this folder
o Inside res/drawable copy app icon image, rename the image as
mylogo.png
o Inside res/values create a xml file named as string.xml
type the following code
Where myApplicationName
sets the name of your app.
· Src
o This folder contains the package including java source
Ex: com.tt.rnd (i.e. com\tt\rnd)
o Create a file named MyActivity.java inside your package
Ex : com\tt\rnd\MyActivity.java Paste the following code inside MyActivity.java
|
package com.tt.rnd;
import android.app.Activity; import android.content.res.Resources; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView webview = new WebView(this); webview.getSettings().setJavaScriptEnabled(true); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); webview.load--"file:///android_asset/index.html"); setContentView(webview); } } |
2.
AndroidManifest.xml You need create
this file inside your parent folder. Type the below code
3. Download Java
The Java
Standard Edition (Java SE) is available from Oracle at http://www.oracle.com/technetwork/java/javase/downloads.
Default installation
location will vary between Java versions and OS platforms, so create a pointer
to its location:
|
JAVA_HOME = C:/Program Files/Java/jdk1.6.0_26
|
5. Download Android
The Android
Software Development Kit (Android SDK) is available from Google
at http://developer.android.com/sdk.
Default installation
location will vary between Android versions and OS platforms, so create a
pointer to its location:
|
ANDROID_HOME = C:/Program Files/Android/android-sdk
|
6. Choose project
Locate the path to your
project named- AndroidTest
|
DEV_HOME = C:/Users/johnd/dev/AndroidTest
|
7. Create keystore
A keystore is a database
of private keys and their associated X.509 certificate chains
authenticating the corresponding public keys. An Android program must be signed in
order to execute on a device, and the program is signed by using a key from a
keystore.
Use the keytool program
to create a keystore:
|
JAVA_HOME/bin/keytool
-genkeypair
-validity 10000
-dname "CN=company name,
OU=organisational unit,
O=organisation,
L=location,
S=state,
C=country code"
-keystore DEV_HOME/AndroidTest.keystore
-storepass password
-keypass password
-alias AndroidTestKey
-keyalg RSA
-v
|
Replace the distinguished name (dname) information with your own. Make
sure to specify passwords as indicated. The key is accessed through the
specified alias which can be any string.
The output of the
command will be the DEV_HOME/AndroidTest.keystore file which contains one key identified by
the supplied alias.
8. Create R.java
In order for the
application source code to be able to access the resources within the res/ directory, a class called R.java (for Resources) is created.
Use the Android Asset Packaging Tool (aapt) to create the R.java file:
|
ANDROID_HOME/platform-tools/aapt
package
-v
-f
-m
-S DEV_HOME/res
-A DEV_HOME/assets
-J DEV_HOME/src
-M DEV_HOME/AndroidManifest.xml
-I ANDROID_HOME/platforms/android-15/android.jar
|
The destination location
of R.java within the src/ tree is determined by the package attribute
of the manifest file.
9. Compile code
Use the javac tool to compile java source code in a package:
|
JAVA_HOME/bin/javac
-verbose
-d DEV_HOME/obj
-classpath ANDROID_HOME/platforms/android-15/android.jar;DEV_HOME/obj
-sourcepath DEV_HOME/src
DEV_HOME/src/com/tt/rnd/0*.java
|
The command must be
applied for each existing package. 3rd-party .jar files from the lib/ directory must be
listed in the -classpath entry. Note that on UNIX-like operating
systems the classpath entry delimiter should be a colon (":").
The output of the
command is .class files in the obj/ tree.
Non-java files within
the src/ tree must be copied to the associated
location in the obj/ tree.
10. Create DEX file
DEX ("Dalvik
Executable") is the specific bytecode format understood by the Dalvik virtual machine (VM) present in all Android devices.
Use the dx tool to bundle the content of the obj/ directory as well as 3rd-party .jar files from the lib/ directory into a
single .dex file:
|
ANDROID_HOME/platform-tools/dx
--dex
--verbose
--output=DEV_HOME/bin/classes.dex
DEV_HOME/obj
DEV_HOME/lib
|
This will create
the classes.dex file in the bin/ directory. The content of a .dex file can be inspected using the ANDROID_HOME/platform-tools/dexdump tool.
11. Create APK file
The Android package format (APK) is the .jar equivalent for Android. The package contains the manifest
file, the resources and the classes.dex file.
Use the aapt tool to create the .apk file:
|
ANDROID_HOME/platform-tools/aapt
package
-v
-f
-A DEV_HOME/assets
-M DEV_HOME/AndroidManifest.xml
-S DEV_HOME/res
-I ANDROID_HOME/platforms/android-15/android.jar
-F DEV_HOME/bin/AndroidTest.unsigned.apk
DEV_HOME/bin
|
This will create the AndroidTest.unsigned.apk file in the bin/ directory. Note that
APK is an ordinary archive format that can be inspected by tools like WinZip or unzip
-l.
12. Sign APK file
In order to execute on
an Android device, the Android package needs to be signed.
Use the jarsigner tool
and the key from the keystore created above to create a signed version of the
package:
|
JAVA_HOME/bin/jarsigner
-verbose
-keystore DEV_HOME/AndroidTest.keystore
-storepass password
-keypass password
-signedjar DEV_HOME/bin/AndroidTest.signed.apk
DEV_HOME/bin/AndroidTest.unsigned.apk
AndroidTestKey
|
The signing process adds
the META-INF/ directory to the APK archive including the
signature (.SF) file and the associated PKSC file (.RSA).
The signed APK is stored
as AndroidTest.signed.apk file in the bin/ directory.
13. Zip-align APK file
zipalign is an archive alignment tool that
provides important optimization to Android packages. This step is
optional, but recommended:
|
ANDROID_HOME/tools/zipalign
-v
-f
4
DEV_HOME/bin/AndroidTest.signed.apk
DEV_HOME/bin/AndroidTest.apk
|
This will create
the AndroidTest.apk which is the final product delivered in one self-contained
unit.


No comments:
Post a Comment