这是我在windows环境下,试验过的最简单Android项目,只用记事本和命令行便可完成。java
开发环境须要Java SDK(官网下载),Android SDK(官网下载)。
android
首先安装Java SDK,而后将Android SDK解压到任意目录(建议解压到某个盘根目录,方便后续命令输入)。express
接着须要下载Android SDK。打开刚才解压目录下的SDK Manager,勾选须要安装版本的SDK Platform点击Install package下载安装。apache
在任意地方新建一个目录,保存这个项目,而后新建一个src目录,用于存放源文件。由于Java有包的概念,因此进入src目录后,根据包名的层次,依次创建相应目录,而后新建Java源程序文件,好比:windows
1 package test.android; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.app.AlertDialog; 6 7 public class Mini extends Activity { 8 public void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 new AlertDialog.Builder(this).setMessage("It works.").show(); 11 } 12 }
将文件保存为Mini.javaoracle
回到项目根目录,新建另外一个文件,保存为AndroidManifest.xml,内容以下:app
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.android"> 3 <application> 4 <activity android:name=".Mini"> 5 <intent-filter> 6 <action android:name="android.intent.action.MAIN" /> 7 <category android:name="android.intent.category.LAUNCHER" /> 8 </intent-filter> 9 </activity> 10 </application> 11 </manifest>
还能够从这里下载演示项目。less
好了,项目至此已经完成了,下面进入编译打包环节。ui
先打开命令行,输入javac -version,若是没有显示出java版本号,请将Java SDK的bin目录添加到path环境变量。this
把当前目录切换到项目的根目录,而后新建两个目录
1 mkdir bin 2 mkdir bin\classes
由于没有用到资源文件,因此第一步,直接编译Java源文件。
1 javac -encoding utf-8 -source 1.7 -target 1.7 -bootclasspath \Android\android-sdk-windows\platforms\android-23\android.jar -d bin\classes src\test\android\Mini.java
将编译好的文件打包成dex格式
1 D:\Android\android-sdk-windows\build-tools\23.0.3\dx.bat --dex --output=bin\classes.dex bin\classes
将资源文件打包
1 D:\Android\android-sdk-windows\build-tools\23.0.3\aapt.exe package -f -M AndroidManifest.xml -I \Android\sdk\platforms\android-19\android.jar -F bin\mini
用apkbuilder将全部文件打包成apk
1 D:\Android\android-sdk-windows\tools\apkbuilder.bat \workspace\test\android\minimum\mini.apk -v -u -z D:\workspace\test\android\minimum\bin\mini -f D:\workspace\test\android\minimum\bin\classes.dex
高版本的Java SDK里已经不提供apkbuilder.bat了,这里将文件内容贴一下,能够本身建立一个:
1 @echo off 2 rem Copyright (C) 2007 The Android Open Source Project 3 rem 4 rem Licensed under the Apache License, Version 2.0 (the "License"); 5 rem you may not use this file except in compliance with the License. 6 rem You may obtain a copy of the License at 7 rem 8 rem http://www.apache.org/licenses/LICENSE-2.0 9 rem 10 rem Unless required by applicable law or agreed to in writing, software 11 rem distributed under the License is distributed on an "AS IS" BASIS, 12 rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 rem See the License for the specific language governing permissions and 14 rem limitations under the License. 15 16 rem don't modify the caller's environment 17 setlocal 18 19 rem Set up prog to be the path of this script, including following symlinks, 20 rem and set up progdir to be the fully-qualified pathname of its directory. 21 set prog=%~f0 22 23 rem Change current directory and drive to where the script is, to avoid 24 rem issues with directories containing whitespaces. 25 cd /d %~dp0 26 27 rem Check we have a valid Java.exe in the path. 28 set java_exe= 29 call lib\find_java.bat 30 if not defined java_exe goto :EOF 31 32 set jarfile=sdklib.jar 33 set frameworkdir= 34 35 if exist %frameworkdir%%jarfile% goto JarFileOk 36 set frameworkdir=lib\ 37 38 if exist %frameworkdir%%jarfile% goto JarFileOk 39 set frameworkdir=..\framework\ 40 41 :JarFileOk 42 43 set jarpath=%frameworkdir%%jarfile% 44 45 call %java_exe% -classpath %jarpath% com.android.sdklib.build.ApkBuilderMain %*
生成签名文件
1 keytool -genkey -alias my.keystore -keyalg RSA -validity 20000 -keypass 123456 -storepass 123456 -keystore my.keystore
生成签名文件时,提示输入姓名单位之类均可以直接回车忽略,最后输入y确认便可
对apk文件签名
1 jarsigner -verbose -keystore my.keystore -keypass 123456 -storepass 123456 -signedjar mini_signed.apk mini.apk my.keystore
这时就生成了最终的apk文件,能够安装到手机上了。