Which Android OS version to target?

170 views
Skip to first unread message

Rick Richard

unread,
Nov 18, 2013, 10:20:28 PM11/18/13
to andro...@googlegroups.com
Hi everyone,

I develop for iOS and Android, but haven't developed an Android app in about 14 months.  I'm getting requests from my iOS clients to build an Android version of their apps, but although Jelly Bean is over the 50% there is still confusion regarding the version of Android to target.  If I target as far back as Gingerbread, I miss out on all the new Jellybean improvements.  If I develop using Jellybean the app won't run on 50% of the active installed base!

What is the best practice of Android developers today regarding which OS version(s) to target and why?

Thanks,

-- Rick
GrooveDevelopment.com

Cameron Mayer

unread,
Nov 19, 2013, 1:24:51 AM11/19/13
to andro...@googlegroups.com, groovede...@gmail.com
Hi Rick,

I would be inclined to target Gingerbread as a minimum unless your clients particular needs require a previous version (e.g. the app needs to run on older android hardware that is stuck on 2.2). If you target Jellybean, you rule out running on 25-30% of devices because they are running Gingerbread, and about 15% because they're running ICS.

Unless the nature of the app requires you to target a higher minimum version, Gingerbread is probably your best bet. It's also possible to set your minimum to support Gingerbread, and still use the new features available in more recent versions of Android when the user's device supports them (running KitKat, for instance). Here's the relevant documentation: http://developer.android.com/training/basics/supporting-devices/platforms.html

That being said, one of Google's objectives with KitKat was to make it run on devices with as little as 512MB of RAM, so it's possible that it could run on devices that run Gingerbread and have inadequate hardware to support ICS/JB. Given that many of the devices (most?) are running OEM customized versions of Android, I wouldn't hold my breath that Gingerbread will be irrelevant any time soon though. Here's an article that talks about this: http://readwrite.com/2013/10/31/google-project-svelte-android-fragmentation-kitkat-gingerbread#awesm=~onCkBaVlzPm9XW
 
Hope this helps,

/cameron


--
You received this message because you are subscribed to the Google Groups "androidpdx" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidpdx+...@googlegroups.com.
To post to this group, send email to andro...@googlegroups.com.
Visit this group at http://groups.google.com/group/androidpdx.
For more options, visit https://groups.google.com/groups/opt_out.



--
/cameron

Trent Peterson

unread,
Nov 19, 2013, 2:00:11 AM11/19/13
to andro...@googlegroups.com, groovede...@gmail.com
In addition to what Rick said, I'd also challenge the assumption that targeting older OS' means you lose out on new features. Android, like most any software dev platform, is all about graceful degradation. To help with this, Google provides support libraries and there are 3rd party examples as well, like ActionBarSherlock. It's good practice to take advantage of these abstractions and helpers, not just for backward compatibility, but also for the future, when KitKat is no longer The New Hotness.

-Trent

C Shipley

unread,
Nov 19, 2013, 10:03:32 AM11/19/13
to andro...@googlegroups.com, groovede...@gmail.com
To add a small bit to what the others have said, obviously older generally means less memory. So choose a strategy that scales to memory if your app can be memory intensive. Also,  2.x devices handle bitmaps a bit differently, the actual bit-data isn't stored on the java heap, so it won't show up in DDMS and isn't garbage collected. You need to call recycle() unless they're attached to an ImageView when the activity is destroyed.

Another thing to be aware of is Google's switch to Android Studio. The one thing that caused me problems there is that unit tests are now part of the same project as your app. They need to be in a directory named instrumentTest, (unless you want to override the default name in the gradle file.)

-- Curtis

Rick Richard

unread,
Nov 19, 2013, 1:59:03 PM11/19/13
to andro...@googlegroups.com, groovede...@gmail.com

Thanks for all the feedback.  My gut feeling is that although I understand the reasoning behind Googles KitKat approach, I think the Android OS will not fully be great until it’s not tethered by pre 4.x devices and OS versions.  I also agree that the upcoming buying season will make much of this discussion mute.

 As of now I plan on supporting JellyBean.

 -- Rick

.  
Reply all
Reply to author
Forward
0 new messages