Ich suche nach einer Möglichkeit, sowohl die Paketnamen als auch die allgemeinen Namen von Apps, die auf einem Android-Gerät installiert sind, über ADB abzurufen - oder zumindest den allgemeinen Namen abzurufen, wenn der Paketname bekannt ist. Eine schnelle Suche auf unserer Website hat zwei verwandte Fragen aufgeworfen, die mein Problem jedoch nicht lösen:
- Wie erhalte ich den allgemeinen Namen einer App mit dem Paketnamen (wie com.android.blabla)? (Befehlszeile oder mitgelieferte App) funktioniert nicht über ADB (sondern verwendet eine App, mit der Sie manuell suchen müssen) und entspricht der Anforderung des OP
- Wie finde ich eine App basierend auf dem Paketnamen? Geht einfach zu einer URL-Suche bei Google Play zurück , die nicht immer passt (da nicht alle Apps dort verfügbar sind).
Ich suche nach einer Möglichkeit, die Informationen , wenn möglich, direkt vom Gerät abzurufen - nicht "auf irgendeine Weise" (einschließlich "Web-Lookups" oder "über eine App"), wie diese beiden Fragen es haben.
Ich weiß, dass mehrere Tools verfügbar sind, um Paketdetails abzurufen:
adb dumpsys package
: Während dies alle Pakete mit einer Reihe von Details auflistet, wird der "allgemeine Name" nicht angezeigtadb shell pm list
: gibt nur die Paketnamen anaapt
würde in der Lage sein, den allgemeinen Namen zu erhalten, müsste aber zuerst die.apk
Datei vom Gerät ziehen, was nicht wirklich praktisch ist (und offensichtlich mit vielen und / oder großen installierten Apps ziemlich langsam sein wird)
Habe ich etwas verpasst? Ich weiß, dass sich die Informationen auf dem Gerät befinden müssen (wie sonst könnten die App-Namen in der GUI angezeigt werden? Ich bezweifle, dass Android die .apk
Datei jedes Mal analysiert, wenn die GUI den "allgemeinen Namen" benötigt.) Gibt es also eine Möglichkeit, mit ADB direkt darauf zuzugreifen?
TL; DR
Hintergrund (wenn jemand neugierig ist): Ich möchte in der Lage sein, schnell eine Liste von Benutzer-Apps von jedem meiner Geräte abzurufen, ohne auf Akrobatik zurückgreifen zu müssen. Eine Liste der Paketnamen, die ich mithilfe von abrufen kann. Da es sich adb shell pm list -3
jedoch nur um Paketnamen handelt, ist das Erkennen von Apps eine Vermutung. Wenn es also einen ADB-Befehl zum Abrufen des allgemeinen Namens für einen bestimmten Paketnamen gäbe, könnte ich einfach eine Schleife wie for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
- verwenden und eine Liste aller installierten Benutzer-Apps in einem "lesbaren Format" zusammen mit ihren Paketnamen abrufen.
Anwendungsfälle:
- Sehen Sie, welche "überflüssigen" Apps installiert sind (die ich entfernen könnte)
- Gegenchecklisten von mehreren Geräten
- Dokumentation;)
- und wahrscheinlich mehr (aber die oben genannten 3 sind, wofür ich es brauche)