2

i am путаница о фрагментации андроида. Я знаю о фрагментации памяти, но не могу понять, что Что такое проблема фрагментации андроида. Хотя я найти множество определений, какAndroid Фрагментация

фрагментации Android относится к озабоченности по поводу пугающего числа различных имеющаяся операционная система Android (OS) версии в рынке. Основной проблемой является потенциально снижение совместимости между устройствами приложений, закодированными с помощью программного обеспечения для Android Kit (Android SDK).

Может кто-нибудь объяснить это явление просто. ??

ответ

3

Проще говоря, существует слишком много устройств Android с различными версиями ОС, экранными форм-факторами, различными аппаратными характеристиками и т. Д., И все они должны запускать каждое приложение для Android, которое когда-либо разрабатывалось без каких-либо заметных различий в производительности, надежности и т. д.

Примеры:

  • В Fragment & ActionBar классов были введены в уровне API 11. Множественные AsyncTask ы будут запускать отдельные потоки параллельно между уровнем API 8 и 10, а также последовательно от уровня API 11 и далее. Это потребовало от разработчиков осознать поведение приложения в разных версиях ОС. Чтобы помочь разработчикам, Google предоставила библиотеки поддержки, которые предоставили бы более новые API на более старых платформах, у которых не было этих функций. Последняя версия библиотеки поддержки позволяет вам использовать новые функции Material Design на старых платформах.
  • Пользовательский интерфейс приложения должен быть равномерным для планшетов, фаблев и телефонов. Вот почему платформа Android заставляет разработчиков подготовить макеты как иерархию XML: это подход самонастройки, который автоматически масштабирует & позиции элементов пользовательского интерфейса на разных экранах с правильной пропорцией и размером. Кроме того, приложения могут отображать совершенно разные пользовательские интерфейсы в зависимости от размера экрана и версии ОС, а Play Store даже позволяет загружать разные версии приложений для разных размеров экрана или разных версий ОС.
  • Приложения с особыми требованиями к оборудованию также не будут работать на телефонах, у которых нет этих функций.Например, такие игры, как Asphalt, требуют довольно мощного процессора/графического процессора & большого количества памяти и не могут работать на устройствах младшего класса. Некоторые приложения требуют определенных конкретных датчиков и даже не будут видны в Play Store на телефонах, у которых нет этих датчиков. Функции Bluetooth Low Energy (BLE) были введены на уровне API 17 и не будут работать на более низких платформах.

Android SDK разработан, чтобы помочь разработчикам преодолеть проблему фрагментации.

2

Это не техническая вещь, как фрагментация памяти. В этом контексте слово «фрагментация» относится к изменениям в пользовательском опыте (перемещение элементов меню и т. Д.) И опыт разработчика (какие API-интерфейсы доступны и т. Д.) Из одной версии Android в другую. Иногда API-интерфейс, ориентированный на разработчика, влияет на работу пользователя. Например, любимый виджет пользователя может перестать работать с последней версией Android, потому что Google решил нарушить некоторые API, от которых это зависит. Поставщики и операторы делают это хуже со всеми настройками, которые они устанавливают, плюс странные ошибки, связанные с устройством. Конечным результатом является то, что есть сотни различных версий Android вместо дюжины или около того. Очень сложно просто заставить приложение работать на всех из них, не говоря уже о постоянном опыте пользователей.

Я не думаю, что кто-либо пытался создать метрику для такого рода фрагментации, поэтому трудно сказать, действительно ли Android более фрагментирован, чем другие платформы. Мое впечатление, что это так, но мой стандарт для сравнения - J2SE API.

Смежные вопросы