Logo ru.androidermagazine.com
Logo ru.androidermagazine.com

Производители телефонов возятся с управлением памятью Android, и Google ничего с этим не делает

Оглавление:

Anonim

Компания, которая делает ваш телефон Android, неправильно управляет памятью Android. Поскольку лучшие практики и в некоторых случаях фактические требования для доступа к Google Play не соблюдаются, разработчики приложений видят новый набор головной боли, если приложения, которые они создают, должны работать, пока вы смотрите на другой экран или экран перевернут. выкл. К счастью, команда Urbandroid привлекла наше внимание к Dontkillmyapp.com. Здесь вы найдете подробное описание проблемы, а также оценочную карту для популярных поставщиков Android, которая оценивает уровень злоупотребления каждого из них 1-5 кучками дерьма. примерка

Заявление на странице GitHub сайта объясняет:

В конечном счете, эта проблема затрагивает, по крайней мере, каждого независимого разработчика Android.

Мы в Urbandroid Team сильно пострадали от нашего приложения Sleep as Android, и мы собрали так много информации о взломах и обходных путях, что мы почувствовали необходимость поделиться этой информацией. Мы начали с того, что обратились к отдельным независимым разработчикам с предложениями об обмене информацией, что привело к идее более эффективного подхода в форме веб-сайта с открытым исходным кодом.

Проблема заключается в том, что компании, производящие телефоны, изменили работу жизненно важных компонентов Android, таких как Doze; создавать приложения, предназначенные для агрессивной очистки и уничтожения приложений, использующих системные ресурсы; и даже создание белых списков, в которых указано, какие приложения могут запускаться, когда они не отображаются на экране. Это делает приложения, которые должны работать в фоновом режиме, например, приложение «Сон» от Urbandroid для Android, которое не может выполнять то, для чего оно предназначено.

Все это попадает в уши разработчиков приложений, поскольку недовольные клиенты не понимают, как работает управление памятью в Android (и им это не нужно), и почему оно не просто изолировано от своего уязвимого приложения. Несчастные клиенты делают для несчастных разработчиков, что для всех нас - пять куч дерьма.

Не весь Android открыт

Вы можете подумать: «Ну и что? Android с открытым исходным кодом, и компании, использующие его, могут делать с кодом все, что захотят», и в какой-то степени вы были бы правы. Но все это меняется, как только производитель телефонов хочет получить доступ к Google Play.

Доступ к Google Play Store не предоставляется бесплатно - существует соглашение, которому должны следовать обе стороны.

Чтобы получить доступ к Google Play, необходимо соблюдать некоторые правила, многие из которых на первый взгляд кажутся произвольными. Это большая дискуссия для еще одной или двух статей, но суть в том, что Google хочет иметь на своем телефоне минимум вещей, чтобы каждое приложение в Play Store работало, пока телефон поддерживается версия. Другими словами, если в списке приложения указано, что для его работы требуется Android 4 или выше, все телефоны с Android 4 или выше должны иметь возможность устанавливать и использовать приложение. Без исключений.

Есть несколько подробных способов, которыми разработчик, который хочет или нуждается в приложении, должен быть живым и работать в фоновом режиме - когда вы не смотрите активно на экран - чтобы сделать это так, чтобы это было совместимо на всех телефонах. Google может также улучшить другие части Android и знать, с чем не следует связываться, если она хочет, чтобы все приложения по-прежнему работали, поэтому она может пытаться поддерживать обратную совместимость.

Это не всегда работает. Каждый, у кого был телефон Nexus или Pixel, скажет вам, что новые версии Android часто приводят к тому, что приложения перестают работать, а некоторые никогда не обновляются. Иногда необходимо принять решение и отключить старую функцию, чтобы заменить ее чем-то новым. И Google вмешался один или два раза в свой собственный беспорядок, как и первый релиз Doze в Android 6.0.

Важно быть последовательным, если вы хотите использовать другие продукты Google. Даже с открытым программным обеспечением.

как мы сюда попали?

Производители смартфонов делают это не просто для удовольствия. Каждая компания, производящая телефоны, хочет, чтобы вам понравился продукт, который вы покупаете у них, настолько, чтобы в следующий раз купить телефон. Если приложения будут убиты без причины, это не поможет.

Когда мы покупаем телефон, обычно есть одна вещь, которая находится ближе к началу списка того, что мы хотим от него: долгое время автономной работы. Один из способов продлить срок службы батареи - ограничить возможности телефона; вот почему вам нужно заряжать «тупой» телефон только пару раз в неделю. Это на самом деле мало что делает, особенно когда это не в ваших руках. Смартфоны, тем не менее, должны делать много вещей.

Убийство фоновых задач может быть полезно для вашей батареи, но это делает ваш смартфон тупым.

В Google есть система, которая переводит приложения в «спящее» состояние, когда они ничего не делают активно, но могут понадобиться в будущем. Он проделал большую работу - какую-то хорошую, какую-то плохую - чтобы сбалансировать вещи, чтобы у вас был телефон, который может выполнять такие действия, как отслеживание шагов, контроль сна или выполнение функций музыкального проигрывателя, когда экран выключен, не разряжая батарею, Он ожидает, что эти методы будут использоваться, и правила будут соблюдаться, чтобы мы могли получить такую ​​согласованность от каждого приложения в Play Store.

Из списка Dontkillmyapp, Nokia является примером, который я буду использовать здесь, но в список нарушителей входят OnePlus, Sony и Samsung. Даже сам Google вызван для того, чтобы затруднить освобождение приложения от "Dozed". Nokia включает в себя приложение на каждом телефоне компании, работающем под управлением Android Oreo или выше, которое убивает каждый фоновый процесс через 20 минут после выключения экрана. Это означает, что фитнес-приложения никогда не будут работать, но это также означает, что ваш будильник не сработает, если у вас есть Android P.

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

Google нужно затянуть зажимы

Я ненавижу говорить это. Android - это проект с открытым исходным кодом, который за последние годы получил невероятное развитие от компаний, не названных Google. Компании, использующие Android, должны делать то, что они хотят, и расширять границы, чтобы сделать это лучше. Но затем мы снова возвращаемся к этой последовательности для приложений из Play Store.

Пользователи - включая пользователей, которые относятся к тому типу, которые знают и понимают такую ​​проблему, - заслуживают лучшего. Google должен сделать это, когда дело доходит до приложений из своего магазина, и изменить и применить все, что нужно, чтобы сделать это так. Делайте это без какого-либо участия пользователя, и делайте это последовательно, независимо от того, насколько велика компания, «оскорбляющая», или сколько телефонов она продает.

Мы это заслужили.