Je dois maintenant télécharger et installer le SDK Android et Gestionnaire AVD puis installer les API et les outils via l'interface utilisateur. Existe-t-il un moyen d'automatiser ce processus ?
Réponses
Trop de publicités?Dans les nouvelles versions d'Android (par exemple , 25.2.5 ), nous devrions utiliser sdkmanager
(au lieu du android
).
Exemple d'installation d'un paquet :
android-sdk/tools/bin/sdkmanager "extras;android;m2repository"
Commande permettant d'obtenir une liste de tous les paquets disponibles :
android-sdk/tools/bin/sdkmanager --verbose --list
Cette page web liste les liens de téléchargement des outils SDK :
Voici un lien vers un dépôt open-source docker-Android qui permet d'installer Android dans une image Docker.
Vous pouvez également trouver les réponses dans cette question de l'OS : Accepter automatiquement toutes les licences SDK utiles.
En commençant par Plugin Android pour Gradle version 2.2.0, composants SDK manquants sont téléchargés automatiquement .
J'ai créé un script ruby script qui télécharge et installe le SDK sans le demander, ce qui pourrait aider. https://github.com/ayvazj/andenv
Un script pour télécharger uniquement les paquets nécessaires, non {obsolete, source, emulator-image, doc} :
#!/bin/bash
set -e
# cd into where tools/android can be found
if [[ -d "$ANDROID_HOME" ]]; then
cd "$ANDROID_HOME"
elif [[ -x "$(dirname "$0")/tools/android" ]]; then
cd "$(dirname "$0")"
else
echo "FAILED: Cannot find ANDROID_HOME/tools/android"
exit 1
fi
android () {
"$(dirname $0)/tools/android" "$@"
}
needed_packages () {
android list sdk -u -s -e \
| grep '^id:' \
| cut -d'"' -f2 \
| grep -v 'source' \
| grep -v 'sys-img' \
| grep -v 'doc' \
| paste -d, -s -
}
main () {
(while : ; do
echo 'y'
sleep 1
done) | android update sdk -u -s -a -t "$(needed_packages)"
}
main
Certaines parties sont reprises d'autres réponses.
Pour automatiser le sdkmanager.bat --licenses
sous Windows (disons que vous installez via l'automatisation pour l'infrastructure de construction)... Ne l'exécutez pas. Ne perdez pas de temps à essayer de comprendre comment faire passer y
dans ce domaine. J'ai essayé, mais j'ai échoué.
Lancez-le plutôt une fois, vous-même, et notez qu'il génère des fichiers dans C:\android\android-sdk\licenses
(où vous exécutez C:\android\android-sdk\tools\bin\sdkmanager.bat
- votre installation Root peut varier).
Prenez ces fichiers et placez-les à un endroit où vous pourrez les récupérer dans votre configuration automatisée scripts. Personnellement, Ansible est mon poison, donc :
# Note to future-us:
# These are magical files generated by running `c:/android/android-sdk/tools/bin/sdkmanager.bat --licenses`
# This, delightfully, is interactive, and wants to _actually_ read the keyboard buffer.
# That's reputedly possible via SendKeys. I elected to not try that.
# So, instead:
# 1) remote to an instance like a cave-dweller
# 2) run `c:/android/android-sdk/tools/bin/sdkmanager.bat --licenses` in a prompt.
# 3) _actually type_ `y` however many godforsaken times you need to.
# 4) meticulously harvest `c:/android/android-sdk/licenses/*` to this task.
# (you don't need the newline that they thoughtfully put before the hash in each file).
- name: set up android licenses by hand
win_lineinfile:
path: c:/android/android-sdk/licenses/{{ item.name }}
line: "{{ item.line }}"
create: true
with_items:
- {name: "android-googletv-license", line: "SOME HASH"}
- {name: "android-sdk-license", line: "SOME OTHER HASH"}
...
1 votes
Duplicata possible de Comment installer les outils de construction du SDK Android en ligne de commande ?
1 votes
Duplicata possible de "Android update sdk" sur linux headless