是的,您可以从命令行轻松完成所有操作(不涉及,我保证)。
这使用了旧的忠实的Apache Ant。它不使用 ,这需要更多的工作。IDE
Gradle
总结
您键入的内容是(只需2行即可生成apk):
android create project --target "android-16" --path basj --activity TestActivity --package com.android.basj
(这将生成一个名为 file 的构建文件,该文件与该文件类似。现在写一些代码,但测试活动.java已经存在,并将编译)Apache Ant
build.xml
build.gradle
ant debug
设置
(注意:自构建工具 v26 以来,“”命令已弃用,因此请使用旧命令(请参阅下面的链接),在这种情况下已弃用意味着完全删除!{顽皮的谷歌})。android.bat
-
如果尚未安装,请安装Java JDK(例如,您可以使用jdk-8u151-windows-x64.exe),并确保定义了环境变量,例如:JAVA_HOME
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_112
JAVA_PATH=C:\Program Files\Java\jre1.8.0_112\bin
JDK是Java开发工具包。
JRE 是 Java 运行时环境。
如果尚未安装(例如installer_r24.4.1-windows.exe,请参阅此答案),然后在SDK管理器GUI中,取消选择所有内容并选择“Android SDK构建工具”(例如)+一个(或多个)平台(例如)。为了证明你不需要,不打算下载它!(仅限 SDK)。Android SDK Tools
Android SDK Build-Tools 19.1
Android 4.1.2 (API 16) JELLY_BEAN
Android Studio
下载 Apache Ant(例如 apache-ant-1.9.9-bin.zip)
细节
要使用 以下命令从命令行创建项目:Android SDK
确定放置项目的位置:
cd c:\android
mkdir antTest
cd antTest
运行以下命令:
C:\Android\sdk1\tools\android create project --target "android-16" --path basj --activity TestActivity --package com.android.basj
^
|
--------------+ (here's where I keep an old version of tools (version 25 in my case)
以下是创建的目录结构(以及您需要构建的所有文件):
C:.
+---basj
+---bin
+---libs
+---res
¦ +---drawable-hdpi
¦ +---drawable-ldpi
¦ +---drawable-mdpi
¦ +---drawable-xhdpi
¦ +---layout
¦ +---values
+---src
+---com
+---android
+---basj
创建项目的详细输出:
Created project directory: C:\Android\antTest\basj
Created directory C:\Android\antTest\basj\src\com\android\basj
Added file C:\Android\antTest\basj\src\com\android\basj\TestActivity.java
Created directory C:\Android\antTest\basj\res
Created directory C:\Android\antTest\basj\bin
Created directory C:\Android\antTest\basj\libs
Created directory C:\Android\antTest\basj\res\values
Added file C:\Android\antTest\basj\res\values\strings.xml
Created directory C:\Android\antTest\basj\res\layout
Added file C:\Android\antTest\basj\res\layout\main.xml
Created directory C:\Android\antTest\basj\res\drawable-xhdpi
Created directory C:\Android\antTest\basj\res\drawable-hdpi
Created directory C:\Android\antTest\basj\res\drawable-mdpi
Created directory C:\Android\antTest\basj\res\drawable-ldpi
Added file C:\Android\antTest\basj\AndroidManifest.xml
Added file C:\Android\antTest\basj\build.xml
Added file C:\Android\antTest\basj\proguard-project.txt
从 http://ant.apache.org/ 下载Apache Ant。
有关设置,请参阅本教程:http://www.vogella.com/tutorials/ApacheAnt/article.html
另请参阅本教程:http://blog.vogella.com/2011/03/16/creating-android-applications-via-the-command-line-ant/
编写你的代码(Hello world)。
运行此命令,您可以从另一端获得一个Android Apk(称为TestActivity-debug.apk):
ant debug
嘿普雷斯托,你有一个机器人apk!
添加新结构后:
C:.
├───bin
│ ├───classes
│ │ └───com
│ │ └───android
│ │ └───basj
│ ├───dexedLibs
│ └───res
│ ├───drawable-hdpi
│ ├───drawable-ldpi
│ ├───drawable-mdpi
│ └───drawable-xhdpi
├───gen
│ └───com
│ └───android
│ └───basj
对于最终版本:
ant release
如果您对更广泛的示例感兴趣,或文件,以及Android的更深层次的工作原理,请查看此处Ant build.xml
DEX
如何签署已编译的apk
了解如何签署已编译的apk,以及从
@for3st的答案,这是该帖子的相关部分:
手动过程:
步骤 1:生成密钥库(仅生成一次)
您需要生成一次密钥库,然后使用它来签署您的apk。使用由 JDK 提供的键工具
unsigned
%JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
第 2 步或第 4 步:Zipalign
zipalign
,这是由Android SDK提供的工具,例如 是一个强制性的优化步骤,如果你想上传apk到Play商店。%ANDROID_HOME%/sdk/build-tools/24.0.2/
zipalign -p 4 my.apk my-aligned.apk
注意:使用旧版时,您需要在签名后进行。使用新方法时,您可以在签名之前进行签名(我知道令人困惑)。在apksigner之前调用zipaignign
工作正常,
因为保留了对齐和压缩(与 )。jarsigner
zipalign
apksigner
apksigner
APK
jarsigner
您可以通过以下方式验证是否对齐:
zipalign -c 4 my-aligned.apk
第3步:签名和验证
使用构建工具 24.0.2 及更早版本
使用 jarsigner
,它和 keytool 一样,也附带了 JDK 发行版,并像这样使用它:%JAVA_HOME%/bin/
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
并可以使用
jarsigner -verify -verbose my_application.apk
使用构建工具 24.0.3 及更高版本
Android 7.0
介绍 ,这是一种新的应用程序签名方案,可提供更快的应用程序安装时间,并防止未经授权更改APK文件(有关详细信息,请参阅此处和此处)。因此,实现了自己的apk
签名者,名为:apksigner
(duh!脚本文件可以在(.jar位于子文件夹中)中找到。像这样使用它:APK Signature Scheme v2
Google
%ANDROID_HOME%/sdk/build-tools/24.0.3/
/lib
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
并可以通过以下方式进行验证:
apksigner verify my-app.apk