Sto cercando una possibilità per recuperare entrambi , i nomi dei pacchetti e i nomi comuni delle app installate su un dispositivo Android tramite ADB - o almeno per recuperare il nome comune se il nome del pacchetto è noto. Una rapida ricerca sul nostro sito ha sollevato due domande correlate, ma non risolvono il mio problema:
- Come posso ottenere il nome comune di un'app con il nome del pacchetto (come com.android.blabla)? (riga di comando o app inclusa) non funziona tramite ADB (ma utilizza un'app con cui devi cercare manualmente), corrispondente alla richiesta dell'OP
- Come trovare un'app in base al nome del pacchetto? ritorna a una ricerca URL su Google Play , che non sempre si adatta (poiché non tutte le app sono disponibili lì).
Sto cercando un modo per recuperare le informazioni direttamente dal dispositivo, se possibile - non un modo "qualsiasi" (incluse le "ricerche sul web" o "tramite un'app") come hanno queste due domande.
So che ci sono più strumenti disponibili per ottenere i dettagli del pacchetto:
adb dumpsys package: Mentre questo elenca tutti i pacchetti con un mucchio di dettagli, il "nome comune" non viene mostratoadb shell pm list: fornisce solo i nomi dei pacchettiaaptsarebbe in grado di ottenere il nome comune, ma richiederebbe innanzitutto di estrarre il.apkfile dal dispositivo, il che non è molto comodo (e ovviamente sarà piuttosto lento con molte e / o grandi app installate)
Ho dimenticato qualcosa? So che le informazioni devono essere sul dispositivo (in quale altro modo potrebbe mostrare i nomi delle app nella GUI? Dubito che Android analizzi il .apkfile ogni volta che la GUI necessita del "nome comune"). Quindi c'è un modo per ottenerlo, usando direttamente ADB?
TL; DR
Background (se qualcuno è curioso): voglio essere in grado di ottenere rapidamente un elenco di app utente da uno qualsiasi dei miei dispositivi, senza dover tornare alle acrobazie. È possibile recuperare un elenco dei nomi dei loro pacchetti adb shell pm list -3, ma poiché si tratta solo di nomi di pacchetti, riconoscere le app è un'ipotesi. Quindi, se ci fosse un comando ADB per recuperare il nome comune per un determinato nome di pacchetto, potrei semplicemente usare un ciclo simile for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done- e ottenere un elenco di tutte le app installate dall'utente in un "formato leggibile dall'uomo" insieme ai loro nomi di pacchetto.
Casi d'uso:
- Guarda quali app "superflue" sono installate (che potrei rimuovere)
- Elenchi di controllo incrociato da più dispositivi
- Documentazione ;)
- e probabilmente di più (ma i precedenti 3 sono ciò di cui ho bisogno)