`
liuxin-smallmouse
  • 浏览: 18185 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Windows中使用命令行方式编译打包Android项目

阅读更多
  网上很多用Ant来编译打包Android应用的文章,毕竟Ant是纯Java语言编写的,具有很好的跨平台性。今天想写个纯windows平台下的DOS命令行方式编译Android项目的bat文件,见以下代码:
echo off
rem =========基本参数配置============
rem jdk的路径
set JAVA_HOME=D:/Program Files/Java/jdk1.6.0_24
rem jdk的版本
set JDK_Version=1.6
rem sdk的路径
set AndroidHome=D:/Android/android-sdk-windows
rem 编译的android版本路径
set AndroidVersion=/platforms/android-8
rem 编译的android项目路径
set AndroidProject=D:/yourProject
rem 编译生成的未签名apk文件
set unsign_apk=yourProject.apk
rem 编译生成的已签名apk文件
set sign_apk=yourProject-sign.apk
rem 签名用的key
set apk_key=keyname
set apk_keypass=keypass
set apk_keystore=D:/yourProject/key.keystore

for %%x in ("%AndroidProject%") do set AndroidProject=%%~sx
for %%x in ("%JAVA_HOME%") do set JAVA_HOME=%%~sx
for %%x in ("%AndroidHome%") do set AndroidHome=%%~sx
rem jdk工具包
set EXE_JAVA=%JAVA_HOME%/bin/java
set JAVAC=%JAVA_HOME%/bin/javac
set JAR=%JAVA_HOME%/bin/jar
set KeyTool=%JAVA_HOME%/bin/keytool
set Jarsigner=%JAVA_HOME%/bin/jarsigner
rem sdk工具包
set AndroidAAPT=%AndroidHome%%AndroidVersion%/tools/aapt.exe
set AndroidDx=%AndroidHome%%AndroidVersion%/tools/dx.bat
set AndroidApkBuilder=%AndroidHome%/tools/apkbuilder.bat
set AndroidJar=%AndroidHome%%AndroidVersion%/android.jar
rem android项目引用的扩展jar包
set ExternerJar=%AndroidProject%/lib/commons-codec.jar;%AndroidProject%/lib/commons-httpclient-3.1.jar;
set ReferJar=%AndroidProject%/lib/commons-codec.jar %AndroidProject%/lib/commons-httpclient-3.1.jar
rem android项目基本目录及配置文件
set AndroidProjectRes=%AndroidProject%/res
set AndroidProjectGen=%AndroidProject%/gen
set AndroidProjectBin=%AndroidProject%/bin
set AndroidProjectAsset=%AndroidProject%/assets
set AndroidProjectAndroidMainfest=%AndroidProject%/AndroidManifest.xml
set AndroidProjectSrc=%AndroidProject%/src/weibo/*.java
set AndroidProjectSrc=%AndroidProjectSrc% %AndroidProject%/src/weibo/http/*.java
set AndroidProjectSrc=%AndroidProjectSrc% %AndroidProject%/src/weibo/util/*.java
set AndroidProjectSrc=%AndroidProjectSrc% %AndroidProject%/gen/yourProjectPackageName/*.java
rem 编译输出文件
set AndroidProjectClassDex=%AndroidProject%/bin/classes.dex
set AndroidProjectResources=%AndroidProject%/bin/resources.ap_
set AndroidProjectApk="%AndroidProject%/bin/%unsign_apk%"
set AndroidProjectSignApk="%AndroidProject%/bin/%sign_apk%"

echo 生成R.java
%AndroidAAPT% package -f -m -J %AndroidProjectGen% -S %AndroidProjectRes% -I %AndroidJar% -M %AndroidProjectAndroidMainfest%

echo 生成class
%JAVAC% -encoding UTF-8 -target %JDK_Version% -bootclasspath %AndroidJar% -classpath %ExternerJar% -d %AndroidProjectBin% %AndroidProjectSrc%

echo 生成dex
cd %AndroidProjectBin%
rem 把bin目录下*.class文件打成jar包
%JAR% cvf %AndroidProjectBin%/yourProject.jar *.*
cd %AndroidProject%
rem 生成dex  这里需要注意,因为调用的是bat的脚本,因此必须用Call
call %AndroidDx% --dex --output=%AndroidProjectClassDex% %AndroidProjectBin%/yourProject.jar %ReferJar%

echo 打包资源文件
%AndroidAAPT% package -f -M %AndroidProjectAndroidMainfest% -S %AndroidProjectRes% -A %AndroidProjectAsset% -I %AndroidJar% -F %AndroidProjectResources%

echo 生成未签名的apk文件
call %AndroidApkBuilder% %AndroidProjectApk% -v -u -z %AndroidProjectResources% -f %AndroidProjectClassDex% -rf %AndroidProject%/src

echo 生成数字签名key.keystore
%KeyTool% -genkey -v -keystore %apk_keystore% -storepass %apk_keypass% -keypass %apk_keypass% -alias myKey -dname CN=Liux,OU=makingware.com,O=makingware,L=sz,ST=gd,C=cn -keyalg RSA -validity 10000 

echo 进行数字签名
%Jarsigner% -verbose -keystore %apk_keystore% -keypass %apk_keypass% -storepass %apk_keypass% -signedjar %AndroidProjectSignApk% %AndroidProjectApk% myKey

echo 签名成功
pause


转载:http://my.oschina.net/liux/blog/37875
分享到:
评论

相关推荐

    Android命令行手动编译打包详解

    Android 命令行手动编译打包详解!!学习Android必备书籍!!

    Android Apk命令行编译签名打包大全

    这里详细的介绍了如何使用命令编译apk 签名 打包,很实用,如果你是Android开发者一定要知道如何编译签名apk

    unity3d编译移动MM Android项目教程

    (别忘了把mmbilling.jar文件里的assets文件夹复制到unity的android目录中,libs也不止到android目录中,这样打出来的包才可以) 2、打开mmbilling.jar包取出mmiap.xml、CopyrightDeclaration.xml和VERSION3个配置...

    在Linux下通过命令行打包Android应用的方法

    主要介绍了在Linux下通过命令行打包Android应用的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Android笔记之:App自动化之使用Ant编译项目多渠道打包的使用详解

     经过不断的尝试,在ubuntu环境下,以花界为例,我将一步一步演示如何使用命令行,使用ant编译android项目,打包多渠道APK。 要点: (1). 编译android的命令使用 (2). ant基本应用 (3). 多项目如何编译(包含...

    android_最新_反编译工具.7z

    准备一个测试apk(eclipse或androidstudio打包,混淆文件为eclipse或androidstudio默认带的),如Test_android.apk,复制一个副本重命名为Test_android.zip,然后解压,你就可以看到一些东西了,不过这种方式看到的大...

    Android 最新反编译工具(2013-06)

    dex2jar:apk反编译工具 ,是将apk中的classes.dex转化成jar文件 jdgui:源码查看工具,是一个反编译工具,可以直接查看反编译后的jar包源代码 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex...

    auto-cocos:一键打包cocos工程的Android包

    在Cocos Creator的安卓的项目中,一般会在安卓层加入一些登录、支付、统计等第三方SDK,所以不能用Cocos Creator直接编译生成apk,一般的操作会先用Cocos Creator生成一个安卓工程,然后将安卓工程复制到另一个目录...

    mac Android反编译

    Android mac下反编译 apktool 反编译得到的是布局和资源文件。 dex2jar 反编译得到的代码字节码,利用jd gui就可以查看到源代码。 1.apktool安装 1)下载apktool,及mac下apk-install-macosx 2)解压这两个文件...

    Android反编译工具 APK反编译工具

    android反编译工具 附带反编译说明: 具体步骤: 首先将apk文件后缀改为zip并解压 得到其中的classes dex 它就是java文件编译再通过dx工具打包而成的 将classes dex复制到dex2jar bat所在目录 dex2jar 0 0 9 9文件夹...

    Android APK反编译工具包(全)

    dex2jar:apk反编译工具 ,是将apk中的classes.dex转化成jar文件 jdgui:源码查看工具,是一个反编译工具,可以直接查看反编译后的jar包源代码 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex...

    apk反编译,打包及签名工具(附详细使用说明)

    1) APKtool软件包 及...这个命令行是使用test证书的例子:java -jar signapk.jar testkey.x509.pem testkey.pk8 YOURAPK.apk YOURAPK_signed.apk YOURAPK_signed.apk就是签完名的apk,去测试一下您重新打包的apk吧。

    android安卓反编译

    首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk 通过反编译,你可以获知该应用用到了什么第3方的库文件,它的代码是如何编写的等等。 然而,如果该APK...

    不用 IDE,仅用命令行和 SDK 开发 Android App

    使用 ApkBuilder 工具将 dex 和资源文件打包成 apk 文件11.使用 zipalign 优化 apk12.使用 debug 密钥给 apk 签名13.启动 Android 模拟器14.安装 apk15.启动 app参考文章 1.新建项目文件夹 mkdir Hello 进入该...

    android 源码反编译.rar

    android 源码反编译.rar android 源码 反编译 一.反编译Apk得到Java源代码 转载自:http://hi.baidu.com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html 工具下载:需用到dex2jar和JD-GUI这2...

    Android反编译工具(完整+介绍)

    首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工 具,可以直接查看Jar包的源代码。 以下是下载地址: dex2jar:...

    apk自动添加渠道号(无需反编译及重新打包APK)

    1.该脚本自动在apk的assets文件夹下添加subChannelID.bin文件,并在文件中写入命令行传入的渠道号,添加过程中不需要反编译apk. 2.该脚本在添加完渠道号后会自动使用命令行传入的签名相关参数进行签名 3.该脚本在...

    安卓反编译文件所用到的工具及方法

    首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。 具体步骤: 1.首先将apk文件,将后缀改为zip,解压,得到其中的classes...

    将apk文件反编译成java源码

    1.首先找到Android软件安装包中的classes.dex 把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件 2...

    android开发资料大全

    命令行开发、编译、打包Android应用程序汇总大全 Android 动画效果二 Frame Animation 动画专题研究 Android新浪客户端开发教程(完整版)汇总大全 Android多媒体实例大汇集(源码,全) Android中利用画图类和线程...

Global site tag (gtag.js) - Google Analytics