如何下载较旧的谷歌播放服务?

我将使用Android google maps v2android emulator/android studio 0.4.0 。 其中一个要求是将项目google-play-services_lib放在版本低于/等于emulator级别的位置。 我的模拟器适用于api lv 17 。 问题是,如何下载比由android sdk manager下载的旧版本的google-play-services_lib

我意识到这是一个古老的问题,但是我今天遇到了同样的问题(对于真实的设备而不是模拟器)并find了解决scheme。

我知道你可以添加代码来提示用户升级到最新版本(参见@ nathan-walters的评论),但是由于复杂的原因,在我的情况下,我需要使用用户已经安装的版本设备(如果有的话),因此倾向于使用旧版本的客户端库(google-play-services_lib)进行编译/构build

因此,进一步研究,我解开了Android SDK Manager用来查找和安装“额外”软件包(包括最新版本的Google Play服务)的xml。
如果您有兴趣,请从这里开始: https : //dl-ssl.google.com/android/repository/addon.xml

对于目前的版本(截至2014年11月10日),它为您提供了google-play-services_lib的库,位于:

 https://dl-ssl.google.com/android/repository/google_play_services_6171000_r21.zip 

旧版本位于谷歌服务器上的同一位置(尽pipe它们随时可能会消失),所以如果您准备将当前安装的库移动到一旁,并手动解压缩较旧的zip,则可以安装旧版本。 我发现以下内容:

使用相同的技术,您可以在旧版本的模拟器中对不可升级的旧版Google地图(Google Play服务)进行testing。 我还没有针对模拟器testing所有这些版本,但是已经在模拟器中成功testing了基于Google API(API 19)的AVD的Google Maps。

谷歌确实偶尔尝试使模拟器更新。 这是一个问题跟踪器线程讨论客户端库和模拟器之间的版本不兼容问题和谷歌的各种尝试来解决它们: https : //code.google.com/p/android/issues/detail?id=57880

[更新:]

@btrue 看到下面的答案现在比我的答案有更好的答案

去:

 <your path to android sdk>/extras/google/m2repository/com/google/android/gms/play-services/ 

在那里你可以find包含AAR格式旧版本的目录 – 只需重命名为.zip即可解压缩。

接受的答案太麻烦了。 Google实际上在SDKpipe理器中分发了旧版本。
在“Extras”下,有“Google Repository”。
在存储库中,GPS库将回到版本3.1.36。
他们是在AAR格式,这只是生成项目的zip。
改名为* .zip,解压缩,里面是一个classes.jar,它是所有gps类的jar。
如果你不需要任何资源,你可以将jar文件添加到你的类path中。 完成。

 ls -l /Applications/Programming/adt-bundle-mac-x86_64-20140702/sdk/extras/google/m2repository/com/google/android/gms/play-services/ total 24 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 3.1.36 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 3.1.59 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 3.2.25 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 3.2.65 drwxr-xr-x+ 11 Norrin staff 374 Feb 10 20:09 4.0.30 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 4.1.32 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 4.2.42 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 4.3.23 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 4.4.52 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 5.0.89 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 6.1.11 drwxr-xr-x+ 8 Norrin staff 272 Jan 13 01:08 6.1.71 drwxr-xr-x+ 8 Norrin staff 272 Feb 4 13:43 6.5.87 -rw-r--r--+ 1 Norrin staff 703 Jan 13 01:08 maven-metadata.xml -rw-r--r--+ 1 Norrin staff 32 Jan 13 01:08 maven-metadata.xml.md5 -rw-r--r--+ 1 Norrin staff 40 Jan 13 01:08 maven-metadata.xml.sha1 

你可以下载google play services for froyoSDK Manager与SDK 8和工作,但得到一个特定的版本是不可能的AFAIK。 目前的谷歌播放服务与10及以上的作品

其中一个要求是将项目google-play-services_lib放在版本低于/等于仿真器级别的位置。

google-play-services_lib与模拟器版本无关。

问题是,如何下载比由android sdkpipe理器下载的旧版本的google-play-services_lib?

AFAIK,没有办法做到这一点。 而且,正如已经指出的那样,这是没有必要的。

那么如果你的设备坏了,或者你没有能力testing你的程序

这是没有任何意义的。 google-play-services_lib是一个 。 这不是Google Play服务本身,而是用于利用Google Play服务的客户端库。

但是,我需要使用支持库,我想避免

如前所述,Android支持包与Play Services SDK无关。 Play Services SDK的某些部分可以使用 Android支持包(例如, SupportMapFragment ),但是Play Services SDK 不需要 Android支持包。