|
||
|
#21
|
||||
|
||||
|
En mi primer mensaje del día 31 ya expliqué la estrategia que yo seguiría para abordar este asunto ... esa sigue siendo mi opinión.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
| Gracias de parte de: | ||
|
|
|
#22
|
||||
|
||||
|
Acabo de caer en lo del PID y ya he reconvertido todo a como este ejemplo:
cat /proc/$(pgrep com.vito.lux$)/oom_adj Pero me sigue dando error. Bien, volviendo a tu primer mensaje: Una vez que tengas clara la forma de saber si una aplicación se está ejecutando en primer/segundo plano yo intentaría algo así... Mete esa lista en una variable separando el nombre de cada paquete con algo reconocible (el punto y coma puede valer). Divide esa variable por ese separador para generar un array. Recorre el array, elemento por elemento, para determinar si cada uno de los paquetes está en ejecución (usando el sistema que necesites). De esa forma, a cada vuelta del bucle, tendrás una %salida con esos valores 0/2 que andas buscando. Dependiendo del resultado anterior "mata" esa aplicación con ese comando "am force-stop". En una variable, pero cuál? Establecer variable? Sobre arrays soy neófito completamente. Nunca los he tocado! Caravantes, sí, suelo pecar de ambicioso pero ahora no puedo frenar! Agradezco tus consejos un montón, pero no-sé-qué-estoy-haciendo-mal... Pero también soy muy cabezón!
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#23
|
||||
|
||||
|
¿Seguro que eso es correcto?. ¿No sería más fácil sacar primero el PID y luego hacer algo así ... cat /proc/%pid/oom_adj ...?
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#24
|
||||
|
||||
|
Apruebas (44)
A1: Ejecutar consola [ Comando:pgrep eu.thedarken.sdm.unlocker ;pgrep com.android.providers.telephony ;pgrep com.huawei.internetaudioservice ;pgrep com.android.providers.media ;pgrep com.huawei.audioautotest ;grep com.google.android.onetimeinitializer ;pgrep com.huawei.autoinstallapkfrommcc ;pgrep com.qualcomm.shutdownlistner ;pgrep com.android.wallpapercropper ;pgrep com.huawei.android.FloatTasks ;pgrep org.simalliance.openmobileapi.service ;pgrep com.android.documentsui ;pgrep com.android.galaxy4 ;pgrep com.android.providers.telephony ;pgrep com.android.providers.media ;pgrep com.huawei.audioautotest ;pgrep com.android.externalstorage ;pgrep com.android.htmlviewer ;pgrep com.android.mms.service ;pgrep com.android.providers.downloads ;pgrep com.huawei.privacymode ;pgrep com.google.android.configupdater ;pgrep com.android.providers.downloads.ui ;pgrep com.android.pacprocessor ;pgrep com.qualcomm.cabl ;pgrep com.android.certinstaller ;grep com.google.android.marvin.talkback ;pgrep com.huawei.cust ;pgrep com.qualcomm.wfd.service ;pgrep com.android.stk ;pgrep com.android.backupconfirm ;pgrep com.huawei.android.internal.app ;pgrep com.android.wallpaper.holospiral ;pgrep com.huawei.mmifunction ;pgrep com.huawei.omacp ;pgrep com.android.phasebeam ;pgrep com.qualcomm.qcrilmsgtunnel ;pgrep com.android.providers.settings ;pgrep com.android.sharedstoragebackup ;pgrep com.android.printspooler ;pgrep com.android.dreams.basic ;pgrep com.android.incallui ;pgrep com.android.webview ;pgrep com.android.inputdevices ;pgrep com.google.android.apps.cloudprint ;pgrep com.huawei.DiagReboot ;pgrep com.google.android.webview ;pgrep com.android.server.telecom ;pgrep com.google.android.syncadapters.contacts ;pgrep com.android.keychain ;pgrep com.google.android.gsf ;pgrep com.huawei.hwstartupguide ;pgrep com.google.android.partnersetup ;pgrep com.android.packageinstaller ;pgrep com.huawei.qrcode.dispatcher ;pgrep com.android.proxyhandler ;pgrep com.google.android.feedback ;pgrep com.android.musicvis ;grep com.google.android.syncadapters.calendar ;pgrep com.android.managedprovisioning ;pgrep com.android.noisefield ;pgrep com.android.providers.partnerbookmarks ;pgrep com.huawei.android.hwaps ;pgrep com.google.android.gsf.login ;pgrep com.android.smspush ;pgrep com.android.wallpaper.livepicker ;pgrep com.huawei.mmitest ;pgrep com.android.apps.tag ;pgrep com.google.android.backuptransport ;pgrep com.huawei.android.projectmenu ;pgrep com.qualcomm.location ;pgrep com.android.vpndialogs ;pgrep com.qualcomm.location.XT ;pgrep com.android.providers.userdictionary ;pgrep com.huawei.floatMms ;pgrep com.huawei.mmitest2 ;pgrep com.android.location.fused ;pgrep com.android.deskclock ;pgrep com.google.android.androidforwork ;pgrep com.android.providers.contacts ;pgrep com.android.captiveportallogin ;pgrep com.huawei.android.airsharing Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%pid Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] A2: Ejecutar consola [ Comando:cat /proc/$(%pid$)/oom_adj Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%salida Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] La idea es genial. A1 funciona, pero A2 no. He estado probando y si la aplicación esta en primer plano, todo perfecto. Ahora bien, como esté "detenida", da error. Yo creo, que con permiso de todos, quisiera invitar a este debate a @maid450 para que aporte su punto de vista. Un saludo!
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#25
|
||||
|
||||
|
Insistes en procesar toda la lista de una vez y así no te enteras de dónde está el fallo. Ya te he dicho que hagas las cosas poco a poco y Caravantes te ha sugerido que hagas las pruebas con una aplicación y luego añadas el resto.
¿Existe algún motivo para que lo tengas que hacer todo de una vez? Y no es necesario invitar a nadie. Esto es un foro y todo el mundo puede participar, o no, libremente. Y pagar cervezas
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) Última edición por WillyWeb Día 02/11/16 a las 21:22:41. |
| Gracias de parte de: | ||
|
#26
|
||||
|
||||
![]() ¿Has mirado el contenido de %pid antes de usarlo en A2? ¿Has comprobado si ... cat /proc/$(%pid$)/oom_adj ... es la forma de escribir ese comando? Escucha maid450, tus aportaciones siempre son valiosas y sabes que tu participación siempre es bien recibida, pero no se te ocurra dar la solución ... que se lo curre un poco más.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#27
|
||||
|
||||
|
A ver, vamos poco a poco.
He estado probando de una en una y me he dado cuenta de que si están totalmente "paradas" es cuando da error. Pero si está en primer plano o segundo, ejecuta el comando sin problemas. He hecho lo que me ha dicho Caravantes, porque de lo contrario, no hubiera llegado a esta conclusión. A1 funciona y supuestamente almacena el resultado en %pid. Hasta todo bien. A2 es harina de otro costal. Me está volviendo loco, porque estoy probando y probando, pero no doy con la tecla. Me das más miguitas de pan?
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#28
|
||||
|
||||
![]() Has planteado el problema y la solución tú mismo... Código:
IF %pid no-tiene-nada error (la app no se está ejecutando) ELSE comprueba-estado ENDIF
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#29
|
||||
|
||||
|
A ver, tiro p'alante y lo que tenga que ser será. Pero las collejas que me van a caer....
Si(if) %pid no coincide con 0 Ejecutar comando am force-stop Else Pop-up %pid Voy a probar mientras me preparo para las collejas
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#30
|
||||
|
||||
|
Siendo sincero, no sé para dónde tirar. Ahora es cuando vienen los arrays no? No los he utilizado nunca. Lo que me hace falta ya no son las migas, sino la barra de pan entera!
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#31
|
||||
|
||||
|
Me parece que mucho quieres correr.
Tienes que saber qué contiene %pid cuando la aplicación está, y no está, en memoria. Ya estás haciendo pruebas hasta que lo tengas claro. Ese IF que te he propuesto lo tienes que hacer en función del resultado. ![]() Ya te he preguntado dos veces si esto ... cat /proc/$(%pid$)/oom_adj ... es correcto ¿Has comprobado que funciona asignando a %pid un valor correcto? Y una vez comprobado que funciona, ¿qué resultado te sale?. En función de ese resultado tienes que matar, o no, la aplicación. Pero eso no es de ahora. ![]() http://tasker.dinglisch.net/userguide/en/variables.html (mira al final de la página) y en el recopilatorio me suena que también tienes algo.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#32
|
||||
|
||||
|
Esto es lo más cerca que estoy
Greenify (62) A1: Ejecutar consola [ Comando:pgrep com.oasisfeng.greenify ;pgrep com.vito.lux ;pgrep com.joeykrim.rootcheckp ;pgrep com.whatsapp ;pgrep com.buak.Link2SD ;pgrep com.huawei.systemmanager ;pgrep com.socialnmobile.dictapps.notepad.color.note ;pgrep com.UCMobile.intl ;pgrep org.telegram.plus ;pgrep jackpal.androidterm ;pgrep eu.thedarken.sdm ;pgrep com.shinycore.picsaypro ;pgrep the.pdfviewer3 ;pgrep com.alensw.PicFolder ;pgrep com.yoigo.miyoigo ;pgrep com.flavionet.android.camera.pro ;pgrep com.android.bluetooth ;pgrep com.android.calculator2 ;pgrep com.android.settings ;pgrep com.huawei.camera ;pgrep com.huawei.android.launcher ;pgrep com.android.mediacenter ;pgrep com.android.providers.calendar ;pgrep com.huawei.bluetooth ;pgrep com.huawei.android.thememanager ;pgrep com.huawei.motionservice ;pgrep com.huawei.magnifier ;pgrep com.huawei.android.FMRadio ;pgrep com.android.soundrecorder;pgrep com.huawei.KoBackup ;pgrep com.android.defcontainer ;pgrep com.android.vending ;pgrep com.huawei.hwvplayer ;pgrep com.android.contacts ;pgrep com.android.nfc ;pgrep com.google.android.gm ;pgrep com.android.calendar ;pgrep com.estrongs.android.pop ;pgrep com.android.cellbroadcastreceiver ;pgrep com.google.android.gms ;pgrep com.sika524.android.quickshortcut ;pgrep com.huawei.android.hwouc :com.huawei.android.wfdft ;pgrep org.blackmart.market ;pgrep com.android.systemui ;pgrep com.qualcomm.timeservice ;pgrep com.huawei.autoinstallapkfrommcc ;pgrep com.huawei.autoinstallapkfrommcc ;pgrep org.simalliance.openmobileapi.service ;pgrep com.android.documentsui ;pgrep com.huawei.DiagReboot ;pgrep com.android.smspush Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%pid Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] A2: Pop-Up [ Título: Texto:%pid Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):5 Mostrar sobre bloqueo pantalla:Encendido ] A3: Si (if) [ %pid !~ 0 ] A4: Ejecutar consola [ Comando:am force-stop (%pid) Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En: Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] A5: Fin si (End if) A6: Pop-Up [ Título: Texto:%pid Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):5 Mostrar sobre bloqueo pantalla:Encendido ] Aunque el comando am force-stop (%pid) me da error, siento que estoy cerca. Me estoy rompiendo la cabeza pensando con este perfil. Y me gusta!
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#33
|
||||
|
||||
|
Tú insistes en hacer el mega-comando y yo en que hagas las pruebas con UN SÓLO PAQUETE ... ¿quién se cansará primero?
![]() Cuando entiendas que no seguimos hasta que hagas las pruebas con UN SÓLO PAQUETE me dices lo que sale en %pid (el resultado de A2). Y cuando tengas claro ese contenido de %pid me dices si el IF de A3 tiene sentido y si el error de A4 tiene explicación. Y estudia lo de los arrays, que lo mismo te hacen falta.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#34
|
||||
|
||||
|
Greenify (62)
A1: Ejecutar consola [ Comando:pgrep com.UCMobile.intl Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%pid Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] A2: Pop-Up [ Título: Texto:%pid Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):5 Mostrar sobre bloqueo pantalla:Encendido ] A3: Si (if) [ %pid !~ 0 ] A4: Ejecutar consola [ Comando:am force-stop (%pid) Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En: Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] A5: Fin si (End if) A6: Pop-Up [ Título: Texto:%pid Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] Vaaaale. Perdón. El resultado de A1 es: 6663 7043 7735 9860 He elegido este package name porque siempre tiene varios procesos abiertos. Entonces, tenemos 4 pid's de una aplicación que está en memoria. He puesto Si if no coincide con 0 porque a mi entender 0 es nada. Pero ahora estoy dudando de si tendría que ser Si if nig 0. El error de A4 evidentemente es un error mío de planteamiento, aunque no sé cómo incluir el %pid ni en el am force-stop ni en el comando cat /proc/$(%pid$)/oom_adj ,porque no sé si se podría convertir el valor de %pid a un "package name global". Si más o menos l tengo todo claro, pero tengo que ponerme las pilas con los planteamientos y las herramientas de las que dispongo. Gracias por vuestra ayuda!
__________________
Si la educación te parece cara, prueba con la ignorancia.
Última edición por Mitrhandir Día 03/11/16 a las 11:53:33. |
|
#35
|
||||
|
||||
|
¿Seguro que sale más de un PID?
... puede ser, pero no estoy seguro y no lo puedo comprobar fácilmente (no soy root y no tengo pgrep).Suponiendo que sea posible, vamos a empezar con algo sencillo ... un paquete que tiene cuatro PIDs ![]() ![]() ![]() Prueba y nos dices qué te sale con cada uno de ellos.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#36
|
||||
|
||||
|
Sí, salen 4 pid's. Este navegador tiene demasiados servicios. El caso es que ahora me salen otros pid's distintos
No tengo ni idea de qué símbolo y/o señal/palabra podría sustituir a "ese-paquete-no-existe-carajo". Ahora me salen 3 pid's, para los cuales he creado 3 comandos cat / y me dan error. cat /proc/$(25211$)/oom_adj este es uno de ellos. Voy a mirar la página de maid que me recomendó Caravantes. Lo de los arrays está en inglés y yo me llevo muy mal con ese idioma.
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#37
|
||||
|
||||
|
Releyendo el post de maid, en una de las intervenciones de Caravantes, he descubierto Si if %salida~%* . Será esto lo que ando buscando?
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#38
|
||||
|
||||
|
Greenify (62)
A1: Ejecutar consola [ Comando:pgrep com.whatsapp Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%pid Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] Ejecutamos comando para averiguar PID de com.whatsapp y el resultado se almacena en %pid A2: Pop-Up [ Título: Texto:%pid Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] Un Pop-up con el resultado de A1 A3: Ejecutar consola [ Comando:cat /proc/%pid/oom_adj Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%memo Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] Bien, este comando nos ha de proporcionar como resultado 0 (primer plano) o 2 (segundo plano) y almacena resultados en %memo (de memoria, no malpenséis) A4: Si (if) [ %memo ~ 0/2 ] Ergo, si %memo coincide con 0 ó 2 A5: Ejecutar consola [ Comando:am force-stop %pid Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En: Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] Debería ejecutar comando am force-stop del %pid A6: Else Si (if) [ %memo ~ %* ] Pero si %memo arroja un resultado que no se sabe qué es (es un suponer, pero si sé que * equivale a un comodín. A7: Ejecutar consola [ Comando:am force-stop %pid Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En: Almacenar Errores En: Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ] Este lo he puesto por poner algo: primero me interesa resolver lo de arriba. A8: Fin si (End if)
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#39
|
||||
|
||||
![]() ![]() cat /proc$(25211$)/oom_adj Seguro que te has dado cuenta de que puedes usar tu explorador de archivos favorito y navegar por las carpetas del sistema hasta llegar a esa ruta ... /proc/25211/oom_adj
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
|
|
#40
|
||||
|
||||
|
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
![]() |
Estás aquí
|
||||||
|
||||||