Does Google Play library have backwards compatibility support? (And other libraries) - android

I was reading this tutorial http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/ and I find it amazing that this one and many others never state what versions they support.
There must be a simple list which contains what libraries are for what api versions, not just Google Play library but for everything else, from reading file paths to camera api. An example would be just the camera api 2, which is for api version 21 and above. A nice list listing all of this would be very helpful!
It's extremely time consuming tracking down all of this information.

I would say that there is one - in packages documentation you can easily filter by API number.

Official Android APIs have their API number define on official Android documentation like #sebap123 said.
Google Play Services isn't part of Android itself. It's a complimentary add-on. Google Play Services runs on Android 2.3 or higher. All new GPS APIs included in GPS will run on all these devices that have GPS(Android 2.3 or higher). Unlike new Android APIs that only run on new version of Android.

Related

How to implement google maps with best possible backward compatibility in an android?

I'm building a simple android app that uses Google maps api to display map and navigation. As you may know Google maps need Play services Library to run on client android phone. i want my app to run in much older android OS's(14,15,..)
Problems:
1- Clients need to install or activate Play services app.
2- then Clients have to update play services app to the latest version to use my app with google maps.
3- how to make app to run in older androids? just by specifying min sdk ?
so in order to solve first and third problem i've no idea but for the second one :
building project with older Play service dependencies may help but i dont know how to do this or even it helps or not.
it'll appreciate if guys offer any solutions !
Thank you all.
What are the recommended practices for maintaining the widest backwards compatibility of an Android app while depending on Google Play Services?
Here are the pointers I was able to aggregate concerning backwards compatibility, including those that use Google Play Services.
The Google Maps Android API uses OpenGL ES version 2 to render the map. The least Android API version that has support for this is API 8 or Android 2.2 .
Compile against the oldest version of Google Play Services that contains the APIs that you need. As further discussed in this thread, refrain from using wildcards like 5.+ because that updates to the latest play services. Instead use a widely used version like com.google.android.gms:play-services:5.0.89.
Use the V4 support library to verify and request permissions.
com.android.support:support-v4:23.0.1
You might also check some additional insight from this SO thread.

Why is Google API 2.3 required and cannot use default Android 2.3 for USB IOIO?

The top answer to this question (ADK and Eclipse woes - com.android.future and USBAccessory?) solved my issue (in a specific case), but I wondered why I needed to use the Google API and not the default Android API for implementing a IOIO board via USB. Why does this feature exist in the Google API 2.3.3 and not Android API 2.3.3 (since the android operating system is capable of supporting it... did the Android API developers just not add some additional functionality that makes the IOIO plugin tick?), and why is it not required to use the Google API for 4.2? Is this likely specific to the IOIO interface code I am using (https://github.com/ytai/ioio/wiki/Downloads#client-software-and-ioio-application-firmware-images)?
I would like to further understand the reason behind this so that I can better predict if I encounter a similar issue in the future with other libraries.
I do not have an idea about the USB issue you've mentioned. I just want to clarify why you need to use Google APIs instead of normal Android API in some cases.
Android code is open-source which means anyone can have access to it and can compile the code to make their own android enabled devices. Most of the device manufacturer choose Google's proprietary licensed version of Android which includes some of the Google services inbuilt which are closed source and are not included in the android source code.
These services include Google Play Store, Google Maps, Gmail, Admob etc. So if you want to use any of the Google services/features(which are not included in the usual Android features), you have to use Google APIs, which have support for these features.
An actual device running on Android OS may or may not support these features, depending upon the availability of Google Services in the installed ROM (These can be installed later if you have root access). For example Nokia X series won't support any Play Store, Google map or Google gaming services feature.
I suppose this is true in your case too.
PS: The above info is from my own experience and is not supported by any of the articles mentioned anywhere. Feel free to add references in the comments if you know any article supporting the facts.

Which one to choose as Project build target ? Google APIs or SDK platform

I have been searching but couldn't find the difference between both of these things. I have read other questions in which people have said that we should use Google Apis as build target when we want to integrate Google Maps Api or use other Google apis.
The problem is that i am using maps on projects that were build on simple Android 4.4 not Google API (platform 4.4) and the maps are working just fine on my Galaxy s3.
How are they possibly working?
And if they are working then what is the difference between Google APIs and SDK platform?
Or is the difference only related to emulators?
It is really pointless to use the Google API's now because most if not all things included in that have been deprecated and moved to google play services. Selecting Google API will not do anything except maybe increase the size of your program. The difference being is in addition to the 4.4 SDK you would also get all the Google API stuff with it
You don't need (but it won't hurt you) to use Google APIs if you use Google Maps Android API v2. Google APIs is for when you work with deprecated Google Maps Android API v1 or you program USB.
The google API includes Google Maps and other Google-specific libraries. The Android one only includes core android libraries.
As for which one to choose, I would go with the Android API until you find that you need the Google API; such as when you need Google Maps functionality.
http://code.google.com/android/add-ons/google-apis/index.html is a link to the Google API page.

Targeting Google APIs

I'm new to Android Development and Eclipse and I'm going through the various tutorials.
When setting up Eclipse I installed Android 2.3.3 SDK Platform along with Google APIs for that platform.
When I create new projects for most all of the tutorial programs I select Android 2.3.3 as my target.
However, when going through the Google Map Views tutorial I am told to select Google APIs instead of Android 2.3.3 when creating the project. I did this and the map view program works just fine.
But this seems like a binary OR decision; I'm allowed to select one or the other. Does the Google APIs include all that's in the Android 2.3.3 platform? In other words could I just always select Google APIs target for the platform level that I want and it would work?
Thanks,
Dean
Yes, it would always work because the Google APIs is a superset of the Android SDK.
Google APIs Add-On is an extension to the Android SDK development environment that lets you develop applications for devices that include Google's set of custom applications, libraries, and services. A central feature of the add-on is the Maps external library, which lets you add powerful mapping capabilities to your Android application.
You shouldn't make use of it unless you need to. This will save the system the extra work required to load these unnecessary features at runtime.
Right now the Google API SDK is mostly used for the proprietary Google Maps API in it.
You only want to select this as your target when you require specific API's inside of it. If you don't use Maps in your app, you can usually leave it off. It does include everything that is in its accompanying Android SDK.
When you select this as your target, it makes it so only devices that are running a ROM with the Google API SDK can see your app on the market.

Considerations for updating Android app using Android API to Google API

I have an Android geolocation application released into the market named apna ilaka.
It is using Android API level 2.1. In order to allow a user to add places I would like to display a Google map with which the user could find different locations and would be able to add place indicators and information.
Following are my questions :
Do I really need to change my Android API level to Google API level in config path?
Since my app is already in market if I upload this new apk on market will it create any issue in updating the software on user side?
You only need to update the API level of you app if you want to use any api that are higher than the currently set level.
Supporting multiple API levels can be tricky but it isn't a nightmare, check out this great post by google on this subject:
http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html
I guess you are talking about "Google API" versus "Android API"? If you need Google Maps you will need to use "Google API" as it contains the Maps libraries. Otherwise you could not use Maps classes when developing/compiling.
No, as far as I know you should not have any problems.

Categories

Resources