AOSP and access to Google Play Services - java

I am developing for a device that uses AOSP (https://source.android.com/). This device is a Garmin 780 (https://buy.garmin.com/en-US/US/p/569748). The custom build does not include any Google Apps.
I'm new to Android dev, so I'm a bit lacking in the ecosystem knowledge.
I was hoping that someone could explain to me how the OS would handle having an application installed which uses some of the Google Play Services API's (e.g. https://developers.google.com/android/reference/packages).
I've installed an APK that uses:
com.google.android.gms:play-services-analytics
com.google.android.gms:play-services-auth
The application runs. I would have thought that it would fail to run if the libraries were not present. Or are they bundled with the apps APK?
When using the Device File Explorer in Android Studio and checking out the folder /data/data I can confirm that no com.google.android packages are installed.
So I'm really after some confirmation, the way Google Play Services is described here: https://developers.google.com/android/guides/overview seems that Google Play Services must be installed on the device at an OS level in order to make use of them. These services cannot be installed alongside a custom application like normal dependencies right?

That is correct Google Play Services cannot simply be installed for use along with an application.
Google Play Services is a suite of APIs installed by default on most Android devices to allow for apps to easily utilize common features as well as keep the services and Google apps up to date.
Something that might interest you is Open Gapps. It is a way for devices with custom Android ROMs to utilize the Google Play Services package.

Related

Integrated SDK behave differently after PlayStore app bundling

I integrated 3rd party SDK to my Android app.
I tested staging and release build APK, no problem. The build is done using bitrise/BETA by crashlytics.
I downloaded the release app from Google Play Store.
The SDK throws persistent error/exception that does not appear during 2.
The SDK developer deducted that the cause may be from the missing checksum, which is generated using this piece of code:
mChecksumMD5 = Util.calculateMD5(new File(mContext.getApplicationInfo().nativeLibraryDir+"/libxyz.so"));
I suspect it may be due to app bundling, which is not present during build via bitrise/BETA. I tried to use bundled app using bundle tools (https://github.com/google/bundletool/releases) for staging build and it doesn't have any problem (bitrise staging vs bundled staging are all ok). So is there something different about the app bundling happening in Google Play Store? What may cause this unexpected exception?

How to support more devices in Android app

I'm an iOS developer, but I recently developed an Android app for a customer, because they were unable to find a developer. So I made it and it works. But, I'm a complete newbie.
My customer says that their users complain than the app is not available for the newest versions of Android. I build the app against the latest version of the SDK. How do I make it compatible with new versions of Android?
The Play console lets you see thousands of devices in the app ecosystem, whether they are compatible with your app, and why. The help article gives more details.

How to use Admob in Eclipse?

I know that since Google Play Services r30 the lib folder used to add the services to Eclipse is gone. I also know that Eclipse is no longer supported by google and they support Android Studio. But can I still use the latest Google Play Services (Admob) in Eclipse and how?
Thanks!
I don't see any documentations or tutorials now about Admob in Eclipse. You need to use Android Studio now. Here is a sample tutorial. You can also check this AdMob with Firebase documentation.
The best way to use AdMob is with Firebase, but for those publishers who aren't ready to make the switch just yet, Google Mobile Ads will remain available as a standalone SDK. Android publishers can continue to import the play-services-ads Gradle artifact without using the Firebase plugin, and iOS developers can use the existing Google-Mobile-Ads-SDK CocoaPod. In both cases, the app will get the Google Mobile Ads SDK (including AdMob's ad formats and features) without Firebase.

Google Play Services incompatibility

I've been using google's fused location services on my app for location tracking. I use Android studio and it's gradle build system. Recently I have discovered a big issue with google's location services.
My gradle build file contained this dependency: compile 'com.google.android.gms:play-services:+. So when I rebuilt my project, Android studio downloaded the latest version for google play services, namely 5.2.08. HOWEVER my device (Samsung Galaxy S4) only has the 5.0.89 version. And apparently these two versions are not compatible, I get this error : Google Play services out of date. Requires 5208000 but found 5089038. I cannot update google play services on my device. It states that it is up to date (5.0.89).
Using this solution I managed to get the tracking system working, but it won't work on another device I own (a W8L device), which has another version of google play services: 5.0.84.
It seems this is not an uncommon thing to happen with google. How can I fix this for any devices out there, and make sure that google doesn't mess up my app.
Same thing is happening here, i solved by changing the play services version at gradle:
compile 'com.google.android.gms:play-services:5.0.89'
They probably released a new version but the roll out haven't arrived in our devices yet.

Java Application on Smartphone

What alteration should be made in a Java Application to be able to install it on Java Enabled Smartphone?
I tried using a random app of mine to see what happens, when I open it on the cell, it says Install? I say yes, and it says invalid file.
Now I was wondering what alteration should be made?
My smartphone (Samsung S8500) runs on bada which is more or less the same as Android, but alterations in the General.
You need different SDK for smartphones. Like for Android, you need Android SDK 1.5 or any other version. You just cannot install the same application. You need to develop using the resources provided by the SDK.
If your application is Java based mobile application then you can use some tools to convert it for Android. Doesn't work every time but worth a try.
In your case, Bada OS is not like Android what i learn from here. So, you need to develop the application using J2ME .

Categories

Resources