如何从命令行编译APK?

Ple*_*rds 22 windows delphi automation android compilation

我有兴趣按需制作Android应用程序.根据客户端的要求,我的网站会将JSON文件直接发送给我在Delphi中创建的Windows应用程序.这个将文件保存在Android应用程序源文件夹中,然后执行命令行告诉Android编译器生成APK文件并将其发送到我的客户端,所有这些都没有我的存在.

Android项目是用MotoDev制作的.它使用我的root中的Android SDK.

如何从我的Delphi程序中配置命令行来实现这一目的?

我还需要更改清单以放置新版本号,以便它不与其他客户端版本冲突.

小智 31

Android使用Ant构建系统,因此您可以为项目创建build.xmlbuild.properties文件.

build.xml首先需要创建文件:

android update project -p .
Run Code Online (Sandbox Code Playgroud)

这将生成一个build.xml文件.您应该自定义项目的构建步骤和目标.在您的情况下,一个好主意是让build.properties您的网站为特定构建生成文件...然后通过build.xml文件包含它.特别是,您需要在build.properties文件中指定签名密钥,以及密码是什么:

Build.Properties:

key.store=keystore.dat
key.alias=signing_key
key.store.password=password123
key.alias.password=password123
Run Code Online (Sandbox Code Playgroud)

使用的构建过程ant还允许您在Java文件中执行变量替换,这可能是另一个想法.它允许您在客户端的基础上进一步自定义构建过程.

默认情况下,构建由以下方式触发:

ant clean
ant release
Run Code Online (Sandbox Code Playgroud)

另一个简洁的想法:让Ant将生成的APK文件复制到网站可访问的网络共享,方法是< copy ... />在该< target name="release" >部分中添加一行.

  • 我没有在我现有的项目目录中看到任何build.xml文件...你说`你需要创建build.xml文件`但是为什么如果我已经编译完毕就不会创建它,比如说... Eclipse/ADT? (2认同)

Cir*_*四事件 5

在项目创建时创建build.xml

如果您使用以下项目启动新项目:

android create project \
    --target 1 \
    --name MyName \
    --path . \
    --activity MyActivity \
    --package com.yourdomain.yourproject
Run Code Online (Sandbox Code Playgroud)

将生成build.xml使用的文件ant.

android工具存在于tools/您下载的SDK目录中.

创建调试版本

除了:

ant release
Run Code Online (Sandbox Code Playgroud)

对于最终版本,您还可以使用以下命令创建调试版本:

ant debug
Run Code Online (Sandbox Code Playgroud)

生成的apk的位置

Generated apk放置在bin/.

最重要的产出是:

MyName-debug.apk
MyName-release.apk
Run Code Online (Sandbox Code Playgroud)

但是也会生成一些中间apks,特别是未对齐和无符号版本.

但大多数时候你可以忘记它们的创建地点并运行:

ant debug install
ant release install
Run Code Online (Sandbox Code Playgroud)

安装他们.但请确保它首先使用adb:adb devices命令无法正常工作

在Ubuntu 15.10,Android 23上测试过.