Fragmentation (programming)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In computer programming, fragmentation is when a combination of software and hardware do not provide a consistent, top-level experience for the vast majority of its user-base. The cause is when a finite combination of both software and hardware is made available to consumers.

The cause of fragmentation can vary. Hardware developers say that fragmentation is caused by a loose guideline set for software developers. Software developers say that fragmentation is caused by a variety of versions of a particular operating system or environment, and hardware, creating an inconsistent ecosystem.

Android[edit]

Circle frame.svg

Android (operating system) usage fragmentation as of 30 Aug 2014.[1]

  GingerBread 2.3.3 (0.24%)
  Gingerbread 2.3.4 (0.56%)
  Gingerbread 2.3.5 (0.55%)
  Gingerbread 2.3.6 (2.41%)
  Gingerbread 2.3.7 (0.21%)
  Ice Cream Sandwitch 4.0.3 (2.13%)
  Ice Cream Sandwitch 4.0.4 (5.34%)
  Jelly Bean 4.1.1 (3.21%)
  Jelly Bean 4.1.2 (18.96%)
  Jelly Bean 4.2.1 (1.33%)
  Jelly Bean 4.2.2 (16.22%)
  Jelly Bean 4.3 (10.21%)
  Kitkat 4.4.2 (32.01%)
  Kitkat 4.4.3 (0.71%)
  Kitkat 4.4.4 (5.06%)
  Other (0.85000000000002%)
Circle frame.svg

IOS usage fragmentation as of 30 Aug 2014.[2]

  iOS 5.1.1 (0.95%)
  iOS 6.0.1 (0.41%)
  iOS 6.1 (0.27%)
  iOS 6.1.2 (0.38%)
  iOS 6.1.3 (1.89%)
  iOS 6.1.4 (0.35%)
  iOS 6.1.6 (1.64%)
  iOS 7.0 (1.19%)
  iOS 7.02 (1.29%)
  iOS 7.0.3 (1.40%)
  iOS 7.0.4 (6.40%)
  iOS 7.0.6 (2.53%)
  iOS 7.1 (6.18%)
  iOS 7.1.1 (15.43%)
  iOS 7.1.2 (58.81%)
  Other (0.88%)

A term being used in the Android development community is Android fragmentation.[3] Fragmentation within Android is when a variety of versions of the Android platform, combined with a mixture of hardware result in the inability for some devices to properly run certain applications.[3] Despite Google upgrading its Android operating system to version 4.4, also known as KitKat, users continue to use the earlier versions of the operating system, primarily Gingerbread. The cause is primarily because hardware manufacturers of the devices are not able to upgrade to the later operating system for a number of reasons. As a result, applications written for one version will not operate consistently on the other, and vice versa.[4]

In August 2010, developers of the OpenSignal wireless crowd-sourcing app detected 3,997 distinct values for "android.build.MODEL" among users of their app.[5] This variable represents the device model, though it may be altered by adding a custom ROM. OpenSignal acknowledged that while this made it problematic to develop apps, the wide variety of models allows Android to enter more markets.

Developers have placed the blame on Google and the hardware manufacturers, while Google has blamed software developers for not staying within the guidelines of its terms and conditions.[4] The issue with fragmentation has forced Google to add a prohibition to its terms and conditions for its software development kit, which developers must accept before developing for the Android operating system.[4] For example, OpenSignal and Testdroid studies have found out that OEMs fragment Android ecosystem significantly more than Google.

See also[edit]

References[edit]

External links[edit]