赖锋
我的china-unix博客 http://laiboy.cublog.cn
我的CSDN博客 http://blog.csdn.net/laiboy
利用命令行方式重新编译Android自带的Notepad程序!通过手工安装程序到摸拟器上运行!
了解Eclipse的Android开发插件编译,部署程序的过程!
以下为实现命令行构建Android应用程序的流程图
以下为实现过程的演示步聚
准备工作
1.设置环境变量
由于是选择Androi2.3的例子,所以选择5
设置了相应的环境变量
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生成资源文件
- aapt package -f -m -J gen -S res -I E:/android-sdk-windows/platforms/android-9/android.jar -M AndroidManifest.xml
这个会在gen目录下生成R.java文件
2.编译生成的java文件与源文件
- javac -encoding GB18030 -target 1.5 -bootclasspath E:/android-sdk-windows/platforms/android-9/android.jar -d bin src/com/example/android/notepad/*.java gen/com/example/android/notepad/R.java
这会在bin目录下生成java字节码文件
3.利用dx将文件编译成Dalvik虚拟机文件
- dx.bat --dex --output=G:/Danny-workshop/workspace-android/NotePad/bin/classes.dex G:/Danny-workshop/workspace-android/NotePad/bin
我定义生成的文件名为classes.dex
4.利用aapt生成资源包文件
我定义生成的资源包文件名为resources.ap_
5.利用apkbuilder生成未带签名证书的apk安装包
- apkbuilder.bat G:/Danny-workshop/workspace-android/NotePad/bin/Notepad_usigned.apk -v -u -z G:/Danny-workshop/workspace-android/NotePad/bin/resources.ap_ -f G:/Danny-workshop/workspace-android/NotePad/bin/classes.dex -rf G:/Danny-workshop/workspace-android/NotePad/src
6.利用keytool生成签名
- keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
这个命令会在当前目录下生成一个android.keystore的文件
7.用jarsigner对apk进行签名
- jarsigner -verbose -keystore G:/Danny-workshop/workspace-android/NotePad/android.keystore -storepass kingsoft -keypass kingsoft -signedjar G:/Danny-workshop/workspace-android/NotePad/bin/Notepad.apk G:/Danny-workshop/workspace-android/NotePad/bin/Notepad_usigned.apk android.keystore
缷载程序
1.摸拟器删除
可以在摸拟器里的settings删除程序
- Application->Manager->Uninstall
2.手工删除
在摸拟器成功启动的情况下,输入以下命令
- adb shell
- #cd data
- #cd app
- #rm 指定的程序名
- #exit
即可删除安装的程序
小结
学习,永没止境!!
- aapt package -f -M AndroidManifest.xml -S res -A assets -I E:/android-sdk-windows/platforms/android-9/android.jar -F bin/resources.ap_