как задать приоритет приложению на андроид

Кому жить, а кому умереть: приоритеты процессов в Android

Примечание переводчика: при переводе старался максимально пользоваться терминологией, которую предлагает сам Google в русскоязычной версии документации по Android, таким образом «service» стал «службой», «content provider» стал «поставщиком контента», и так далее. А вот «activity» стать «операцией» так и не смог — не пересилил я себя. Извините.

Иерархия процессов в Android

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Процессы переднего плана

Вы наверняка думаете, что то, с чем взаимодействует пользователь в любой отдельно взятый момент времени является тем компонентом системы, который уничтожать никак нельзя (по крайней мере пока пользователь продолжает свою работу), и вы абсолютно правы. Одно но: «то, с чем взаимодействует пользователь в любой отдельно взятый момент времени» — слегка нечёткое определение. Одним из компонентов, попадающих в эту категорию, является Activity переднего плана — та, в которой onResume() уже вызван, а onPause() — ещё нет.

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

Есть несколько других случаев, в которых приоритет процесса временно повышается до приоритета процесса переднего плана. К ним относится выполнение службой следующих методов жизненного цикла: onCreate(), onStartCommand() и onDestroy(). Выполнение приёмником широковещательных сообщений (broadcast receiver) метода onReceive() тоже относится к ним же. Это повышение приоритета необходимо для того, чтобы сделать данные методы жизненного цикла атомарными и дать возможность каждому компоненту выполнить их без того, чтобы быть уничтоженным системой.

Видимые процессы

Activity является видимой от вызова onStart() до вызова onStop(). Между этими двумя вызовами можно делать всё, что ожидается от видимой Activity : обновление экрана, и так далее.

Кстати, процессы, в которых находятся привязанные службы и поставщики контента видимых Activity тоже получают такой же приоритет как и процесс с видимой Activity (подобно тому, как это происходит у Activity переднего плана), и по тем же причинам: чтобы гарантировать, что эти зависимые процессы не будут уничтожены системой.

Примечание: одной из причин того, что результат startActivityForResult() обрабатывается в onActivityResult(), а результат requestPermissions() — в onRequestPermissionsResult(), а не в функциях обратного вызова, как раз-таки и является возможность уничтожения видимого процесса — если весь ваш процесс будет уничтожен, то и все существующие в нем функции обратного вызова будут уничтожены тоже. Поэтому, если вы видите библиотеки, использующие подход с функциями обратного вызова, знайте: они могут работать не так, как вам хочется, в случае нехватки памяти в системе.

Служебные процессы

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

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

Обратите особое внимание на константу, возвращаемую вами из onStartCommand(), так как она определяет поведение системы в случае, если ваш процесс будет уничтожен при нехватке памяти:

Фоновые процессы

Допустим, что у вас была Activity переднего плана, и пользователь нажал на кнопку Home, что привело к вызову onStop(). Если кроме этой Activity у вас больше не было ничего, что позволяло бы и дальше сохранять высокий приоритет вашего процесса, то ваш процесс переходит в разряд фоновых процессов. Они, кстати, и занимают большую часть памяти устройства, на случай, если пользователь решит потом вернуться к одному из ранее открытых приложений.

Пустые процессы

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

На что стоит обратить внимание

Хотя мы и говорили о приоритетах процессов в терминах того, какие компоненты запущены в ваших процессах, помните, что иерархия существует на уровне процессов, а не компонентов. Один лишь компонент (например, служба переднего плана) переведёт весь ваш процесс в категорию процессов переднего плана. Хотя большинство приложений прекрасно живут в одном процессе, нужно помнить, что если жизненный цикл вашего приложения может сильно отличаться от запуска к запуску, или же в приложении есть как очень тяжелая задача, так и долго выполняющаяся, но легковесная, причем первая не зависит от второй, то есть смысл выделить два процесса. Пусть тяжёлая задача выполняется в первом процессе, а легковесная во втором, и тогда в случае нехватки памяти тяжёлая может быть приостановлена, а легковесная продолжит свою работу.

Не забывайте о других и помните о вашем пользователе

Создавайте ваше приложение таким образом, чтобы оно постоянно работало на том уровне приоритета, который ему нужен — не больше и не меньше. Помните также, что вы как разработчик имеете на руках устройство, которое намного мощнее слабейших устройств конечных пользователей, и из-за этого вы можете никогда не увидеть своими глазами уничтожение видимого процесса (а служебного — и подавно), но это не значит, что этого никогда не происходит.

Хоть я и рекомендую обычно покупать для тестирования как можно более слабое устройство, вы можете потестировать поведение своего приложения при его уничтожении даже на своём флагмане. Чтобы уничтожить своё приложение (вместе со всеми его процессами), выполните следующее:

Если у вас несколько процессов, вы можете сначала найти PID нужного вам процесса, посмотрев на вторую колонку (то есть первое число) результата следующей команды:

И потом прихлопнуть этот процесс:

Это будет первым шагом к тому, чтобы добиться корректной работы приложения на большинстве устройств, вне зависимости от того, какие ограничения по памяти будут возникать.

Источник

Мы нашли секретный способ управлять фоновыми процессами в телефоне. Показываем

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

Многие пользователи ошибочно считают, что оперативную память «съедают» те приложения, которые остаются свернутыми, и если их закрыть, можно таким образом освободить бОльшую часть памяти.

На самом деле это не так. Свернутые приложения, находящиеся в режиме ожидания — это лишь верхушка айсберга. По сути – это только кэшированные данные, которые позволяют вам вернуться в приложение без потери последних данных. Закрыв их, вы сможете лишь немного освободить оперативную память телефона. Основная же часть ресурсов приходится на процессы или службы приложений. Именно они потребляют оперативную память и расходуют заряд батареи даже тогда, когда приложение закрыто.

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

Как управлять фоновыми процессами

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

Как включить параметры разработчика

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

Затем нужно вернуться назад, в главные настройки. Если все было сделано правильно, вы увидите, что внизу появился новый пункт меню «Параметры разработчика».

Как управлять фоновыми процессами

Для того, чтобы управлять фоновыми процессами, в меню «Параметры разработчика» необходимо найти пункт «Приложения». Здесь находится несколько параметров, отвечающих за работу фоновых процессов. Например, параметр «Вытеснение фоновых Activity» позволяет принудительно останавливать действия приложений после их закрытия (не рекомендуем включать), а параметр ANR в фоновом режиме — отображать фоновые уведомление в случае, когда какой-то процесс не отвечает.

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

По умолчанию здесь установлено значение «Стандартное ограничение».

Для слабых смартфонов с небольшим количеством оперативной памяти можно ограничиться значением «не более 1−2 процессов». Для устройств «пошустрее» можно установить лимит «не более 4 процессов».

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

Заключение

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

Источник

Как настроить приоритетный режим Android (и вернуть тихий режим)

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

В Android Lollipop (включая 5.0 и 5.1) появился новый способ помочь вам справиться с перебоями. Это называется Приоритетный режим, который похож на привратник для уведомлений. Вы говорите ему, что пропустить, а что не пускать. Вот как использовать его, чтобы ограничить отвлекающие факторы и вернуть беззвучный режим, который вы использовали в своей последней версии Android.

Но Приоритетный режим, похоже, останется здесь, поэтому в этом руководстве мы поможем вам взять его под контроль.

Что такое режим приоритета и что он делает?

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

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

Работа в режиме «Приоритет» состоит в том, чтобы блокировать раздражающие уведомления в Android. Тем не менее, приложение не является умным приложением; то есть он не узнает автоматически, какое приложение раздражает или какие звонки вы хотите получать. Это то, что вы должны будете установить сами.

Как установить продолжительность режима приоритета и автоматизировать его

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Когда вы активируете Приоритетный режим с помощью кнопок громкости, вы можете настроить его на запуск:

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Рядом с «Только приоритетные прерывания» вы увидите небольшой Cog настроек. Коснитесь этого, и вы можете исправить нестандартное «время простоя», при котором телефон автоматически перейдет в приоритетный режим, или вы даже можете установить полный режим «Не беспокоить» (DND), когда прерывания не допускаются.

Прокрутите вниз до настроек, и вы можете:

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

Как разрешить звонки и тексты от нужных людей

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

На той же странице настроек вы также можете переключать события, напоминания, звонки и тексты, чтобы разрешить или запретить их в приоритетном режиме.

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

Как разрешить приложение в режиме приоритета

Как мы уже говорили, Priority Mode — это своего рода привратник. Это позволит только уведомления из приложений, которые вы одобряете. Итак, как вы разрешаете эти приложения?

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

В Android Lollipop есть новое меню для управления уведомлениями для всех приложений, куда вам нужно будет перейти.

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

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

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

Как вернуть тихий режим?

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Не нравится Приоритетный режим, и вы хотите вернуть старый добрый Silent Mode? Как всегда, есть приложение для этого! Познакомьтесь со SoundHUD [Больше не доступно], который вы можете скачать и попробовать бесплатно в течение двух недель, после чего он оплачивается.

SoundHUD добавляет более глубокие настройки управления громкостью к вашим кнопкам увеличения / уменьшения громкости. Благодаря этому вы можете регулировать громкость звонка телефона, уведомлений, будильника, музыки и голосовых вызовов. Он появляется при нажатии кнопок громкости, поэтому вы можете быстро настроить параметры для определенного источника звука и вернуться к тому, что вы делали.

Вам нравится режим приоритета?

Приоритетный режим пользуется большой ненавистью в сообществе Android — в основном из-за того, что настоящий тихий режим был убран. Тем не менее, чем больше я играю с Приоритетным режимом, тем больше разогреваюсь.

Что вы думаете об этой функции от Android? Вам не хватает тихого режима? Дайте нам знать об этом в комментариях.

Источник

Как настроить приоритетный режим Android (и вернуть тихий режим)

В Android Lollipop (включая 5.0 и 5.1) появился новый способ помочь вам справиться с перебоями. Это называется Приоритетный режим, который похож на привратник для уведомлений. Вы говорите ему, что пропустить, а что не пускать. Вот как использовать его, чтобы ограничить отвлекающие факторы и вернуться в беззвучный режим, который вы использовали в своей последней версии Android.

Мы поговорили о некоторых новых интересных функциях Android Lollipop

Но Приоритетный режим, похоже, останется здесь, поэтому в этом руководстве мы поможем вам взять его под контроль.

Что такое режим приоритета и что он делает?

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

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

Задача Приоритетного режима — блокировать раздражающие уведомления в Android

, Тем не менее, приложение не умное приложение; то есть он не распознает автоматически, какое приложение раздражает или какие звонки вы хотите получать. Это то, что вы должны будете установить сами.

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

Как установить продолжительность режима приоритета Автоматизировать это

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Когда вы активируете Приоритетный режим с помощью кнопок громкости, вы можете настроить его на запуск:

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Рядом с «Только приоритетные прерывания», вы увидите небольшой Cog настроек. Коснитесь этого, и вы сможете исправить нестандартное «время простоя», при котором телефон автоматически перейдет в приоритетный режим, или вы даже можете установить полный режим «Не беспокоить» (DND), когда прерывания не допускаются.

Прокрутите вниз до настроек, и вы можете:

Например, настройка режима «Не беспокоить» для выходных может быть полезна для того, чтобы избавить вас от простоев, которые вам нужны вдали от работы, и это не даст телефону испортить вам жизнь.

Как разрешить звонки и тексты от нужных людей

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

На этой же странице настроек вы также можете переключать события, напоминания, звонки и тексты, чтобы разрешить или запретить их в приоритетном режиме.

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

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

Как разрешить приложение в режиме приоритета

Как мы уже говорили, Priority Mode — это своего рода привратник. Это позволит только уведомления из приложений, которые вы одобряете. Итак, как вы разрешаете эти приложения?

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

В Android Lollipop есть новое меню для управления уведомлениями для всех приложений, куда вам нужно будет перейти.

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Однако это не работает в паре с вашими помеченными контактами. Например, если вы разрешите WhatsApp Messenger в режиме приоритета, это означает, что вы будете получать уведомления обо всем, что происходит в WhatsApp, а не только о сообщениях и голосовых вызовах WhatsApp.

из помеченных контактов в вашей телефонной книге Android.

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

Как вернуть тихий режим?

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Не нравится Приоритетный режим, и вы хотите вернуть старый добрый Silent Mode? Как всегда, для этого есть приложение! Познакомьтесь с SoundHUD [Больше не доступно], который вы можете скачать и попробовать бесплатно в течение двух недель, после чего он оплачивается.

SoundHUD добавляет более глубокие настройки управления громкостью к вашим кнопкам увеличения / уменьшения громкости. Благодаря этому вы можете регулировать громкость звонка телефона, уведомлений, будильника, музыки и голосовых вызовов. Он появляется при нажатии кнопок громкости, поэтому вы можете быстро настроить параметры для определенного источника звука и вернуться к тому, что вы делали.

Если вы планируете использовать SoundHUD, рекомендуем перейти в Дополнительные настройки приложения и включить параметры для Игнорировать длительные нажатия а также Отключить на экране блокировки. Таким образом, приложение не связывается с другими функциями Android.

Вам нравится режим приоритета?

Приоритетный режим пользуется большой ненавистью в сообществе Android — главным образом потому, что настоящий тихий режим был убран. Тем не менее, чем больше я играю с Приоритетным режимом, тем больше я к нему отношусь.

Что вы думаете об этой функции от Android? Вам не хватает тихого режима? Дайте нам знать об этом в комментариях.

Источник

Как задать приоритет приложению на андроид

Программа находится в режиме тестирования и доработки способа удержания апп в памяти.

Последнее обновление программы в шапке: 07.12.2012
AutoOOMmanager
Версия: 0.95

как задать приоритет приложению на андроид. Смотреть фото как задать приоритет приложению на андроид. Смотреть картинку как задать приоритет приложению на андроид. Картинка про как задать приоритет приложению на андроид. Фото как задать приоритет приложению на андроид

Выражаю огромную благодарность RubberBigPepper за помощь в реализации программы, а также asuslava за простую и гениальную идею с правами. Спасибо огромное! :thank_you:

Цель
Нужные приложения всегда в памяти, мгновенно открываются, мгновенный переход между приложениями ну и экономия батареи (тк не нужно подгружать данные и загружать проц/поднимать частоту)

Девиз темы
Нет ничего невозможного!)

Ищу программиста, который сможет написать простую программу

подробности в шапке темы.

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

Добавлено 23.10.2012, 08:07:

можно пимп май цпу переделать. она же аналогична, только пишет по другому адресу.

можно) все тесты на мне если нужно.

Добавлено 23.10.2012, 08:34:

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

RubberBigPepper, ты наш спаситель! :happy:
Ушёл тестить.

Рассмотрю 2 ситуации, на обе уже наткнулся.

1) я сижу и читаю книгу 2 часа. ничего не происходит. зачем здесь каждые 5 сек проверять есть ли новое окно?
2) я зашел в приложение и в туже секунду вышел из него. получается сервис проморгал этот момент.


В идеале, я представляю следующую логику программы

Посмотрите пожалуйста как реализовано ожидание события в ® Pimp My CPU и ® SetCPU
если удастся реализовать именно также, было бы замечательно, тк мне представляется, что это лучшая реализация, тк сбоев ни пимп ни сетцпу не дают даже при быстром переходе по домику (долгое нажатие)

Версия 0,1 бэта добавлена в шапку

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *