Dans presque toutes les langues que j'ai utilisées (Python, C, C++, etc.), il est possible d'écrire une application "hello world" avec un éditeur de texte seulement et de l'exécuter à partir de la ligne de commande (interprétée langages) ou compiler/construire à partir de la ligne de commande (langages compilés), par exemple cl.exe helloworld1.cpp
.
Par contre, chaque fois que je crée une application Android, je dois utiliser Android Studio (ce qui est lent sur ma machine), créer un nouveau projet avec l'EDI, etc.
Question: Quel est le plus petit nombre de fichiers de code source/fichiers de projet Java minimalistes permettant de créer une application .apk Android? Comment le construire en ligne de commande? (et jamais devez ouvrir l'IDE)
NB: J'ai lu de nombreux hello world pour Android mais tous impliquent l'utilisation de l'IDE.
NB2: Je recherche des applications standard écrites en Java, pas des solutions comme Kivy, etc.
NB3: même si un IDE est probablement plus pratique pour programmer une application Android, je ne vois aucune technique raison pour laquelle compiler/créer un certain nombre de fichiers serait absolument nécessaire un IDE/programmation avec une interface graphique. Certaines personnes (comme moi) préfèrent uniquement la ligne de commande et l'éditeur de texte, et une telle solution sans IDE serait utile.
NB4: Je travaille sur la plate-forme Windows, j'ai lancé un "Bonjour le monde sans IDE" github repo ici basé sur cette réponse , mais j'ai quelques problèmes tels que celui-ci . Par contre, la méthode utilisée semble être déconseillée ...
Oui, vous pouvez facilement le faire TOUS à partir de la ligne de commande (NO IDE
impliqué, je le promets).
.__ Ceci utilise le vieux fidèle _ Apache Ant . Not utilise Gradle
, cela demande plus de travail.
Ce que vous tapez est (seulement 2 lignes pour produire un apk):
Android create project --target "Android-16" --path basj --activity TestActivity --package com.Android.basj
(Ceci produit un fichier de construction Apache Ant
appelé fichier build.xml
qui est semblable à le fichier build.gradle
. Écrivez maintenant du code mais TestActivity.Java est déjà là et sera compilé)
ant debug
(Note: La commande "Android.bat
" est obsolète puisque Build Tools v26, utilisez donc un ancien (voir le lien ci-dessous), obsolète dans ce cas, signifie TOTALEMENT supprimé! {Google méchant}).
Installez JDK Java s'il n'est pas déjà installé (vous pouvez utiliser jdk-8u151-windows-x64.exe par exemple) et assurez-vous que la variable d'environnement Java_HOME
est définie e.g .:
Java_HOME = C:\Program Files\Java\jdk1.8.0_112
Java_PATH = C:\Program Files\Java\jre1.8.0_112\bin
JDK est le kit de développement Java.
JRE est l'environnement d'exécution Java.
Installez Android SDK Tools
(par exemple, installer_r24.4.1-windows.exe , voir cette réponse ) si ce n'est déjà fait, puis dans l'interface graphique du gestionnaire de SDK, désélectionnez tout et choisissez "SDK Android Build- Outils "(par exemple, Android SDK Build-Tools 19.1
) + une (ou plusieurs) plateformes (par exemple, Android 4.1.2 (API 16) JELLY_BEAN
). Pour prouver que vous n'avez pas besoin de Android Studio
, n'alliez pas le télécharger! (uniquement le SDK).
Télécharger Apache Ant _ (par exemple _ { Apache-ant-1.9.9-bin.Zip _)
Pour créer un projet à partir de la ligne de commande en utilisant Android SDK
:
Choisissez un endroit pour mettre votre projet:
cd c:\Android
mkdir antTest
cd antTest
Exécutez la commande:
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)
Voici la structure de répertoires créée (et tous les fichiers que vous devez créer):
C:.
+---basj
+---bin
+---libs
+---res
¦ +---drawable-hdpi
¦ +---drawable-ldpi
¦ +---drawable-mdpi
¦ +---drawable-xhdpi
¦ +---layout
¦ +---values
+---src
+---com
+---Android
+---basj
sortie détaillée de create projet:
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
Téléchargez Apache Ant à partir de http://ant.Apache.org/ .
Voir ce tutoriel pour l’installation: http://www.vogella.com/tutorials/ApacheAnt/article.html
Voir également ce tutoriel: http://blog.vogella.com/2011/03/16/creating-Android-applications-via-the-command-line-ant/ _
Écrivez votre code (Bonjour tout le monde).
Exécutez cette commande et vous obtenez un Android Apk sur l'autre côté (appelé TestActivity-debug.apk):
ant debug
Hey, vous avez un apk Android!
Avec la nouvelle structure ajoutée:
C:.
├───bin
│ ├───classes
│ │ └───com
│ │ └───Android
│ │ └───basj
│ ├───dexedLibs
│ └───res
│ ├───drawable-hdpi
│ ├───drawable-ldpi
│ ├───drawable-mdpi
│ └───drawable-xhdpi
├───gen
│ └───com
│ └───Android
│ └───basj
Pour une construction finale:
ant release
Si vous êtes intéressé par un exemple plus complet de fichiers Ant build.xml
ou DEX
et par le fonctionnement plus approfondi d'Android, regardez ici
Voir comment signer un apk déjà compilé et aussi ceci
D'après une réponse de @ for3st, voici un extrait pertinent de cet article:
Vous devez générer un magasin de clés une fois et l'utiliser pour signer votre unsigned
apk . Utilisez le keytool
fourni par le JDK trouvé dans %Java_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
(zipalign
_ { c'est un outil fourni par le SDK Android } trouvé par exemple dans. %Android_HOME%/sdk/build-tools/24.0.2/
est une étape d'optimisation obligatoire si vous souhaitez télécharger l'apk sur le Play Store.
zipalign -p 4 my.apk my-aligned.apk
Remarque: lorsque vous utilisez l'ancienne jarsigner
, vous devez zipalign
APRÈS LA SIGNATURE DE. Lorsque vous utilisez la nouvelle méthode apksigner
, vous le faites AVANT LA SIGNATURE DE (ce qui est déroutant, je le sais). _ { Invoquer zipalign
avant apksigner
fonctionne bien } parce que apksigner
préserve APK
alignement et compression (contrairement à jarsigner
).
Vous pouvez vérifier l'alignement avec:
zipalign -c 4 my-aligned.apk
Utilisez jarsigner
qui, comme l'outil de clé, est fourni avec la distribution JDK trouvé dans %Java_HOME%/bin/
et utilisez-le comme suit:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
et peut être vérifié avec
jarsigner -verify -verbose my_application.apk
Android 7.0
introduit APK Signature Scheme v2
, un nouveau schéma de signature d'application offrant des temps d'installation plus courts et une protection accrue contre les modifications non autorisées des fichiers APK (voir ici et ici pour plus de détails). Par conséquent, Google
a implémenté son propre apk
signataire appelé: apksigner
(duh!) Le fichier de script se trouve dans %Android_HOME%/sdk/build-tools/24.0.3/
(le fichier .jar est dans le sous-dossier /lib
). Utilisez-le comme ceci:
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
et peut être vérifié avec:
apksigner verify my-app.apk
Quel est le plus petit nombre de code source Java minimaliste fichiers/fichiers de projet pour produire une application .apk Android?
Seuls ces 2 fichiers sont nécessaires pour générer le fichier classes.dex
et AndroidManifest.xml
sous Apk Android, consultez cet article de blog pour des informations complètes.
La plus petite taille d'apk faite à ce jour est de 678 bytes.checkez ceci repo
C'est une méthode prête à l'emploi pour créer une application Android sans avoir à installer/ouvrir Android Studio même une fois (c'est un IDE génial, mais certaines personnes comme moi préfèrent tout simplement un éditeur de texte + une ligne de commande). Vous obtiendrez un fichier APK entièrement signé/aligné à la fin, prêt à être utilisé sur le Google Play Store.
Tout crédit à JonGoodwin answer , je viens de le résumer ici avec un seul lot createproject.bat
qui fait tout.
Conditions préalables (voir sa réponse pour plus de détails à leur sujet): ces outils doivent être installés:
JDK Java
Outils SDK Android
Apache Ant
Modifiez maintenant les premières lignes de ce createproject.bat
pour définir votre propre APPNAME
, VENDORNAME
et modifiez le chemin de adb.exe
, keytool.exe
, etc. en fonction de votre système.
Puis lancez createproject.bat
. Cela créera un nouveau dossier helloworld
. Vous y trouverez quelques fichiers .bat
qui construiront votre application!
@echo off
SET APPNAME=helloworld
SET VENDORNAME=demo
SET SIGNKEYPASSWORD=abcdef12
SET ANTBATPATH="..\..\Apache-ant-1.9.9-bin\bin\ant.bat"
SET ADBPATH="C:\Users\User\AppData\Local\Android\android-sdk\platform-tools\adb.exe"
SET KEYTOOLPATH="C:\Program Files\Java\jdk1.8.0_151\bin\keytool.exe"
SET JARSIGNERPATH="C:\Program Files\Java\jdk1.8.0_151\bin\jarsigner.exe"
SET ZIPALIGNPATH="C:\Users\User\AppData\Local\Android\android-sdk\build-tools\19.1.0\zipalign.exe"
SET ANDROIDBATPATH="C:\Users\User\AppData\Local\Android\android-sdk\tools\Android.bat"
call %ANDROIDBATPATH% create project --target "Android-16" --path %APPNAME% --activity %APPNAME% --package com.%VENDORNAME%.%APPNAME%
(
echo call %ANTBATPATH% debug
echo copy bin\*debug.apk .
) > %APPNAME%\1makedebug.bat
echo %ADBPATH% logcat > %APPNAME%\2adb_logcat.bat
echo %ADBPATH% devices > %APPNAME%\2adb_devices.bat
echo %ADBPATH% install -r %APPNAME%-debug.apk > %APPNAME%\2adb_install.bat
echo %ADBPATH% Shell > %APPNAME%\2adb_Shell.bat
(
echo call %ANTBATPATH% release
echo %JARSIGNERPATH% -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore "bin\%APPNAME%-release-unsigned.apk" app -storepass %SIGNKEYPASSWORD%
echo %ZIPALIGNPATH% 4 "bin\%APPNAME%-release-unsigned.apk" "%APPNAME%-release.apk"
echo pause
) > %APPNAME%\3makerelease_signed.bat
%KEYTOOLPATH% -genkey -keystore %APPNAME%\my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app -dname "cn=Unknown, ou=Unknown, o=Unknown, c=Unknown" -storepass %SIGNKEYPASSWORD% -keypass %SIGNKEYPASSWORD%
echo Finished.
pause
Au lieu d'essayer de comprendre cela, pourquoi ne pas simplement créer un projet vide à partir d'Android Studio. Il aura tout ce dont vous avez besoin et une configuration de gradle que vous pouvez construire via gradlew. Puis enregistrez-le quelque part sur votre disque dur et utilisez-en une copie pour démarrer vos nouveaux projets.
Si vous trouvez le développement d'Android trop complexe et souhaitez une solution plus simple, je vous conseillerais d'essayer Flutter.
Vous pouvez écrire des applications plus simples à comprendre et fonctionnant sous Android ou sur iPhone. Il utilise le langage Dart qui présente de nombreuses similitudes avec Java.
Voici un tutoriel Hello World qui utilise un IDE et une ligne de commande sous Windows pour créer une application Android.