Есть ли жизнь без Google Play? Альтернативы и обновление приложений

На днях я сделал приложение для обхода блокировки rutracker, однако уже дважды получил от Google отбой по разным надуманным причинам. Это очень огорчило, и возник вопрос — что делать? Поиск по…


На днях я сделал приложение для обхода блокировки rutracker, однако уже дважды получил от Google отбой по разным надуманным причинам. Это очень огорчило, и возник вопрос — что делать? Поиск по хабру показал, что такие проблемы возникли очень у многих (пруфы: один, два, три, четыре… Тысячи их).
А помимо бана есть ещё много причин, по которым ваше приложение может оказаться «за бортом» Google Play — например, если оно предназначено для использования только в компании, для друзей или для другого круга лиц. Так же возможно, что ваше приложение по определению не может быть выложено на Google Play — например, если оно является само по себе установщиком приложений.

Готовой статьи на эту тему я не нашёл, так что решил, что верным решением будет разобраться и написать свою. Итак, принципиальных варианта есть всего два.

1. Используем альтернативный магазин приложений

Тут довольно богато. Amazon App Shop, Samsung Apps, Yandex.Store, blackmart, humble bundle, F-Droid… В общем-то неплохо. Я из них пока попробовал только Yandex.Store. Получилось зарегистрироваться и опубликовать приложение минут за 5 — оно там уже доступно. Правда, недоумение вызывает полная невозможность как-либо дать ссылку на установку приложения в Yandex.Store. Может, я слепой, но кнопочки «Share» там просто нет. Ну и никакого веб интерфейса — только мобильный. Кстати, вопрос к представителям Yandex — а Yandex.Store вообще живой? Последний пост в твиттере датируется 2014 годом.

Плюсы:

  • Наличие некоторых возможностей, к которым мы привыкли в Google Play — включая автоматическое обновление, статистику и биллинг (есть не во всех указанных, конечно).
  • Хотя бы какой-то авторитет издателя — хуже, чем если бы приложение было на Google Play, но лучше, чем ничего.
  • Индивидуальные фичи — например, F-Droid публикует только приложения с открытым кодом.

Минусы:

  • Потеря в имидже. Все пользователи привыки, что приложение должно качаться с google play. Если его там нет — значит, что-то не так. Хотя вот, например, Yandex.Store на Google Play нету. И качать его приходится очень стрёмным методом.
  • Пользователю придётся устанавливать некий «левый» магазин приложений. У меня вот ничего кроме google play не было с момента появления Android, и ставить я не собирался. Устанавливать себе ещё одного «большого брата» с полными возможностями по манипуляции твоим устройством — довольно стрёмно.
  • Кажется, ни у одного из них нет информации о сбоях. Плюс другие возможности Google Play включая биллинг.

2. Самостоятельное решение

Как ни страшно это звучит, на самом деле здесь мы приходим к аналогу обычного десктопного софта. Сама программа знает, когда и как ей обновляться, рассказывает об этом, в ней интегрированы платёжные возможности и монетизация. Рекламой и продвижением занимаетесь вы сами. Ужас, ужас! Но на самом деле, мы просто избаловались. Нужно просто находить правильные пути. Продвигать приложение можно, например, на тематических блогах и форумах — в том числе на 4pda с очень неплохим объёмом аудитории. Или прямо на хабре.

Кстати, даже если ваше приложение успешно опубликовано на Google Play — имеет смысл подстраховаться и как минимум сделать в нём свой алгоритм обновления, который активизируется, если, например, приложение давно не обновлялось. Или по проверке бана на вашем сервере или прямо на Google Play. Иначе, если вас на какое-то время забанят, пользователи не смогут обновить приложение. А если есть запасной вариант — вреда будет заметно меньше.

Плюсы

Ваше приложение практически невозможно заблокировать — только вместе с ресурсом, на котором вы держите обновление и информацию.

Минусы

  • Всё, что только можно — приходится делать вручную.
  • Потеря в имидже, о которой уже было сказано ранее. Как ни странно, возможно что меньшая, чем в случае использования некоего магазина приложений.

Итак, что же вам придётся делать:

Размещение приложения для скачивания

На самом деле, это всего лишь означает, что вам нужно выложить APK куда-то в доверенное место. Их не так уж мало — можно использовать всё тот же 4pda, можно класть релизы прямо в github, можно на свой сайт… Вариантов уйма.

Отладка ошибок

Да, привыкли мы к хорошему — Google сам поймает ошибку, всё расскажет о её месте, устройстве пользователя и так далее. Но… Никак проблем это реализовать самостоятельно. Как простейший вариант — ловим все эксепшны и отсылаем куда-то на сервер по HTTP или даже на почту.

Сбор статистики

К сожалению, никогда не интересовался статистикой приложений, но вам с очевидностью придётся реализовать как минимум статистику по скачиваниям.

Сложные библиотеки

Собственно придётся забыть о всех сложных и хороших вещах, которые даёт Google Play. Впрочем, то же самое касается, пускай и в чуть меньшей степени, любых магазинов приложений.

Обновление

  1. Автоматическое обновление при наличии прав SuperUser. Это довольно стрёмно, но понятно — не будем рассматривать подробно.
  2. Обновление вручную после автоматического скачивания. Неплохо, однако требует разрешения на запись данных. Если его у вашего приложения не запланировано, то ставить лишние разрешения — зло. Требует от пользователя разрешения на установку программ из сторонних источников.
  3. Обновление вручную при переходе по ссылке. Простой вариант, однако требует от пользователя скачать и открыть APK файл. Ну и так же как второй вариант — требует от пользователя разрешения на установку программ из сторонних источников.

Чтобы показать, как всё просто — покажу примитивную реализацию третьего варианта,

1. Добавляем куда-то свою актуальную версию приложения. Я засунул прямо в исходники на Github в build.gradle:

2. Публикуем где-то релизы приложения. У меня они так же лежат на github, в формате

3. Пишем собственно алгоритм обновления:

3.1 в MainActivity.OnCreate добавляем вызов проверки:

3.2 Пишем простенький класс для проверки:

3.3 Добавляем класс для хранения информации о том, что пользователь решил проигнорировать этот релиз:

3.4 Добавляем функцию, которая покажет пользователю диалог с предложением перехода:

Вуаля! Всё, теперь у нас обновляемое приложение. А если оно когда-нибудь появится в Google Play или в другом магазине приложений, который есть у пользователя, то оно сможет обновляться ещё и оттуда.

Выводы

Что есть в сухом остатке — думаю, что без Google Play жить можно. И не только можно — нужно, минусы наличия монополиста на рынке очевидны. В том числе, если бы была хоть какая-то осмысленная конкуренция — возможно, общение с технической поддержкой было бы хоть какое-то адекватное, а не отписка пустыми шаблонами.

Проблема «ожидания скачивания» приложений в Плей Маркете

Хочется надавать по рукам разработчикам из гугла, когда базовые вещи не могут работать нормально. Периодически сталкиваюсь с проблемой, когда не могу скачать приложение и игры в Play Market. Долго, бесконечно висит сообщение «Ожидание скачивания» , при этом никаких ошибок не выдаёт, что ещё больше раздражает, и не понятно что делать. Хотя, когда не хватает памяти, то плей маркет явно об этом говорит и предлагает варианты очистки памяти!

ожидание скачивания приложения

Иногда помогает просто «Отмена» и повторная попытка установки программы с третей попытки, иногда может помочь перезагрузка смартфона. Ясно-понятно, что если интернет плохой, то тоже не стоит рассчитывать на стабильную работу. Но хочется детально разобраться как решить проблему чтобы не попасть впросак, когда, например, нужно срочно забронировать отель, а приложение не устанавливается ?.

Очистка кэша и данных Google Play Market

Самая частая причина ошибки заключается в некорректном заполнение кэша и рабочих данных гугл плея. Значит так, идём в «Настройки -> Приложения» мобильного телефона. Версий прошивок много, может по-другому называться, но суть одна: открыть список всех Андроид-приложений на смартфоне. Далее делаем следующее:

  • В списке находим главное приложение плей-маркета «Google Play Market» сервисы google play
  • В свойствах программы смело нажимаем «Очистить кэш» и «Очистить данные» или «Очистить хранилище». Ничего страшного, если какая-то кнопка неактивна, значит там нечего очищать очистить кэш данные обновления
  • Проверяем, устанавливаются ли приложения, пишет ли ошибку «Ожидание скачивания…»
  • Если ошибка всё ещё есть, то возвращаемся к свойствам Play Market и жмём кнопку «Удалить обновления» , если она активна;
  • То же самое проделываем для «Сервисы Google Play» и «Google Play services for instant Apps»;
  • Перезагружаем смартфон.

В 90% случаев должно помочь, или же читаем дальше.

Автообновление других приложений

Стоит проверить, не обновляются ли в данный момент другие программы. Дело в том, что при подключённом Wi-Fi подключении Play Market в фоновом режиме обновляет все установленные программы, а обновления выходят довольно часто. Пока что-то обновляется, новые установки будут в режиме ожидания.

  • Откройте Play Market и нажмите на значок «Меню»;
  • Нажмите на «Мои приложения и игры» мои приложения и игры
  • На первой вкладке «Обновления» посмотрите, не идёт ли процесс скачивания обновлений скачивается автообновление программ
  • Дождитесь окончания или вручную остановите обновления;
  • Проверьте незавершённые процессы на вкладке «Установленные», бывает и такое.

Не лишним будет дать разрешение скачивать приложения при подключении к Wi-Fi и мобильной сети. Открываем «Меню -> Настройки -> Скачивание приложения» , ставим «Любая сеть» или «Только по Wi-Fi» чтобы не расходовать мобильный трафик.

любая сеть wifi

Перезапуск аккаунта Google

Что ж, если вы добрались сюда, то приготовьтесь к добавлению нового аккаунта Гугл. Плей-маркет работает под вашим аккаунтом гугла, она же – Почта. Попробуем «пересоздать» аккаунт, есть два варианта: удалить аккаунт с телефона и снова его добавить, или добавить ещё один новый. Рекомендую второй способ, если у вас есть ещё один логин и пароль от почты Google, либо вы не против пройти процедуру регистрации.

аккаунты android

  • Заходим в «Настройки» Android-смартфона и находим раздел «Аккаунты»
  • В аккаунтах нажимаем «Добавить» и следуем указаниям мастера;
  • Если другой почты нет, то удаляем текущий аккаунт гугла и снова добавляем его же (первый случай).

добавить новый аккаунт google

Если на новом аккаунте всё заработало, то пробуем удалить старый аккаунт и добавить его снова, чтобы в системе остался один аккаунт, т.к. к нему привязываются все ваши настройки и контакты. Объясню почему не нужно пытаться сразу удалять текущий акк: есть вероятность, что некоторые настройки собьются, а если смена аккаунта не поможет, то экспериментируя с новым акком, мы полностью сохраним текущее состояние устройства.

Другие способы

Посмотрим на менее встречающиеся варианты.

Приложение Downloads

Одно из решений следующее: дать разрешение на доступ в Интернет встроенному приложению «Downloads». Делается это в приложении «Phone manager» (Диспетчер телефона), которое установлено на некоторых прошивках. Находим пункт «Data usage control» (Мониторинг передачи данных). Ищем что-то похожее на «Connection control» (Управление подключением). Далее в списке приложений находим «Downloads» и ставим галочку в колонке Wi-Fi. Если используете мобильный интернет, то для него также галку ставим.

Доступ для Диспетчера загрузок

Идём в «Настройки -> Беспроводные сети -> Статистика трафика -> Доступ в сеть -> Системные» , нужно поставить галку на «Диспетчер загрузки»:

доступ диспетчер загрузки

Проблемы с картой памяти

Как вариант, нужно исключить сбои в работе флеш-памяти. Извлеките Flash-карту из устройства и повторите попытку скачивания приложения. Без извлечения карты можно пройти в «Настройки -> Дополнительно -> Память» и настроить установку приложений в память устройства, либо же наоборот -> в память карты памяти.

Сброс всех настроек

Кардинальный способ, сбросит все настройки, удалит все файлы, фотографии и приложения. Контакты будут сохранены в вашем гугл-аккаунте, если работает синхронизация. Чтобы убедиться, что контакты есть, зайдите в этот же аккаунт на компьютере и перейдите по адресу https://contacts.google.com/. Вы должны увидеть список ваших контактов с номерами телефонов.

Теперь идём в «Настройки -> Дополнительно -> Восстановление и сброс» , либо «Настройки -> Об устройстве -> Сброс заводских настроек» . Скорей всего, путь у вас будет отличаться, но смысл тот же.

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

Как скачать apk с Google Play и установить вручную

Когда ничего не помогает или надо срочно установить программу, есть 100%-вариант: скачать с плей маркета установочный файл и запустить его руками. Все приложения на Андроид-смартфонах сохраняются в файлах с расширением «.apk». Такой файл можно скачать в браузере прямо с телефона, или на компьютере/ноутбуке и закачать по USB/Bluetooth в телефон. Файл APK нужно запустить из проводника и следовать мастеру установки.

Для начала неплохо было бы получить ссылку на приложение в плей маркете:

  1. Открываем в браузере сайт https://play.google.com/
  2. С помощью поиска заходим на страницу приложения;
  3. Копируем ссылку из адресной строки.

ссылка на приложение

Для получения apk-файла нужно зайти на один из сервисов:

Далее вставляем скопированную ссылку в поле и жмём кнопку. На примере второго сайта:

поиск apk

И скачиваем APK-файл приложения:

скачать приложение apk

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