我正在替代GUI独立SDK Manager(它已经在Android SDK 25上使用),我在Android Studio中找到了检索包所需的XML.
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
Run Code Online (Sandbox Code Playgroud)
我想检查哪些软件包已安装,哪些软件包可用于更新,哪些软件包未安装但可供下载.
编辑:我知道如何解析,我不确定path属性是否是一种可靠的检查方式.
你不需要重新发明轮子。我会使用新的sdkmanager并为其添加一个 GUI。
仅使用新命令行工具sdkmanager并解析输出。从这里输出。
这个简单的命令行列出了已安装的软件包:
find ~/.android-sdk/ -name package.xml -exec sh -c 'eval $(xmllint --xpath "//*[local-name()='\'localPackage\'']/@path" $0) && echo $path' {} \;
Run Code Online (Sandbox Code Playgroud)
您可以比较可用软件包的完整列表(由 sdkmanager 返回)和已安装软件包的列表(由该命令或 sdkmanager 返回),然后在此信息上添加 GUI。
使用此处和此处sdkmanager --list --verbose解释的替代输出进行解析
./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
Run Code Online (Sandbox Code Playgroud)
您必须完成两项单独的工作:
例如:在C:\Program Files (x86)\Android\android-sdk\platforms\android-23我的笔记本电脑中,有一个source.properties名为以下内容的文件:
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
Run Code Online (Sandbox Code Playgroud)
source.properties每个文件夹中都有文件。我希望这可以帮助你 ;)
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |