Фрагментация андроида начинает принимать причудливые формы. Оно и не может быть по-другому. Вот давайте вместе посмотрим.
1. Аппаратная фрагментация. Куча разных телефонов-планшетов, несколько базовых аппаратных платформ, разные графические подсистемы, разные разрешения и (самое страшное!) разные соотношения сторон у экранов, плюс болтающиеся на рынке аппараты с процессорами ARM v6, плюс специфика отдельных моделей, вроде Galaxy Note с его экраном, на котором некоторые игры отказываются запускаться в фуллскрине. Как под все это хозяйство можно хоть что-то вменяемо тестировать? Да никак! Хорошо, если какая-нибудь навороченная игра сразу заведется. А если нет, то...
2. Программная фрагментация. А вот здесь сейчас все вообще довольно интересно. Тут фрагментация на двух разных уровнях. Первый: разная степень обновляемости официальных прошивок. Какие-то аппараты до сих пор и теперь уже навсегда болтаются на втором андроиде, какие-то уже перешли на четвертый. Подоспел новехонький Jelly Bean. Но это мелочи. Всего-то три типовые прошивки. Страшен второй уровень: фрагментация на уровне кастомных прошивок. Вот где начинается полный писец. Цианоген, MIUI, гибридный Paranoid Android, AOKP, кастомы на основе официальных прошивок, порты... Сюда же прибавим разнообразие ядер и получим настоящий ахтунг, в котором черт ногу сломит. Все это к тому, что поведение игр и программ при таком многообразии софтовых решений непредсказуемо.
А теперь представим некую новую графически навороченную игру и попробуем оценить ее шансы работать более-менее стабильно в свете вышенаписанного, то есть, при тотальной аппаратно-софтовой фрагментации. И вот сюрприз: даже при таком многообразии не складывается ощущение катастрофы. Да, проблемы есть, есть глюки, но заметно все это только на фоне особенно крупных релизов.
Кстати о крупных релизах. Тут мы подошли к тем самым причудливым формам фрагментации. Пару дней назад решил посмотреть на нашумевший Asphalt 7. Сразу оговорюсь, что игра эта, в отличие от других поделок Gameloft, просто отличная. И обладает сногсшибательной по телефонно-планшетным меркам графикой. А теперь суть: в Асфальте масштабируемая графика, то есть, на разных устройствах эта игра выглядит по-разному. Есть набор графических эффектов и характеристик, которые автоматически регулируются игрой, исходя из аппарата и его железа. Проблема в том, что протестировать игру на всех возможных конфигурациях было невозможно, поэтому Асфальт имеет несколько типовых наборов графических настроек.
Никак не могу привыкнуть к тому, что телефоны выдают такую графику
Проблема возникает с масштабируемостью. При типовых настройках игра на многих устройствах не хочет выдавать 30 кадров в секунду. Например, на моем SGS3. Какие-то эффекты тормозят игру. Причем речь идет именно о моем аппарате с MIUI на борту и ядром под жестким нерегулируемым андерволтингом, ведь, судя по форумам, у юзеров SGS3 никаких проблем с тормозами не возникает. И все было бы хорошо, если бы в самой игре были настройки графики, но их нет! И единственный способ настроить графику - ковыряние конфиг-файла в кэше игры. Чем вчера полвечера и занимался. Благо, что параметры в файле конфигурации четко и удобно расписаны.
Причудливость данной ситуации заключается в том, что, скорее всего, наступит момент, когда топовые высокотехнологичные игры под андроид из-за фрагментации будут иметь в меню тонкие настройки графики, вплоть до разрешения текстур и дальности прорисовки (да, это и многое другое независимо настраивается все в том же Asphalt 7), прямо как на компе! И, на мой взгляд, это жесть полнейшая. Но при этом неизбежная, а где-то даже желанная.
P.S. А меж тем на 4pda новый прецендент - тестовые группы, подбирающие близкие к идеальным (соотношение картинка-производительность) конфиги для игр под разные аппараты. Вот уж точно - причудливая форма...
Запись сделана с помощью
приложения LiveJournal для Android.