ページへ戻る

− Links

 印刷 

Android​/Google Play Servicesなどのaarファイルをダウンロードする のソース :: NJF Wiki

xpwiki:Android/Google Play Servicesなどのaarファイルをダウンロードするのソース

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

Android Studioを使って開発している人は、Gradleファイルなどをちゃんと設定しておけば勝手に依存関係を解決してくれるのでなんの問題もありません。しかし、それ以外のツールで開発している場合は必要なライブラリのaarファイルをダウンロードしなければならないときがあります。

そのダウンロード方法をご紹介します。

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

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

 https://dl.google.com/dl/android/maven2/「ライブラリのグループパス」/group-index.xml

にアクセスすると、利用可能なバージョンが一覧となっています。

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

「ライブラリのグループパス」の部分は、

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

に一覧がありますが、基本的にはパッケージ名の「.」を「/」にしたものです。

例えばGoogle Play Servicesならパッケージ名が「com.google.a

ndroid.gms」なので「com/google/android/gms」となります。

よってGoogle Play Servicesでは次の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

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

例えば「play-services-ads-lite,play-services-ads,play-services-base,play-services-basement,play-services-tasks,support-v4」の最新バージョンのurlを表示し、ダウンロードして実行したディレクトリに保存する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+".aar", '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.aar", 'wb') as save_file:
     save_file.write(arr_file.content)

ただし、単純に最新バージョンをダウンロードすると、依存関係などで動かない可能性があるので、バージョンは自分で指定した方が良いかも知れません。

こちらの記事は以下のサイトを参考にしました。

[[Google Play Services aar download for above 11.0.4:https://stackoverflow.com/questions/47672929/google-play-services-aar-download-for-above-11-0-4]]

« Prev[3]