Android碎片

时间:2015-03-10 07:56:17

标签: android android-fragments android-asynctask android-actionbar android-sdk-tools

混淆了android碎片。我知道内存碎片但是无法理解什么是android碎片问题。虽然我找到了许多定义,如

  

Android碎片是指关注数量惊人的问题   不同的可用Android操作系统(OS)版本   市场。主要问题是可能降低了互操作性   使用Android软件开发编码的应用程序设备   套件(Android SDK)。

有人可以简单地解释一下这种现象。 ??

2 个答案:

答案 0 :(得分:3)

简单地说,有太多的Android设备有不同的操作系统版本,屏幕外形,不同的硬件规格等等,所有这些都预计会运行每一个开发的Android应用程序,而性能没有任何明显的差异,可靠性等。

<强>示例:

  • Fragment&amp;在API级别11中引入了ActionBar个类。多个AsyncTask将在API级别8和10之间并行运行单独的线程,并从API级别11开始连续运行。这要求开发人员在不同的操作系统版本上认识到应用程序行为。为了帮助开发人员,Google提供了支持库,可以在没有这些功能的旧平台上提供更新的API。最新版本的支持库使您可以在旧版平台上使用新的Material Design功能。
  • 应用程序的UI需要在平板电脑,平板手机和手机上保持一致。这就是为什么Android框架迫使开发人员将布局准备为XML层次结构的原因:这是一种自动扩展方法,可以自动扩展和扩展。使用正确的比例和大小调整UI元素在不同屏幕上的位置。此外,应用程序可以显示完全不同的UI,具体取决于屏幕大小和操作系统版本,Play商店甚至允许您上传不同屏幕尺寸或不同操作系统版本的不同应用程序版本。
  • 具有专门硬件要求的应用也无法在没有这些功能的手机上运行。例如,像Asphalt这样的游戏需要一个非常强大的处理器/ GPU&amp;内存很多,无法在低端设备上运行。某些应用需要某些特定的传感器,甚至在没有这些传感器的手机上的Play商店中也看不到。蓝牙低功耗(BLE)功能是在API级别17上引入的,不会在较低的平台上运行。

Android SDK旨在帮助开发人员克服碎片问题。

答案 1 :(得分:2)

它不像内存碎片这样的技术问题。在这种情况下,单词&#34; fragmentation&#34;指从一个Android版本到下一个版本的用户体验(菜单项移动等)和开发者体验(哪些API可用等)的变化。有时面向开发人员的API更改会影响用户体验。例如,用户最喜欢的小部件可能会停止使用最新版本的Android,因为Google决定打破它所依赖的某些API。供应商和运营商在安装所有自定义设备时加剧了这一点,加上奇怪的设备特定错误。最终的结果是实际上有数百种不同版本的Android ,而不仅仅是十几种。让应用程序在所有这些应用程序上运行变得非常困难,更不用说提供一致的用户体验了。

我认为没有人曾试图为此类碎片制定指标,因此很难说Android是否真的比其他平台更加分散。我的印象是,但我的比较标准是J2SE API。