关闭

手工编译Android程序

2336人阅读 评论(0) 收藏 举报
手工编译Android程序  

赖锋

我的china-unix博客 http://laiboy.cublog.cn

我的CSDN博客 http://blog.csdn.net/laiboy

 

程序描述

 

利用命令行方式重新编译Android自带的Notepad程序!通过手工安装程序到摸拟器上运行!

 

程序目的

了解Eclipse的Android开发插件编译,部署程序的过程!

为实现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生成资源文件

 

  

  1. 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文件与源文件

 

     

  1. 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虚拟机文件

 

  1. 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安装包

 

 

 

 

  1. 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生成签名

 

 

  1. keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
 
 
 

这个命令会在当前目录下生成一个android.keystore的文件

 

7.用jarsigner对apk进行签名

 

 

  1. 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. adb install Notepad.apk
 
 
 

缷载程序

1.摸拟器删除

可以在摸拟器里的settings删除程序

 

 

  1. Application->Manager->Uninstall

 

2.手工删除

   在摸拟器成功启动的情况下,输入以下命令

  1. adb shell
  2. #cd data
  3. #cd app
  4. #rm 指定的程序名
  5. #exit

即可删除安装的程序

 

 

小结  

学习,永没止境!!

  1. aapt package -f -M AndroidManifest.xml -S res -A assets -I E:/android-sdk-windows/platforms/android-9/android.jar -F bin/resources.ap_
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

交叉编译Android系统Linux层应用软件程序并运行

公司项目,需要将之前个一个程序从Mips平台交叉编译到Andriod平台,故此引出来制作交叉编译工具链并且在Linux层进行运行,现将详细步骤记录以供读者以飨各网友。 一、制交叉编译工具链1.首先准...
  • csszzlsw
  • csszzlsw
  • 2015-09-21 18:16
  • 1503

嘿!让我们来手动编译安卓项目吧

本文有点像是在呼应我的文章放弃现代的ide, 拥抱命令行 。不过这次我是认真的。 对那些所谓魔法般的功能,我已经怕了。神秘的后台进程执行着我不知道也不晓得原理的任务。IDE就像知道我头脑里的想法似...
  • fdd11119
  • fdd11119
  • 2016-06-06 11:45
  • 1478

Android APP编译和运行原理

在本篇中,主要介绍Android平台应用程序的运行原理,在阅读了SDK文档中“Application Fundamentals”一篇的内容后,根据自己的理解绘制了下面的示意图:     ...
  • ToBeTheEnder
  • ToBeTheEnder
  • 2016-11-21 12:59
  • 2304

手工编译Android程序

手工编译Android程序  赖锋 我的china-unix博客 http://laiboy.cublog.cn 我的CSDN博客 http://blog.csdn.net/laib...
  • BELLSONG
  • BELLSONG
  • 2011-12-04 16:24
  • 742

手工编译Android程序

手工编译Android程序   赖锋 我的china-unix博客 http://laiboy.cublog.cn 我的CSDN博客 http://blog.csdn.net/lai...
  • judyge
  • judyge
  • 2014-11-14 01:11
  • 383

手工编译NDK程序

一NDK环境配置 NDK目录结构 添加环境变量 编译 链接 运行一、NDK环境配置1.NDK目录结构 目录名 描述 build 存放和编译相关的脚本文件,最外面的ndk-build就是调...
  • yzl11212122
  • yzl11212122
  • 2017-04-09 22:29
  • 147

JAVA 入门: 手工编译并运行JAVA小程序

JAVA 入门: 手工编译并运行JAVA小程序 例子:JDK 目录下的Java\jdk1.6.0_27\demo\jfc\TableExample\ Java\jdk1.6.0_27\demo\j...
  • irelandken
  • irelandken
  • 2011-10-18 17:53
  • 3125

手工编译一个ndk程序

一NDK环境配置 NDK目录结构 添加环境变量 编译 链接 运行 源文件和编译脚本 helloc makefile Applicationmk和Androidmk 1 STL支持 2 异常支持 3 C...
  • maozi1992
  • maozi1992
  • 2017-07-23 22:41
  • 72

转 Android编译环境(2) - 手工编译C模块

Android编译环境(2) - 手工编译C模块上一篇中(即《Android编译环境(1) - 编译Native C的helloworld模块》),我们试用了通过标准的Android.mk文件来编译C...
  • flyingqr
  • flyingqr
  • 2011-01-21 11:16
  • 473

Android项目源码纯手工仿华为商城应用源码

  • 2018-01-05 19:16
  • 65B
  • 下载
    个人资料
    • 访问:209579次
    • 积分:3884
    • 等级:
    • 排名:第9498名
    • 原创:96篇
    • 转载:77篇
    • 译文:4篇
    • 评论:198条
    最新评论