Nowadays, Fragmentation in Android is a fact. As developers, we have to deal constantly with random behaviors between different versions of the operating system, incomplete ROMs, different hardware qualities, manufacturers that modify the specs of some APIs or even ignore them...
That’s Da Real Fragmentation and it makes development much more difficult.
In addition, if you have background processes running, your life becomes a nightmare!
This sample repository illustrates the problems that we found along the way creating an app which needs to keep track of sensor signals in background.
Reviewing how to deal with the different versions of Alarms in Android, how to live with Doze mode and other battery optimization apps and showing some hardware and software peculiarities of different manufacturers.
Apart from that, it explains how we have solved such fragmentation issues in order to develop an app that works properly in as many devices as possible.
This code was created to support the following posts:
You can also check the slides of the talk, that my friend Raúl and I gave at Codemotion Spain 2016.
Copyright 2016 Pablo Guardiola Sánchez.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.