2017-05-19 17 views
10

Tôi đang thay thế cho Trình quản lý SDK độc lập GUI (nó đã xuất hiện trên Android SDK 25), tôi đã tìm thấy trong Android Studio các XML cần thiết để truy xuất gói.Kiểm tra xem gói Android SDK có được cài đặt theo cách lập trình

Android Repository https://dl.google.com/android/repository/repository2-1.xml 
Android System Images https://dl.google.com/android/repository/sys-img/android/sys-img2-1.xml 
Android TV System Images https://dl.google.com/android/repository/sys-img/android-tv/sys-img2-1.xml 
Android Wear System Images https://dl.google.com/android/repository/sys-img/android-wear/sys-img2-1.xml 
Glass Development Kit, Google Inc. https://dl.google.com/android/repository/glass/addon2-1.xml 
Google API add-on System Images https://dl.google.com/android/repository/sys-img/google_apis/sys-img2-1.xml 
Google API with Playstore System Images 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 
Offline Repo file:/C:/Program%20Files/Android/Android%20Studio/plugins/sdk-updates/offline-repo/offline-repo.xml 

Tôi muốn kiểm tra những gói nào được cài đặt, những gì có sẵn để cập nhật và những gì chưa được cài đặt nhưng có sẵn để tải xuống.

EDIT: Tôi biết cách phân tích cú pháp, tôi không chắc chắn nếu thuộc tính path là một cách đáng tin cậy để kiểm tra.

Trả lời

3

Bạn phải làm 2 việc riêng biệt để thực hiện:

  1. Parse cho XMLs từ url như (https://dl.google.com/android/repository/repository2-1.xml)
  2. đọc mô tả tập tin trong mỗi thư mục trong đường dẫn SDK của bạn

ví dụ: trong C:\Program Files (x86)\Android\android-sdk\platforms\android-23 trong máy tính xách tay của tôi có tệp có tên source.properties có nội dung sau:

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 

có tệp source.properties trong mỗi thư mục. Tôi hy vọng điều này sẽ giúp bạn;)

+0

Làm thế nào mà nó sẽ giúp tôi để kiểm tra xem gói phần mềm được cài đặt không? Thông tin trên source.properties rất hữu ích. Nó có thể giúp tôi bằng cách nào? Tôi có phải kiểm tra xem tệp có tồn tại không? Ngoài ra, XML có thuộc tính được gọi là 'đường dẫn', Sẽ kiểm tra sự tồn tại của đường dẫn (thay thế'; 'bằng' \ ') một cách đáng tin cậy để kiểm tra nếu được cài đặt? –

4

Bạn không cần phải tái tạo lại bánh xe. Tôi sẽ sử dụng sdkmanager mới và thêm GUI vào nó.

Chỉ sử dụng sdkmanager, công cụ dòng lệnh mới và parse the output. Đầu ra từ here.

This simple command line liệt kê các gói cài đặt:

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

Bạn có thể so sánh một danh sách đầy đủ các gói có sẵn (được trả về bởi sdkmanager) và danh sách các gói cài đặt (được trả về bởi lệnh này hoặc sdkmanager), sau đó thêm GUI qua thông tin này.

sản lượng thay thế để được phân tích sử dụng sdkmanager --list --verbose giải thích herehere

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

Info: Parsing /Users/albodelu/Library/Android/sdk/build-tools/19.1.0/package.xml 
Info: Parsing /Users/albodelu/Library/Android/sdk/build-tools/21.1.2/package.xml 
... 
Info: Parsing /Users/albodelu/Library/Android/sdk/system-images/android-25/google_apis/x86_64/package.xml 
Info: Parsing /Users/albodelu/Library/Android/sdk/tools/package.xml 
Installed packages: 
-------------------------------------- 
build-tools;19.1.0 
    Description:  Android SDK Build-Tools 19.1 
    Version:   19.1.0 
    Installed Location: /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 
    Installed Location: /Users/albodelu/Library/Android/sdk/build-tools/21.1.2 
... 
system-images;android-25;google_apis;x86_64 
    Description:  Google APIs Intel x86 Atom_64 System Image 
    Version:   4 
    Installed Location: /Users/albodelu/Library/Android/sdk/system-images/android-25/google_apis/x86_64 

tools 
    Description:  Android SDK Tools 
    Version:   26.0.2 
    Installed Location: /Users/albodelu/Library/Android/sdk/tools 

Available Packages: 
-------------------------------------- 
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:  Google APIs Intel x86 Atom System Image 
    Version:   4 

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

tools 
    Description:  Android SDK Tools 
    Version:   26.0.2 
    Dependencies: 
     patcher;v4 
     emulator 
     platform-tools Revision 20 

done 
+0

Trước khi đặt câu hỏi, tôi đã cố phân tích đầu ra, nhưng nó khó hơn và dễ bị lỗi hơn là phát minh lại bánh xe. Phân tích cú pháp XML là đáng tin cậy hơn đối với tôi. Câu trả lời hay, nhưng nó không trả lời câu hỏi của tôi. –

+0

Tôi biết, quan điểm của tôi là tránh các lỗi trong tương lai mỗi khi Google thay đổi điều gì đó. Về nghi ngờ của bạn, tôi nghĩ rằng con đường đó là đáng tin cậy để kiểm tra, và cũng là sự tồn tại tập tin để kiểm tra xem nó đã được cài đặt chưa. – albodelu

Các vấn đề liên quan