Ben almak için bir olasılık arıyorum hem paket isimleri ve ADB yoluyla bir Android cihazında yüklü uygulamaların ortak adları - paket adı biliniyorsa ya da en azından ortak adı almak için. Sitemizdeki hızlı bir arama iki ilgili soru getirdi, ancak sorunumu çözmedi:
- Paket adına sahip bir uygulamanın (com.android.blabla gibi) ortak adını nasıl edinebilirim? (komut satırı veya dahil edilen uygulama) ADB aracılığıyla çalışmaz (ancak manuel olarak aramanız gereken bir uygulamayı kullanır), OP'nin isteğiyle eşleşir
- Paket adına göre uygulama nasıl bulunur? Google Play'de her zaman uygun olmayan bir URL aramasına geri döner (tüm uygulamalar burada mevcut olmadığından).
Mümkünse bilgileri doğrudan cihazdan almanın bir yolunu arıyorum - bu iki sorunun sahip olduğu gibi "herhangi bir" şekilde ("web aramaları" veya "bir uygulama aracılığıyla" dahil) değil.
Paket ayrıntılarını elde etmek için birden fazla araç olduğunu biliyorum:
adb dumpsys package
: Bu, bir grup ayrıntı içeren tüm paketleri listelerken, "ortak ad" gösterilmezadb shell pm list
: sadece paket adlarını veriraapt
ortak adı elde edebilecek, ancak önce.apk
dosyayı cihazdan çekmeyi gerektirecek , bu gerçekten uygun değil (ve yüklü birçok ve / veya büyük uygulama ile oldukça yavaş olacak)
Bir şey mi kaçırdım? Bilgilerin cihazda olması gerektiğini biliyorum (başka nasıl GUI uygulama adlarını gösterebilir? .apk
GUI "ortak ad" her ihtiyaç olduğunda Android dosyayı ayrıştırır şüpheli ). Peki ADB'yi doğrudan kullanmanın bir yolu var mı?
TL; DR
Arka plan (eğer biri merak ediyorsa): Akrobasiye dönmek zorunda kalmadan herhangi bir cihazımdan hızlı bir şekilde kullanıcı uygulamaları listesi elde etmek istiyorum. Kullanarak alabileceğim paket adlarının bir listesi adb shell pm list -3
, ancak bunlar yalnızca paket adları olduğundan, uygulamaları tanımak bir tahmin çalışmasıdır. Bu nedenle, belirli bir paket adı için ortak adı almak için bazı ADB komutları varsa, basitçe bir döngü kullanabilirim for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
ve paket adlarıyla birlikte "insan tarafından okunabilir biçimde" tüm yüklü kullanıcı uygulamalarının bir listesini alabilirim.
Kullanım kılıfı:
- Hangi "gereksiz" uygulamaların yüklü olduğunu görün (kaldırabileceğim)
- Birden fazla cihazdan çapraz kontrol listeleri
- Belgeler;)
- ve muhtemelen daha fazla (ama yukarıdaki 3 bunun için ihtiyacım olan şey)