11 votes

Vérifiez si le package Android SDK est installé de manière programmatique

Je suis en train de créer une alternative pour le gestionnaire SDK autonome (il a disparu sur Android SDK 25), j'ai trouvé dans Android Studio les fichiers XML requis pour récupérer les packages.

Répertoire Android  https://dl.google.com/android/repository/repository2-1.xml
Images Système Android   https://dl.google.com/android/repository/sys-img/android/sys-img2-1.xml
Images Système Android TV    https://dl.google.com/android/repository/sys-img/android-tv/sys-img2-1.xml
Images Système Android Wear  https://dl.google.com/android/repository/sys-img/android-wear/sys-img2-1.xml
Kit de développement Glass, Google Inc.  https://dl.google.com/android/repository/glass/addon2-1.xml
Images Système Google API add-on https://dl.google.com/android/repository/sys-img/google_apis/sys-img2-1.xml
Images Système Google API avec Playstore https://dl.google.com/android/repository/sys-img/google_apis_playstore/sys-img2-1.xml
Google Inc. https://dl.google.com/android/repository/addon2-1.xml
Intel HAXM  https://dl.google.com/android/repository/extras/intel/addon2-1.xml
Repo Hors Ligne    file:/C:/Program%20Files/Android/Android%20Studio/plugins/sdk-updates/offline-repo/offline-repo.xml

Je veux vérifier quels packages sont installés, lesquels sont disponibles pour être mis à jour et lesquels ne sont pas installés mais disponibles en téléchargement.

EDIT: Je sais comment parser, je ne suis pas du tout sûr si l'attribut path est une méthode fiable pour vérifier.

4voto

albodelu Points 6112

Vous n'avez pas besoin de réinventer la roue. J'utiliserais le nouveau sdkmanager et y ajouterais une interface graphique.

Utilisez uniquement sdkmanager, le nouvel outil en ligne de commande, et analysez la sortie. La sortie de ici.

Cette simple commande en ligne liste les packages installés :

find ~/.android-sdk/ -name package.xml -exec sh -c 'eval $(xmllint --xpath "//*[local-name()='\'localPackage\'']/@path" $0) && echo $path' {} \;

Vous pouvez comparer une liste complète des packages disponibles (retournée par sdkmanager) et la liste des packages installés (retournée par cette commande ou sdkmanager), puis ajouter l'interface graphique sur ces informations.

Une sortie alternative à analyser en utilisant sdkmanager --list --verbose expliquée ici et ici

./sdkmanager --list --verbose > tmp.txt

Info: Analyse de /Users/albodelu/Library/Android/sdk/build-tools/19.1.0/package.xml
Info: Analyse de /Users/albodelu/Library/Android/sdk/build-tools/21.1.2/package.xml
...
Info: Analyse de /Users/albodelu/Library/Android/sdk/system-images/android-25/google_apis/x86_64/package.xml
Info: Analyse de /Users/albodelu/Library/Android/sdk/tools/package.xml
Packages installés:
--------------------------------------
build-tools;19.1.0
    Description :        Android SDK Build-Tools 19.1
    Version :            19.1.0
    Emplacement installé : /Users/albodelu/Library/Android/sdk/build-tools/19.1.0

build-tools;21.1.2
    Description :        Android SDK Build-Tools 21.1.2
    Version :            21.1.2
    Emplacement installé : /Users/albodelu/Library/Android/sdk/build-tools/21.1.2
...
system-images;android-25;google_apis;x86_64
    Description :        Image système Google APIs Intel x86 Atom_64
    Version :            4
    Emplacement installé : /Users/albodelu/Library/Android/sdk/system-images/android-25/google_apis/x86_64

tools
    Description :        Outils Android SDK
    Version :            26.0.2
    Emplacement installé : /Users/albodelu/Library/Android/sdk/tools

Packages disponibles:
--------------------------------------
add-ons;addon-google_apis-google-15
    Description:        Google APIs
    Version:            3

add-ons;addon-google_apis-google-16
    Description:        Google APIs
    Version:            4
...
system-images;android-25;google_apis;x86
    Description:        Image système Google APIs Intel x86 Atom
    Version:            4

system-images;android-25;google_apis;x86_64
    Description:        Image système Google APIs Intel x86 Atom_64
    Version:            4

tools
    Description:        Outils Android SDK
    Version:            26.0.2
    Dépendances :
        patcher;v4
        émulateur
        outils de plate-forme Révision 20

terminé

3voto

Yashar Aliabasi Points 1521

Vous devez effectuer 2 travaux séparés pour terminer :

  1. Parcourir les XML donnés à partir d'URLs comme (https://dl.google.com/android/repository/repository2-1.xml)
  2. Lire les descriptions des fichiers dans chaque dossier de votre chemin SDK

par exemple: dans C:\Program Files (x86)\Android\android-sdk\platforms\android-23 sur mon ordinateur, il y a un fichier nommé source.properties avec le contenu suivant :

Pkg.Desc=Android SDK Platform 6.0
Pkg.UserSrc=false
Platform.Version=6.0
Platform.CodeName=
Pkg.Revision=3
AndroidVersion.ApiLevel=23
Layoutlib.Api=16
Layoutlib.Revision=3
Platform.MinToolsRev=22

il y a un fichier source.properties dans chaque dossier. J'espère que cela vous aide ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X