在几乎所有我使用过的语言(Python,C,C ++等)中,都可以 仅 使用文本编辑器编写“ hello
world”应用程序,然后从命令行(解释语言)运行它,或者进行编译/构建它是从命令行(编译语言),例如cl.exe helloworld1.cpp
。
另一方面,每次执行Android应用程序时,都需要使用Android Studio(这在我的计算机上运行缓慢),使用IDE创建新项目等。
问题: 生成.apk Android应用程序的最小限度的Java源代码文件/项目文件最少? 如何从命令行构建它?(和 从未 有打开IDE)
注意:我已经阅读了许多关于Android的世界,但是所有这些都涉及使用IDE。
NB2:我正在寻找用Java编写的标准应用程序,而不是Kivy等解决方案。
NB3:即使IDE可能更方便地编写Android应用程序,我也没有看到任何 技术 原因来编译/构建大量文件 绝对需要 IDE
/使用GUI进行编程。有些人(例如我)只喜欢命令行和文本编辑器,而这种无IDE的解决方案会有所帮助。
NB4:我的工作在Windows平台上,我已经开始了在这里的“Hello World没有IDE”
GitHub库基于
是的,您可以从命令行轻松完成 所有操作 (IDE
我保证不涉及)。
这使用了 忠实的 Apache Ant。它并 没有 使用Gradle
,这需要更多的工作。
您输入的是( 只需两行 即可生成apk):
android create project --target "android-16" --path basj --activity TestActivity --package com.android.basj
(这将生成一个Apache Ant
名为build.xml
file 的构建文件,该文件 类似于
该build.gradle
文件。现在编写一些代码,但是TestActivity.java已经存在并将进行编译)
ant debug
( 注意* :自Build Tools v26起 ,“ android.bat
”命令已 弃用
,因此请使用旧的命令(请参阅下面的链接),在这种情况下 已弃用 ,意味着已 完全 删除!{ 顽皮的Google })。 __
__* __
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运行时环境。
如果尚未完成安装Android SDK Tools
(例如,installer_r24.4.1-windows.exe,请参见此答案),然后在SDK Manager GUI中,取消选择所有内容,然后选择“ Android SDK Build-Tools”(例如Android SDK Build-Tools 19.1
)+一个(或多个)平台(例如Android 4.1.2 (API 16) JELLY_BEAN
)。为了证明您不需要Android Studio
,不打算下载它!(仅SDK)。
下载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
嘿,请告诉我,您有一个Android APK!
添加了新的结构:
C:.
├───bin
│ ├───classes
│ │ └───com
│ │ └───android
│ │ └───basj
│ ├───dexedLibs
│ └───res
│ ├───drawable-hdpi
│ ├───drawable-ldpi
│ ├───drawable-mdpi
│ └───drawable-xhdpi
├───gen
│ └───com
│ └───android
│ └───basj
对于最终版本:
ant release
如果您对Ant build.xml
,或DEX
文件的更广泛的示例感兴趣,并且对Android的更深入了解感兴趣,请点击此处
请参阅如何注册的已编译的apk ,也该
由一个答案@ for3st这里有一个相关的一块帖子:
您需要一次生成一个密钥库,并用它来签名您的unsigned
apk。使用JDK中提供的keytool
%JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
zipalign
%ANDROID_HOME%/sdk/build-tools/24.0.2/
如果您要将apk上传到Play商店,则该工具是AndroidSDK提供的工具,例如,该工具是强制性的优化步骤。
zipalign -p 4 my.apk my-aligned.apk
注意: 使用旧的时候jarsigner
,你需要zipalign
后 签字。使用新apksigner
方法时,您需要 在 签名
之前进行操作 (我知道这很混乱)。before
调用可以很好地工作,zipalign``apksigner
因为它可以apksigner
保持APK
对齐和压缩(与不同jarsigner
)。
您可以使用以下方法 验证 对齐方式:
zipalign -c 4 my-aligned.apk
使用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
Android 7.0
引入APK Signature Scheme v2
了一种新的应用程序签名方案,该方案可提供更快的应用程序安装时间,并提供更多保护,以防止对APK文件进行未经授权的更改(有关详情,请参见此处和此处)。因此,Google
实现自己的apk
签名者称为:apksigner
(duh!)可以在%ANDROID_HOME%/sdk/build- tools/24.0.3/
(.jar位于/lib
子文件夹中)找到脚本文件。像这样使用它:
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
并可以通过以下方式进行验证:
apksigner verify my-app.apk
前面提到多进程的并行可以提高并发度,那么进程是越多越好?一般遇到这种问题都回答不是,事实上,很多大型项目都不会同时开太多进程。 下面以支持100K并发量的Nginx服务器为例。 举个例子: Nginx Nginx是一个高性能、高并发的Web服务器,也就是说它可以同时处理超过10万个HTTP请求,而它建议的启动的进程数不要超过CPU个数,为什么呢? 我们首先要知道Nginx是Master-worke
本文向大家介绍没有IDE的Android编程,包括了没有IDE的Android编程的使用技巧和注意事项,需要的朋友参考一下 示例 这是一个简约的Hello World示例,仅使用最基本的Android工具。 要求和假设 Oracle JDK 1.7或更高版本 Android SDK工具(仅命令行工具) 本示例假设使用Linux。您可能必须针对自己的平台调整语法。 设置Android SDK 解压缩
我正在测试我的应用程序,它在我的手机上有一个编辑文本,运行良好。然而,我相信,一旦我连接到另一台运行Android5.1的设备,该应用程序就不允许我在编辑文本上键入任何内容。有没有办法解决这个问题?
我正在使用Firebase来保存我的数据。我试图在活动中分离Firebase方法和我的方法。例如,我已经创建了一个名为"Firebase method odsHelper"的类,在那里我想编写所有的Firebase方法。例如,"getAllUser"方法应返回列表中的所有用户。我唯一的问题是它不起作用。 我不知道我做错了什么,所以如果你们能帮我。 碎片 FirebaseMethodHelper类
我是android开发的新手,我的应用程序在调用特定活动时会崩溃。(“governanaceactivity”是活动的名称)当我从MainActivity调用治理活动时,我的应用程序会崩溃,其他菜单工作得很好,唯一的问题是这个活动。 这是GovernanceActivity **所有其他活动都很好,只有这个活动有问题 这是我的宣言** Blockquote 05-21 03:09:53.747 1
问题内容: 在我的游戏代码中,我尝试添加一张手牌。一旦我做完了,我的数组就超出了范围。一切看起来都不错,但也许我缺少了一些东西。 仅供参考,一个和两个是Player实例。来自Main类的相关代码(对格式感到抱歉。我很想将其传输到Stack Overflow): 卡类: 玩家等级: 问题答案: 问题出在你的循环上 没有其他任何值可设置,因此此循环不断循环,直到所有玩家拥有超过52张牌为止。一旦某人拥