The continued integration of the Android project requires building a compilation and packaging automation process, such as building a daily build system, automatically generating release files, and so on. All of this requires a deeper understanding of the Android project's compilation and packaging, such as knowing what each step does, what environment and tools it needs, what inputs and outputs are, and so on.
First of all, assuming that your system (Windows, Linux, Mac os) is OK, this article defaults to using Linux as an example, but there is little difference in windows that has the JDK and the Android SDK installed.
Our main concern is:
(1) What is the input of this process?
(2) What is the output of this process?
(3) What tools are used in this process?
As for what parameters to use, you can go to see the corresponding command of the Help file, or online search, this is not the focus of this article.
List the tools you need in the following steps in advance, such as the table below:
Step One: Package resource files, generate R.java files
"Enter" the resource file (which is the file in the project Res), the assets file (equivalent to another resource, the Android system is not as optimized as the file in res), Androidmanifest.xml file (the package name is read from here, because the package name is required to generate the R.java file), the Android base Class library (Android.jar file)
"Output" packaged resources (generally in the Android Project Bin directory can see a file called Resources.ap_ is it), R.java files (in the Gen directory, you should be very familiar with)
Tool AAPT Tool, its path is ${android_sdk_home}/platform-tools/aapt (if you are using a Windows system, it should be written in the customary path:%android_sdk_home%\ Platform-tools\aapt.exe, same below).
Step Two: Process the Aidl file, generate the corresponding. java file (of course, there are many projects that do not use the aidl, then the process can be saved)
"Input" source file, aidl file, framework.aidl file
The. java file that corresponds to "output"
Tools Aidl Tool
Step three: Compile the Java file and generate the corresponding. class file
"Input" source files (including R.java and aidl generated. java files), library files (. jar files)
"Output". class file
Tools Javac Tool
Step Fourth: Convert the. class file into a. dex file supported by the Davik VM
"Input". class file (including Aidl generation. class file, R generated. class file, source file generated. class file), library file (. jar file)
Output. dex file
Tools Dex Tool
Fifth step: Packaging to generate unsigned. apk files
"Enter" the packaged resource file, the packaged class file (. dex file), the Libs file (including the. so file, and of course many projects do not have such a file, if you do not use C + + development)
' Output ' unsigned. apk file
Tools Apkbuilder Tool
Step Sixth: Sign the unsigned. apk file
"Enter" an unsigned. apk file
The. apk file with the "output" signature
"Tools" Jarsigner
Step seventh: Align to the signed. apk file (no alignment is possible to be published to Google market)
The. apk file after the "enter" signature
The. apk file after the output is aligned
Tools Zipalign Tool
Once you know these details, you can implement a lot of things that we want to implement, such as compiling process automation, for example, we can use some kind of script, like batch processing under Windows, Bash,java under Linux, Ant,python, Perl, Even directly with Java,. NET these strong type language also can.
If you really understand the steps above and understand the nature of the compile package process, you can automate it in any way you want, which is the real "extrapolate, status quo." Another example, the streamlining of the Android SDK, we know that now the Android SDK hundreds of trillion, we can fully apply the knowledge, only the necessary tools to reduce the SDK to 10M below. Of course, you can do a lot of things, if you really understand it.
Using the compilation tool ant
1, download
This is the official download page:
http://ant.apache.org/srcdownload.cgi
My example environment below is the Ubuntu system.
2, installation
1) Decompression
Tar zxvf apache-ant-1.9.0-bin.tar.gz
2) Configure the environment
sudo vi/etc/profile
export ant_home=/home/homer/apache-maven/ant-1.9.0/
export path= $ANT _home/bin: $PATH
sudo source/etc/profile
3, verify
homer@ubuntu:~$ ant-v
Apache Ant (TM) version 1.9.0 compiled on March 5 2013 the '
default build trying. XML
Buildfile:build.xml does not exist!
Build failed
Installation Complete!
4, create the project
1 List of Android platforms
The output results are as follows:
2 Android command to create a project
Command format:
Copy Code code as follows:
Android Create Project--target <target-id>--name myfirstapp--path <path-to-workspace> Myfirstapp-- Activity mainactivity--package Com.example.myfirstapp
For example, create a anttest command as follows:
Copy Code code as follows:
Android Create Project--target android-3--name anttest--path/home/homer/workspace/anttest--activity ity--package Com.homer.anttest
Create the project as follows:
5, compile the project
1) Enter the project directory
Cd/home/homer/workspace/anttest
2) Check if there are build.xml files
The Build.xml file, which is used as the ant configuration file under the project root, and if not, the build is updated with the Android update command as follows:
Copy Code code as follows:
Android Update Project--target android-3--name anttest--path/home/homer/workspace/anttest
3) Ant command Compile project
In the project anttest root directory, enter the compile command:
The output command information is as follows:
At this point, the bin directory will generate anttest-debug.apk files, such as the following figure:
PPPPPPPPPPPPPPPPPPPPP5
6, installation verification
1) List AVD
The AVD list is as follows:
2) Start simulator
ANDROID-SDK-LINUX/TOOLS/EMULATOR-AVD AVD-1.5
3) Installation apk
ADB install bin/anttest-debug.apk