30

Since android 5.0, Google added Google APIs. what is that exactly?

And what is the difference between Google APIs intel atom_64 x86 system image and Google APIs intel atom x86 system image?

I know that intel atom images is much faster, but there is a lot of them.

and what version should I use as my main emulator?

enter image description here

Hussein El Feky
  • 6,627
  • 5
  • 44
  • 57
humazed
  • 74,687
  • 32
  • 99
  • 138

4 Answers4

13

Since android 5.0, Google added Google APIs. what is that exactly?

A few library jars and corresponding documentation. See the add-ons directory in your Android SDK. From add-ons/addon-google_apis-google-23/manifest.ini:

# details for each library
com.google.android.maps=maps.jar;API for Google Maps
com.android.future.usb.accessory=usb.jar;API for USB Accessories
com.google.android.media.effects=effects.jar;Collection of video effects

Typically, you do not need to install Google APIs.

And what is the difference between Google APIs intel atom_64 x86 system image and Google APIs intel atom x86 system image? ... and what version should I use as my main emulator?

One is 64-bit, the other is 32-bit. 64-bit may be slightly faster depending on your machine's architecture. From https://software.intel.com/en-us/android/articles/how-to-develop-and-evaluate-64-bit-android-apps-on-intel-x86-platforms:

Android L with 64-bit technologies for Intel Atom processor-based platforms can help developers to optimize their applications now. Building Android applications for 64-bit is just as easy as building traditional 32-bit Android applications. You can now use the official Android 64-bit emulator to run and debug 64-bit apps. To test the performance of 64-bit x86 Android platforms, we rebuilt several open source projects to 64-bit and had several top ISVs in PRC build 64-bit versions of their apps. The performance benchmarks show 7-8% (or even 20% on one special case) performance gains using 64-bit compared to 32-bit.

Typically, you only need to install Google APIs Intel x86 Atom_64 System Image in order to create an emulator with Google APIs. As mentioned above, you do not need to install the separate Google APIs package.

If you do not use any Google APIs, you could install Intel x86 Atom_64 System Image instead.

James Wald
  • 13,626
  • 5
  • 52
  • 63
  • so Google apis are for only if you want use emulators? If I am debugging on real device, I dont need to install any Api? – Emil Jun 30 '17 at 14:09
  • @batmaci I have the same question. I would like to delete the entire google API directories as they are huge and since I work with Bluetooth exclusively the emulator is useless to me. I want to manually delete them as well as the provided manager is HORRIBLY slow deleting this kind of stuff (called deleting and patching). – Brian Reinhold Jul 16 '17 at 11:59
  • 1
    @BrianReinhold I deleted them all and have no problem as I debug only on real device. I spared a lot of space on my ssd drive as well. But I suggest you to delete using SDK manager, you may have trouble later. For me it deletes instantly even some apis were really big size – Emil Jul 16 '17 at 12:15
  • @JamesWald: the way I read the *linked article*, "64-bit" is all about the *target device* you are emulating; there is nothing in article that says an *emulation* of a 64-bit atom will run any faster than an emulation of a 32-bit atom (on a 64-bit Windows workstation). (Maybe it will, maybe it won't; article doesn't talk about *emulator* speed.) So it seems to me that this part of the answer is moot, or else a different reference is needed. – ToolmakerSteve Sep 22 '18 at 19:18
  • The quoted performance gain is due to the fact that the system apps are built for the 64-bit architecture which allows them to run slightly faster. If those system apps were still built for 32-bit architectures then they probably would not run any faster on the 64-bit emulator. – James Wald Sep 23 '18 at 21:35
  • I use com.android.future.usb.accessory API for USB Accessories, and I only ever debug and test on a real device. Does that mean I don't need to tick any Google APIs at all? – hamish Nov 09 '20 at 10:04
10

Android APIs are part of Google APIs. Google APIs contain Android APIs, Google Map APIs, Google Services APIs, Google Plus APIs and something like that.

SilentKnight
  • 13,761
  • 19
  • 49
  • 78
  • okay, then what does that stand alone Google APIs used for? and why I may need to install it. there is already Google APIs system image. – humazed Aug 19 '15 at 08:02
  • 2
    Some phones don't provide Google services. And, If you don't use Google APIs, you can also include Map, Service, Plus library projects in your project to support Google services. For Android development, services of Google is not necessary but Android APIs are. – SilentKnight Aug 19 '15 at 08:05
  • then it has no relation to System Images at all and I just confused by names. thank you. – humazed Aug 19 '15 at 08:14
  • @humazed there is a relation with System Images. I Have updated my answer. – Jamil Aug 19 '15 at 08:26
  • 2
    System Images are used for creating Virtual Machines, like Nexus 4/5/6, not for application development. – SilentKnight Aug 19 '15 at 09:21
6

Additionally to SilentKnight Answer, Please also refer to this link.

https://developers.google.com/android/reference/packages

https://developers.google.com/android/guides/api-client

  1. Also see Jan Gerlinger answer

    What is google API and framework API

    According to Jan Gerlinger =

    Android is developed by Google, but can also be used without any Google services. So the Android platform SDK can be used for developing Android applications. If you however want to use any Google services in your Android Application, you should use the Google API Java Client library.

  2. And oenpelli answer

    Difference between Google APIs (x86 System Image) and Google APIs (ARM System Image) in Android 4.4.2

    According to oenpelli statement =

    In the beginning the only Android system images available ran on the ARM instruction set. A system image is used to create different Android Virtual Devices (AVDs) and emulate the different Android devices in common use.

    As developer workstations are usually Intel x86 based, the ARM instruction set had to be emulated as well. This resulted in poor performance from the AVDs due mainly to the amount of translation the x86 processor was doing to also emulate the ARM instruction set.

    At Android 4.0.3 (API 15) Intel provided their own x86 based Android system image. This could then be used to create AVDs that did not need to do ARM translation. Combined with the Intel Hardware Accelerated Execution Manager (HAXM) the x86 AVMs were up to 10 times faster than the equivalent ARM emulators.

    Support for Google specific Android APIs like the Android Google maps API, are not provided with the standard Android system images. They need to be installed separately using the Android SDK Manager. To use these APIs with an x86 system image you need to also install the Google APIs (x86 System Image) for the same API level.

Community
  • 1
  • 1
Jamil
  • 5,457
  • 4
  • 26
  • 29
2

Each emulator has a different processor architecture.

I usually use the ARMv7 architecture, but it's probably best to test on all architectures to support more phones when you release your app.