ページへ戻る

− Links

 印刷 

Android​/Google Play Servicesなどのaarファイルをダウンロードする のバックアップソース(No.1) :: NJF Wiki

xpwiki:Android/Google Play Servicesなどのaarファイルをダウンロードする のバックアップソース(No.1)

  Next »[5]
Andoid Studioのアップデートにより、それまではSDKマネージャーで「Google Repository」をチェックしておけば自動で使っているライブラリのarrファイルなどがダウンロードされていたのが、されなくなりました。

Android Studioを使って開発している人はなんの問題もありませんが、それ以外のツールで開発している場合は必要なライブラリのarrファイルが必要になることがあり、他の方法でダウンロードしなければなりません。

その方法をご紹介します。

まず、ダウンロードしたライブラリのバージョンを調べます。

グーグルのサイトにビルドツールMaven用のバージョンが一覧になっているxmlファイルがあるので、それを使うと便利です。

「https://dl.google.com/dl/android/maven2/「ライブラリのパッケージ名の.を/に変えたもの」/group-index.xml」

にアクセスすると、利用可能なバージョンが一覧となっています。
「ライブラリのパッケージ名の.を/に変えたもの」の部分は、例えばGoogle Play Servicesならパッケージ名が「com.google.android.gms」なので「com/google/android/gms」となります。

よって次のxmlファイルにバージョンが一覧となっています。

 https://dl.google.com/dl/android/maven2/com/google/android/gms/group-index.xml

ここでダウンロードしたいライブラリのバージョンを選びます。

実際のarrファイルの場所は

https://dl.google.com/dl/android/maven2/「ライブラリのパッケージ名の.を/に変えたもの」/「ライブラリ名」/「バージョン」/「ライブラリ名」-「バージョン」.aar

となります。

例えば、ライブラリ「play-services-basement」のバージョン「16.2.0」なら、次のurlからダウンロードできます。

 https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/16.2.0/play-services-basement-16.2.0.aar

手でダウンロードするのは少し面倒なので、よく使うならスクレイピングツールを作っておくと便利です。

例えば「play-services-ads-lite,play-services-ads,play-services-base,play-services-basement,play-services-tasks,support-v4」の最新バージョンをダウンロードして実行したディレクトリに保存するPython3のスクリプトは以下のようになります。

 from bs4 import BeautifulSoup

 import requests

 version_url = "https://dl.google.com/dl/android/maven2/com/google/android/gms/group-index.xml"


 html = requests.get(version_url)

 bf = BeautifulSoup(html.text,"lxml")


 libs = ["play-services-ads-lite","play-services-ads","play-services-base","play-services-basement","play-services-tasks"]


 for l in libs:
     vs = bf.find(l)["versions"].split(",")
     lv = vs[len(vs)-1]
     durl="https://dl.google.com/dl/android/maven2/com/google/android/gms/%s/%s/%s-%s.aar" % (l,lv,l,lv)
     print(durl)
     arr_file = requests.get(durl)
     with open(l+".arr", 'wb') as save_file:
         save_file.write(arr_file.content)



 version_url = "https://dl.google.com/dl/android/maven2/com/android/support/group-index.xml"
 html = requests.get(version_url)

 bf = BeautifulSoup(html.text,"lxml")
 vs = bf.find("support-v4")["versions"].split(",")
 lv = vs[len(vs)-1]
 durl="https://dl.google.com/dl/android/maven2/com/android/support/support-v4/%s/support-v4-%s.aar" % (lv,lv)
 print(durl)
 arr_file = requests.get(durl)
 with open("support-v4.arr", 'wb') as save_file:
     save_file.write(arr_file.content)

  Next »[5]