Sur XDA, j'ai trouvé un poste discutant de comment PIN une application pour ne pas être tué par OOM. Comme votre question indique que votre appareil est rooté, cela pourrait vous être utile. Le principe qui y est décrit peut également être appliqué à votre cas en changeant simplement l'option oom_adj
spécifiée (la -17
l'épinglerait de façon permanente, le plus haut prix -- utilisez donc une valeur plus grande pour "affaiblir" cela).
Le script affiché ici ressemble à ceci :
#!/system/bin/sh
sleep 60
PPID=$(pidof com.estrongs.android.safer)
echo "-17" > /proc/$PPID/oom_adj
Un utilisateur anonyme a noté que vous pourriez également définir ce fichier avec des autorisations de lecture seule pour empêcher Android de le mettre à jour, en ajoutant chmod 444 /proc/$PPID/oom_adj
au script ci-dessus (le 444 proposé ne signifie rien d'autre qu'une permission de lecture, mais n'affecte pas la capacité du système à supprimer le fichier lorsque le processus se termine). Je ne l'ai pas vérifié, mais cela pourrait en fait vous éviter d'exécuter le script en boucle/répétitivement, rendant la valeur définie permanente tant que le processus vit.
Comme indiqué, remplacez le -17
par la valeur que vous avez choisie. Remplacez également le nom du paquetage de l'application ( com.estrongs.android.safer
) par le nom du paquet de votre application cible. Vous pouvez également abaisser le sleep
ou même ne pas tenir compte du sommeil du tout.
Vous devez maintenant trouver un moyen de l'exécuter automatiquement dès que votre application est en cours d'exécution. Pour cette partie, vous pouvez par exemple utiliser Tasker : Le contexte serait "app running" (et votre app sélectionnée), et la tâche "run shell", avec le script ci-dessus comme paramètre. Ensuite, dès que vous démarrez votre application (et qu'elle passe au premier plan), Tasker exécuterait le script et le oom_adj
doit être appliquée.
0 votes
Même problème ici. Vous pouvez utiliser le v6 supercharger pour une solution partielle à vos problèmes.
0 votes
Vous pouvez demander au développeur d'ajouter un service (facultatif) à l'application. Les applications ayant un service connecté sont moins susceptibles d'être tuées par les OOM.
1 votes
@Izzy La priorité des applications ayant des services est inférieure à celle des applications de premier plan et visibles. BTW, combien de développeurs vous me suggérez de calculer ? Ce n'est pas une solution...
0 votes
@SachinShekhar vous avez raison, mais avec un service en cours d'exécution, le prio est toujours plus élevé que celui des autres "applications d'arrière-plan", pour autant que je me souvienne. Et d'après ce que j'ai compris, vous étiez concerné par une application spécifique - donc je suggérerais ce développeur spécifique :) Mais bon, c'était juste une suggestion . Désolé que ça ne vous aide pas - ça valait le coup d'essayer, cependant.
0 votes
Avez-vous vérifié Garder une application en mémoire ? On dirait que ça répondrait à votre question.