- Русские Блоги
- Подробное объяснение процесса Android keep alive
- 1. Предварительный базовый запас знаний
- 2. Теоретическая реализация процесса keep-alive.
- Три, по коду, конкретная реализация
- Keep alive on android
- Android — service keep alive
- 3 Answers 3
- How to Keep the Screen Active on Android
- Stop your Android screen from turning off
- What to Know
- How Do I Stop My Android Screen From Turning Off?
- How Do I Keep My Android Screen Always On With an App?
- How to Use Android’s Always On Display Setting to Keep the Screen On
Русские Блоги
Подробное объяснение процесса Android keep alive
1. Предварительный базовый запас знаний
В предыдущей статье «Как гарантировать Service Вас не убивают в фоновом режиме? 》 В этой статье автор анализирует, почему нам нужно поддерживать активность службы, несколько методов проверки активности службы и значение службы keep-alive. Сегодняшняя статья идет еще дальше, объясняя метод и значение сохранения активности процесса.
(1)Что такое процесс поддержки активности?
Возьмите наше мобильное приложение Для QQ, если мы недавно открыли QQ, QQ может работать в фоновом режиме без автоматического закрытия. Это мечта всех приложений. Только представьте, что ваше приложение всегда может работать на мобильном телефоне пользователя, не закрывая его. Тогда ежедневная активность пользователя этого приложения достигнет ужасающей Численная величина. (Конечно, это всегда мечта. Если процесс работы всех программ не умрет, то о беглости платформы Android будет невозможно говорить)
Мы знаем, что каждое приложение автоматически создает его при открытии. Процесс Linux и основной поток пользовательского интерфейса, наш главный герой сегодня — это обеспечение выживания процесса Linux.
(2)Может ли процесс действительно выжить вечно?
Это точно невозможно, так как автор анализирует Когда Служба продолжает работать, это то же самое, что и сказано. Настоящего метода проверки активности не существует. Все процессы приложения будут остановлены. Что мы можем сделать, это » Псевдо бессмертие «, то есть:
1) Используйте различные методы, чтобы максимально обеспечить выживаемость процесса
2) Перезапустите процесс сразу после его завершения. 。
2. Теоретическая реализация процесса keep-alive.
В предыдущем содержании мы проанализировали значение поддержания активности процесса и истинный статус поддержания активности процесса. Итак, дальше давайте проанализируем, почему процесс завершается? Зная эту причину, у нас есть способ с ней справиться.
( 1)Механизм рециркуляции процесса
в В Android даже после того, как пользователь выйдет из приложения, процесс приложения все еще существует в системе. Это должно облегчить перезапуск программы, но в этом случае по мере увеличения количества открытых программ системная память станет Недостаточно, вам нужно убить некоторые процессы, чтобы освободить место в памяти. Что касается того, нужно ли убивать некоторые процессы и какие процессы нужно убивать, это черезLow Memory KilleДля вынесения суждений используется механизм r. Он основан на механизме OOM Killer (Out-Of-Memory killer) ядра Linux (если посмотреть, знакомы ли вы с ним здесь, этот Kiiler часто появляется в сценариях обработки переполнения и утечки памяти).
Принятый критерий — критерий процесса oom_adj Размер стоимости. что такое oom_adj? Это значение, присваиваемое ядром Linux каждому системному процессу, представляющее приоритет процесса, и механизм повторного использования процесса основан на этом приоритете, чтобы решить, следует ли выполнять повторное использование. Нам нужно помнить следующие три момента:
a. процесс Чем больше значение oom_adj, тем легче завершить работу;
b. Обычный процесс подачи заявки oom_adj> = 0, только oom_adj процесса системного приложения может быть процесс Значение oom_adj не фиксировано.При выполнении действий пользователя приоритет каждого процесса приложения изменится, и соответствующее значение oom_adj процесса также изменится соответственно.
( 2) Соответствие приоритета процесса и oom_adj
«Видимый на переднем плане процесс обслуживает фоновый пустой процесс», который описывает как тип потока, так и его приоритет: процесс переднего плана> видимый процесс> служебный процесс> фоновый процесс> пустой процесс. Конкретный анализ см. В предыдущей статье автора. 《 Android Подробное объяснение процессов и потоков 。
Ниже представлена таблица, показывающая тип процесса и Общее соответствие значения oom_adj:
Красная секция Значит, убить легче Android-процесс (OOM_ADJ> = 4), Зеленая часть Означает, что убить нелегко Процесс Android, другое означает процесс, отличный от Android (чистый процесс Linux). Когда Lowmemorykiller восстанавливает память, он сначала уничтожает процессы с большим значением OOM_ADJ в соответствии с уровнем процесса.Для процессов с таким же приоритетом на это дополнительно влияет память, занимаемая процессом, и время выживания процесса.
Три, по коду, конкретная реализация
Приведенный выше контент анализирует причину, по которой поток завершается, затем следующим шагом является реализация поддержки потока.
( 1) Используйте систему Сервисный механизм сохраняет жизнь
модифицировать Возвращаемое значение метода onStartCommand (..) — START_STICKY для перезапуска службы после остановки службы. код показан ниже:
( 2)Использовать широковещательную передачу из системы
Ниже перечислите некоторые системные широковещательные сообщения, обычно используемые в процессе проверки активности:
(3)Используйте сторонние приложения для прямой трансляции
Общая идея дизайна этой программы аналогична идее приема системного вещания, разница в том, что эта программа предназначена для приема Топ-трансляция приложения. Декомпилировать Третье лицо Топ приложение , Например: мобильный телефон QQ, WeChat, Alipay, браузер UC и т. Д., А также такие SDK, как Youmeng, Homing Pigeon и Tweet, обнаруживают свои исходящие трансляции и отслеживают их в приложении, чтобы, когда эти приложения отправляли трансляции, наши приложения Вытяните вживую.
(4)Запустите службу переднего плана для приложения
Система звонков API запускает процесс интерфейсной службы и генерирует уведомление на панели уведомлений системы, чтобы пользователь знал, что такое приложение запущено. Если текущее приложение вернулось в фоновый режим, оно все еще может работать.
(5)Использование системных уязвимостей для запуска службы переднего плана (наиболее часто)
Этот вид службы переднего плана, созданный с помощью уязвимостей системы, отличается от обычных методов запуска тем, что не отображается на панели уведомлений системы. Уведомление, похоже, что запущен фоновый процесс обслуживания. Преимущество этого заключается в том, что пользователь не может определить, что вы выполняете процесс переднего плана (потому что вы не видите уведомления), но приоритет вашего процесса выше, чем у обычного фонового процесса. Код реализации следующий:
2) API> = 18, запустить две службы переднего плана с одним и тем же идентификатором одновременно, а затем остановить службу, запущенную позже 。
Резюме (правильная поза: пропустить автора bb Посмотрите на резюме): Эта статья на самом деле написана для «злых» разработчиков, которые хотят сохранить свои приложения в живых и быть неотделимы от своих пользователей. Следовательно, они должны владеть знаниями, связанными с процессами / потоками Java, механизмом повторного использования Java, приоритетом процессов и общими методами поддержания активности процессов. На самом деле, это правда, что слишком много процессов поддержания активности замедлит плавность работы платформы Android. Для пользователей наиболее интуитивным ощущением является то, что телефон становится картой. Именно здесь телефоны Android подвергаются критике.
Цитата автора в «Как гарантировать Service Вас не убивают в фоновом режиме? 》 Что было сказано в конце: «Вышеупомянутые методы на самом деле просто« псевдо бессмертие », а не бессмертие, пользователь вручную принудительно останавливается, у вас нет возможности, все операции напрасны, поэтому лицо приложения должно Существует очевидный компромисс между «сервисом» и «взаимодействием с пользователем». В конце концов, владельцем любого приложения является пользователь ».
Источник
Keep alive on android
Сделайте так, что бы ваш экран был включенным, когда вам это надо!
Почти все опции — бесплатны, да и опции донатера дешевле, чем другое, платное приложение.
Оставляйте свой экран включенным, когда пользуетесь GPS навигатором, смотрите фильм или слайд шоу. Ваш экран никогда не отключится, если вы не хотите этого.
Выберите, когда вы хотите, что бы ваш экран оставался включенным.:
• Только, когда устройстн0во включено.
• Даже, если оно работает на батарейках.
• Когда одно из приложений, которое вы выбрали на заднем плане.
• Может быть выключено, когда вы присоединяете устройство к машине
• Защищает вашу батарею, когда остается мало процентов.
• Легко ставится на паузу, когда вы не хотите, что бы Stay Alive! не присылал вам уведомлений.
• Нет надоедливой рекламы!
• И светлые и темные темы.
• Авто старт при включении.
• Скрыть иконку приложения. (Android 4.1+)
• Оставлять экран включенным, даже когда заблокирован.
• Сменить цвета управления.
Легкий включенный оперативный режим меняется со значком на панели инструментов! Это показывает, какой режим вы используете.
Stay Alive! will automatically disable itself then you manually turn off your device. It won’t keep your screen on if your device wakes up when it receives a notification.
Stay Alive! will not change your display timeout value or brightness settings. It will prevent your device from going to sleep based on your needs.
We made this application Ad Free. Please, support this initiative by donating using the menu option in the application.
Требуется Android: 2.1 или более поздняя
Русский интерфейс: Нет
Сообщение отредактировал Slav_nsk — 05.10.17, 17:47
Выложеная версия уже donate.
Сообщение отредактировал kuliks — 29.07.14, 17:49
kuliks,
Русская версия
Сделать экрана устройства Stay Alive! когда вам это нужно.
Большинство опций — бесплатные, а донат версия — самая дешевая во всем магазине приложений!
Загрузите наше новое приложение Auto Exec! Easy Tasker! Stay Alive! и получите скидку 10% на Auto Exec! Easy Tasker.
Экран остается включенным, пока работает ваше GPS приложение, любимый пульт дистанционного управления, воспроизведение фильма или слайд-шоу, и т.д. .. Используйте экран без затемнения для разработки приложений. Ваш экран никогда не погаснет, если вы этого не захотите.
Выберите когда вы хотите чтобы ваш экран Stay Alive! (не выключался):
• Только когда у вас есть власть
• Даже если вы работаете от батареи
• Когда один из выбранных вами приложений находится на переднем плане
• Может автоматически отключаться при подключении к вашему автомобилю или настольной док-станции
• Разрешать и запрещать тускнеть экрану
• Минимальный расход батареи с опцией авто паузы
• Легкое отключение Stay Alive!. Нет необходимости иметь виджет!
• НЕТ назойливой рекламе!
• Holo светлые и темные темы!
• Автоматический запуск при загрузке
• Скрыть значок верхней панели (Android 4.1 +)
• Автоматически держать экран включенным, даже если настроено конкретное приложение, когда он отключен
• Подсветка экрана даже во время блокировки (locked screen)
• Автоматически паузу SA! с датчиком приближения
• Изменение конфигурации цвета!
Легкое управление приложением из панели уведомлений! Он покажет вам, какой режим питания вы используете и позволит быстро переключаться между режимами. Вы также можете быстро активировать Stay Alive! в конкретном режиме приложения!
Stay Alive! автоматически отключит себя, если вы вручную отключите устройство. Он не будет держать ваш экран включенным, если ваше устройство просыпается, когда получает уведомление.
Stay Alive! не изменяет ваши настройки тайм-аута экрана или яркости. Он просто предотвращает уход телефона в сон, когда вам это надо.
Мы сделали это приложение бесплатно. Пожалуйста, поддержите нас, жертвуя при помощи команды в приложении.
Источник
Android — service keep alive
have a problem with a system. I have running service, which is constantly checking the position and counting the distance and time since user start it. But after 20-25 minutes and many interactions with other applications service is being killed.
How I can prevent it?
I’m thinking to add second service which will keep my alive.
3 Answers 3
Not sure if this will work for you, but this is how i implemented it:
In my case I needed a service to keep running in the background every X minutes, and whenever it is shutdown (whether due to memory usage or main activity going to background and Android cleaning it up) it would be re-triggered again when the next time interval is reached. I had the following components and workflow:
- Activity A. Main activity, the starting point of my application.
- Service S. Service which I want to run in the background, do whatever it needs to do,
shutdown after completion, and start again after every X minutes.
Activity onCreate method would create a PendingIntent, passing it itself and the service S, as follows:
In my activity, I have an AlarmManager implemented which will take the «periodicIntentSender» (defined above) as an argument and based on user preferences (connection_Interval) sends the intent:
AlarmManager will make sure that the intent will be sent every X minutes. My Service S keeps listening to this Intent and gets wakedup each time such an Intent is sent. As soon as the service is triggered again, its onHandleIntent method gets called.
Источник
How to Keep the Screen Active on Android
Stop your Android screen from turning off
What to Know
- Open Settings and tap Display >Sleep to delay the Android Sleep timer by up to 30 minutes.
- You can keep your Android screen on indefinitely by installing an app such as Screen Alive.
- Android’s Always on Display feature shows the information on the screen even when the device is sleeping.
This article will walk you through the three main ways to keep the screen active on your Android smartphone or tablet. It covers instructions for changing the inactivity timer, how to use an Android app to keep the screen on, and what you need to know about the Always on Display feature.
How Do I Stop My Android Screen From Turning Off?
The easiest way to make your Android device’s screen stay on longer is to adjust the built-in Sleep settings. The Sleep will automatically turn your Android device’s screen off when it detects no activity for a set period. This limit can be extended up to 30 minutes.
Tap Display.
Tap Sleep.
Select how long you want your Android smartphone or tablet screen to stay on before turning off due to inactivity. The change will take effect immediately.
The maximum time allowed is 30 minutes.
How Do I Keep My Android Screen Always On With an App?
If you want your Android tablet or smartphone to stay on for more than 30 minutes, you can install an app to keep the screen on indefinitely or for a longer set time, such as an hour or two.
Keeping your Android device’s screen on for extended periods can drain its battery, so it’s a good idea to keep it plugged in and charging when doing so.
There are many Android apps designed to keep the screen on, but for this example we’ll use Screen Alive. It’s completely free to use and works as intended.
Here’s how to use Screen Alive to keep your Android screen always on.
After installing Screen Alive, open the app and tap Proceed.
Tap the switch next to Allow modify system settings.
Return to your Android device’s home screen, locate the app, and open it again.
Tap the yellow bulb icon in the lower-right corner.
The Always setting should be immediately activated. Tap Custom to enter a specific inactivity counter.
You can also add the Screen Alive app to your home screen as a widget or to your Quick Settings menu for easy access.
Tap the lightbulb icon to disable Screen Alive and to return to your Android tablet or smartphone’s default Sleep settings.
How to Use Android’s Always On Display Setting to Keep the Screen On
Many Android devices have a built-in feature called Always on Display which allows for basic information, such as the time and date, to show on the screen even when it’s asleep. Android’s Always on Display feature uses little battery life when in use and can be useful for those who find themselves constantly tapping their smartphone to check the time.
Depending on your Android device’s manufacturer and the operating system being used, the setting may be called something different such as Always-on Panel, Ambient Display, Always-On Display, or Always show time and info.
Your Android smartphone or tablet’s Always on Display settings can usually be found within the Settings app.
The setting should be able to be located by following one of the following menu routes from within the Settings app.
- Display >Always on Display
- Home screen, Lock screen & Always-On Display >Always-On Display
- Display >Lockscreen
Once found, tap the option to enable the Always on Display feature and customize the settings to your liking.
You can use the screen saver setting to keep your screen awake while the device is charging. Go to Settings > Display > Screen Saver and select an option, such as Photos or Colors.
Источник