Tôi đang tìm kiếm khả năng truy xuất cả hai , tên gói và tên chung của các ứng dụng được cài đặt trên thiết bị Android thông qua ADB - hoặc ít nhất là để lấy tên chung nếu biết tên gói. Một tìm kiếm nhanh trên trang web của chúng tôi đưa ra hai câu hỏi liên quan, nhưng chúng không giải quyết được vấn đề của tôi:
- Làm cách nào để có được tên chung của một ứng dụng có tên gói (như com.android.blabla)? (dòng lệnh hoặc ứng dụng đi kèm) không hoạt động thông qua ADB (nhưng sử dụng ứng dụng bạn phải tra cứu bằng tay), phù hợp với yêu cầu của OP
- Làm thế nào để tìm ứng dụng dựa trên tên gói? chỉ trở lại tra cứu URL tại Google Play , điều này không phải lúc nào cũng phù hợp (vì không phải tất cả các ứng dụng đều có sẵn ở đó).
Tôi đang tìm cách lấy thông tin trực tiếp từ thiết bị, nếu có thể - không phải là "bất kỳ cách nào" (bao gồm cả "tra cứu web" hoặc "thông qua một ứng dụng") vì hai câu hỏi đó có.
Tôi biết có nhiều công cụ có sẵn để lấy chi tiết gói:
adb dumpsys package
: Mặc dù danh sách này liệt kê tất cả các gói có nhiều thông tin chi tiết, "tên chung" không được hiển thịadb shell pm list
: chỉ cung cấp tên góiaapt
sẽ có thể có được tên chung, nhưng trước tiên sẽ yêu cầu kéo.apk
tệp khỏi thiết bị, điều này không thực sự tiện lợi (và rõ ràng sẽ khá chậm với nhiều và / hoặc các ứng dụng lớn được cài đặt)
Tôi đã bỏ lỡ một cái gì đó? Tôi biết thông tin phải có trên thiết bị (làm thế nào khác nó có thể hiển thị tên ứng dụng trong GUI? Tôi nghi ngờ Android phân tích .apk
tệp mỗi khi GUI cần "tên chung"). Vậy có cách nào để nắm giữ nó, sử dụng ADB trực tiếp không?
TL; DR
Bối cảnh (nếu ai đó tò mò): Tôi muốn có thể nhanh chóng có được danh sách các ứng dụng người dùng từ bất kỳ thiết bị nào của mình mà không phải quay lại nhào lộn. Một danh sách các tên gói mà tôi có thể truy xuất bằng cách sử dụng adb shell pm list -3
, nhưng vì đó chỉ là các tên gói, việc nhận ra các ứng dụng là một công việc đoán. Vì vậy, nếu có một số lệnh ADB để lấy tên chung cho tên gói đã cho, tôi có thể chỉ cần sử dụng một vòng lặp như for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
- và nhận danh sách tất cả các ứng dụng người dùng đã cài đặt theo "định dạng có thể đọc được" cùng với tên gói của chúng.
Trường hợp sử dụng:
- Xem những ứng dụng "siêu tốc" nào được cài đặt (mà tôi có thể xóa)
- Danh sách kiểm tra chéo từ nhiều thiết bị
- Tài liệu ;)
- và có lẽ nhiều hơn (nhưng 3 ở trên là những gì tôi cần nó)