[android]android自动化测试六之命令行编译APK

手动编译你的apk,可以让资源目录不命名为res, 你能够命名任何你想要的名字。 

你可以在以下目录发现ant脚本: <SDK_HOME>/platforms/android-1.5/templates/android-rules.xml 

第一步: 产生R文件以及包资源 
aapt  package -f -M ${manifest.file} -F ${packaged.resource.file} -I ${path.to.android-jar.library} -S ${android-resource-directory} [-m -J ${folder.to.output.the.R.java}] 

第二步:编译java源文件以及R.java文件 
use javac 

第三步:将classes文件转化成Dalvik自节码 
use dx.bat 
dx.bat  –dex  –output=${output.dex.file}  ${compiled.classes.directory}  ${jar files..} 

第四步:创建未签名的apk 
use apkbuilder 

apkbuilder  ${output.apk.file} -u -z  ${packagedresource.file} -f  ${dex.file} 

or 

apkbuilder  ${output.apk.file} -u -z  ${packagedresource.file} -f  ${dex.file}  -rf  ${source.dir}  -rj  ${libraries.dir} 

-rf = resources required for compiled source files? 
-rj = resources required for jar files 

第六步: 产生一个key 
use keytool 

第七步骤: 对APK进行签名 
use jarsigner 

jarsigner  -keystore ${keystore} -storepass  ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias} 

第八步: 发布 
use adb 
adb -d install -r ${signed.apk} 

Inspecting your APK file: 

aapt list -v latest.apk 

Open questions: 
1. Can you include more than one dex file in the apk? 
2. Can you have dex file named other than classes.dex in the apk? 
3. Does an apk have to have a packaged resource?

时间: 2024-09-16 11:30:46

[android]android自动化测试六之命令行编译APK的相关文章

基于命令行编译打包phonegap for android应用

也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,Eclipse+ADT是广大Android应用开发者的必备工具,毋庸置疑,Ecplise在开发Android原生应用方面有着几乎不可替换的位置.Phonegap是一个已经不算是新鲜事物的东西了.PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台的的移动应用程序

用命令行编译java并生成可执行的jar包

用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: package test; import java.awt.*; import javax.swing.*; //更多包的导入... class NotePadFrame extends JFrame { //主界面的设计... } //其他相关代码... public class CardLayo

ide-c程序用cmd命令行编译链接的exe跟在IDE中生成的一样么?

问题描述 c程序用cmd命令行编译链接的exe跟在IDE中生成的一样么? 就是用cl命令生成的exe,和visual c++6.0的对比,是否一样,如果不一样怎么让他们一样? 解决方案 主要是一些编译选项,你cl命令行需要自己跟VC所配置的编译选项一致. 解决方案二: 你可以写一个小程序: void main(int argc, char ** args) { for (int i = 0; i < argc; i++) cout << args[i] << endl; sy

java-ofbiz在命令行编译时unable to access jarfile *.jar

问题描述 ofbiz在命令行编译时unable to access jarfile *.jar 2.1 命令行原始方式编译 进入ofbiz根目录之后执行java -jar framework/base/lib/ant-launcher-1.7.1.jar -lib framework/base/lib/ant(需要设置path环境变量) 2.2 命令行批处理方式编译 进入ofbiz 根目录之后window环境执行ant或者ant.batlinux环境执行./ant .(需要设置JAVA_HOME

Delphi 命令行编译指南

  Delphi 命令行编译指南 目录1. Command-line compiler命令行编译器2. Command-line compiler options命令行编译器选项3. Compiler directive options编译器指令选项4. Compiler mode options编译模式选项5. DCC32.CFG file编译器配置文件DCC32.CFG6. Debug options调试选项7. Directory options目录选项8. IDE command-lin

msvc交叉编译:使用vcvarsall.bat设置命令行编译环境

一直以来我只知道vc设置命令行编译环境的批处理命令是%VS140COMNTOOLS%/Common7/Tools下的vsvars32.bat,(%VS140COMNTOOLS%为定义vs2015公共工具程序位置的环境变量,命令行窗口输入set就能找到,vs2010的对应定义为%VS100COMNTOOLS%) 微软的官网上有这个命令的说明: https://technet.microsoft.com/zh-cn/library/1700bbwd.aspx 但在执行这个命令生成的命令行环境下用nm

mac-Mac Pro 怎么用命令行编译x-code文件

问题描述 Mac Pro 怎么用命令行编译x-code文件 您好,Mac Pro 怎么用命令行编译x-code文件.是不是要绑定什么文件呢,谢谢啦,大神. 解决方案 mac通过命令行搜索文件 解决方案二: clang: warning: -framework Foundation: 'linker' input unused 这就是提示

关于visual studio 2015中c#的命令行编译问题

问题描述 你们好,是这样的,我想用visualstudio2015的命令提示窗口把.cs文件编译成.exe文件我的程序是这样的usingSystem;classexample_2{staticvoidMain(){Console.WriteLine("很高兴学习c#语言");}}但命令行编译不了,输出:MicrosoftWindows[版本10.0.10586](c)2015MicrosoftCorporation.保留所有权利.E:网页设计>cscexample_2.cs'cs

[android]android自动化测试二之命令行创建AVD

判断AVD是否已经开启: adb -s emulator-57409 shell getprop dev.bootcomplete 如果结果返回1代表AVD成功启动了  命令行打开方式: 1.首先你要打开android模拟器      (下面命令行打开的4步骤我是引用百度上的)  1).找到SDK的tools文件夹,我的在D:\android-sdk-windows\tools: 2).如果没有创建AVD的话,可以用命令android list targets查看各版本对应的id: 然后andr