赖锋
我的china-unix博客 http://laiboy.cublog.cn
我的CSDN博客 http://blog.csdn.net/laiboy
程序描述
利用命令行方式重新编译Android自带的Notepad程序!通过手工安装程序到摸拟器上运行!
程序目的
了解Eclipse的Android开发插件编译,部署程序的过程!
实现流程
以下为实现命令行构建Android应用程序的流程图
以下为实现过程的演示步聚
准备工作
1.设置环境变量
由于是选择Androi2.3的例子,所以选择5
在根据设置配置好android开发环境之后,你可以在dos命令下键入 如下命令查看某些应用配置:
如:
cmd进入后,键入----android list targets 可以查看你已经安装好的androidSDK
键入----android list avd 可以查看你已经创建的AVD应用
键入----emulator -avd avdName 可以启动相应的AVD模拟器
当然还以很多命令,知道的朋友可以贴上来分享,一起学习。
在模拟器端,可以按 Ctrl+F11来调整模拟器的横竖摆放,Esc键直接可以退出你选中的应用。
设置了相应的环境变量
2.创建基于Android2.3的摸拟器,使用以下命令创建
android create avd -c 32M -t 6 -n AndroidVD2.3
则创建一个32M,基于android2.3平台的摸拟器
运行摸拟器
emulator -avd AndroidVD2.3
以下有两个辅助命令,很有帮助
列出SDK支持的开发列表
android list target
列出已创建的摸拟器列表
android list avd
注意点:如果没有设置ANDROID_SDK_HOME这个环境变量,则虚拟机会安装在默认目录下,在windows平台上默认目录为
C:/User/<user>/.android
构建过程 以下为android sdk自带例子的目录结构,我删除了test的目录,这部分不需要
以上是一个标准的android的应用程序目录结构,手工开发也应该遵守官方推荐标准(事实也可以自已定义目录结构)
例子没有bin,gen,assets这三个目录,需要建立这三个目录.
以下为我编译notepad的过程,具体参数意义参考官方文档
1.选用aapt生成资源文件
1 aapt package -f -m -J gen -S res -IE:/android-sdk-windows/platforms/android-9/android.jar -M AndroidManifest.xml
这个会在gen目录下生成R.java文件
2.编译生成的java文件与源文件
2 javac -encoding GB18030 -target 1.5-bootclasspath E:/android-sdk-windows/platforms/android-9/android.jar -d binsrc/com/example/android/notepad/*.java gen/com/example/android/notepad/R.java
这会在bin目录下生成java字节码文件
3.利用dx将文件编译成Dalvik虚拟机文件
3 dx.bat --dex--output=G:/Danny-workshop/workspace-android/NotePad/bin/classes.dexG:/Danny-workshop/workspace-android/NotePad/bin
我定义生成的文件名为classes.dex
4.利用aapt生成资源包文件
我定义生成的资源包文件名为resources.ap_
4 aapt package -f -M AndroidManifest.xml -S res-A assets -I E:/android-sdk-windows/platforms/android-9/android.jar -Fbin/resources.ap_
5.利用apkbuilder生成未带签名证书的apk安装包
5 apkbuilder.batG:/Danny-workshop/workspace-android/NotePad/bin/Notepad_usigned.apk -v -u -zG:/Danny-workshop/workspace-android/NotePad/bin/resources.ap_ -fG:/Danny-workshop/workspace-android/NotePad/bin/classes.dex -rfG:/Danny-workshop/workspace-android/NotePad/src
6.利用keytool生成签名
6 keytool -genkey -alias android.keystore -keyalgRSA -validity 20000 -keystore android.keystore
这个命令会在当前目录下生成一个android.keystore的文件
7.用jarsigner对apk进行签名
7 jarsigner -verbose -keystoreG:/Danny-workshop/workspace-android/NotePad/android.keystore -storepasskingsoft -keypass kingsoft -signedjarG:/Danny-workshop/workspace-android/NotePad/bin/Notepad.apkG:/Danny-workshop/workspace-android/NotePad/bin/Notepad_usigned.apkandroid.keystore
一个完成的应用程序已实现,可以进行安装了!
部署过程 安装在启动摸拟器的情况下,输入以下命令,即可安装
以上提示为程序成功安装
8 adb install Notepad.apk
缷载程序
1.摸拟器删除
可以在摸拟器里的settings删除程序
9 Application->Manager->Uninstall
2.手工删除
在摸拟器成功启动的情况下,输入以下命令
10 adb shell
11 #cd data
12 #cd app
13 #rm 指定的程序名
14 #exit
即可删除安装的程序
小结
学习,永没止境!!
另附:手动编译Snake的过程
1、aapt package -f -m -J gen -S res -Id:\android-sdk-windows\platforms\android-8\android.jar -M AndroidManifest.xml
2、javac -encoding GB18030 -target 1.5 -bootclasspathd:\android-sdk-windows\platforms\android-8\android.jar -d binsrc\com\example\android\snake\*.java gen\com\example\android\snake\R.java
3、dx.bat --dex --output =D:\android-sdk-windows\samples\android-8\Snake\bin\classes.dexD:\android-sdk-windows\samples\android-8\Snake\bin
4、aapt package -f -M AndroidManifest.xml -S res -A assets -Id:\android-sdk-windows\platforms\android-8\android.jar -F bin\resources.ap_
5、apkbuilder.bat D:\android-sdk-windows\samples\android-8\Snake\bin\Snake_usigned.apk-v -u -z D:\android-sdk-windows\samples\android-8\Snake\bin\resources.ap_ -fD:\android-sdk-windows\samples\android-8\Snake\bin\classes.dex -rfD:\android-sdk-windows\samples\android-8\Snake\src
6、keytool -genkey -alias android.keystore -keyalg RSA -validity 20000-keystore android.keystore
7、jarsigner -verbose -keystored:\android-sdk-windows\samples\android-8\Snake\android.keystore -storepasskingsoft -keypass kingsoft -signedjar D:\android-sdk-windows\samples\android-8\Snake\bin\Snake.apkD:\android-sdk-windows\samples\android-8\Snake\bin\Snake_usigned.apkandroid.keystore
8、adb install Snake.apk