Ми вже знаємо, що серед сотень різних версій і телефонів Android є ОС смартфона Google безнадійно роздроблений, і вимагає від розробників величезних витрат та часу, щоб навіть проста програма працювала надійно.
Але проблема з Android - і чому це така сука для розробки - лежить глибше, ніж просто занадто багато телефонів і збірок ОС для підтримки. Навіть розробка a простий Музичний додаток для Android - це кошмар через фрагментацію Android, тому що Google навіть не міг отримати регулювання гучності на Android прямо з коробки.
Eliot Van Buskirk з Evolver.fm поспілкувався з розробником, що стоїть за дуже популярним, але безіменним музичним додатком, який намагається зайти на Android. Говорячи на умовах анонімності (через те, що додаток, незважаючи на ці проблеми, врешті -решт запуститься в Google Play), розробник пояснює чому впровадження Google чогось такого коригуючого, як контроль гучності, безнадійно порушується і призводить до ще більшої фрагментації вже фрагментованого платформи.
Ось що не так з методом управління гучністю Android, згідно з розробниками:
1. ОС Android надає лише один API для регулювання гучності. Проблема в тому, що існує необхідність принаймні двох типів регулювання гучності: загальної гучності виводу та гучності медіа/музики. Це означає, що виробники повинні реалізувати свій власний спосіб управління медіа/гучністю музики. На жаль, кожен виробник робить це по -різному, і немає можливості дізнатися, як вони це зробили, поки ви не протестуєте кожну окрему модель. Щоб погіршити ситуацію, Samsung використав неефективний спосіб контролю апаратного забезпечення та гучності медіа і навмисно подає частину апаратного виходу на вхід мікрофона. Це створює звуковий хаос.
2. ОС Android напрочуд неефективна у роботі з аудіо в реальному часі. Операційна система додає приблизно семисекундну затримку, а апаратне забезпечення додає ще п’ять-шість секунд, що робить загальну затримку 12-13 секунд. Нам вдалося скоротити затримку в режимі реального часу приблизно до півсекунди (500 мс) або менше, що, на нашу думку, є найкращим досягненням на сьогоднішній день Android. [Ред. Примітка: версія iPhone не містить відчутної затримки.]
3. Сотні розмірів екрану та роздільної здатності унеможливлюють встановлення єдиного для всіх графічного інтерфейсу. [Ред. Примітка: Очевидно, ця скарга не є виключною для розробників аудіододатків, і ми чули її багато разів раніше.]
Зрозумів? Оскільки Google не зумів передбачити чотири версії Android, щоб запровадити два різних API для регулювання гучності - один для гучності медіа, другий для загальний обсяг випуску, - всі виробники представили сотні власних шалених альтернатив, які будь -який розробник, що створює медіа- або музичний додаток, повинен спробувати підтримка.
І відставання! Для аудіо в реальному часі найкраще Розробники можуть сподіватися на півсекундну затримку, і це після божевільної та нескінченної кількості оптимізації. Без оптимізації, Android затримає аудіо в реальному часі приблизно на тринадцять секунд. Я набрав цей абзац менше. Порівняно з iOS, пише коментатор Evolver.fm Аділ Шервані, і різниця просто шокує.
500 мс - це більше, ніж 100 мс, яке я бачив у минулому році, але в будь -якому випадку на 2 порядки вище, ніж iOS, яка пропонує затримку апаратного виведення під 3 мс. Додайте приблизно 10 мс затримки сенсорного екрану / акселерометра (дуже приблизна оцінка, я не думаю, що хтось опублікував фактичні цифри для цього), 5 мс аудіо буферів (мінімальний розмір) та 1-2 години обробки вашого додатка, і ви все ще можете залишатися в межах 20 мс, що, здається, є магічним числом, щоб звук почувався в режимі реального часу люди.
Зрозумів? В Android звук в режимі реального часу фактично становить щонайменше півсекунди в минулому. На iOS, однак, він грає за мить.
Абсолютно божевільний. Не дивно, що розробники Android так розчаровані. І це лише одне крихітний приклад фрагментації Android. Коли Google збиратиметься разом?
Джерело: Evolver.fm