这是我在windows环境下,试验过的最简单Android项目,只用记事本和命令行即可完成。
环境准备
开发环境需要Java SDK(官网下载),Android SDK(官网下载)。
首先安装Java SDK,然后将Android SDK解压到任意目录(建议解压到某个盘根目录,方便后续命令输入)。
接着需要下载Android SDK。打开刚才解压目录下的SDK Manager,勾选需要安装版本的SDK Platform点击Install package下载安装。
项目建立及代码编写
在任意地方新建一个目录,保存这个项目,然后新建一个src目录,用于存放源文件。因为Java有包的概念,所以进入src目录后,根据包名的层次,依次建立相应目录,然后新建Java源程序文件,比如:
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.java
回到项目根目录,新建另一个文件,保存为AndroidManifest.xml,内容如下:
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>
还可以从这里下载演示项目。
好了,项目至此已经完成了,下面进入编译打包环节。
编译打包
先打开命令行,输入javac -version,如果没有显示出java版本号,请将Java SDK的bin目录添加到path环境变量。
把当前目录切换到项目的根目录,然后新建两个目录
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=lib37 38 if exist %frameworkdir%%jarfile% goto JarFileOk 39 set frameworkdir=..\framework40 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文件,可以安装到手机上了。
时间: 2024-10-01 21:15:37