Google Maps parece tener una cantidad increíble de Intenciones registradas, así como otras formas de iniciarse.
Dado que esta es una aplicación bastante hambrienta de recursos (especialmente en cuanto a memoria), me gustaría mucho que no se ejecute permanentemente a menos que / realmente la necesite. Sin embargo, Android lo sigue iniciando todo el tiempo, por ejemplo, cuando cambia el estado de conectividad (que para mí ocurre con bastante frecuencia en interiores) o cuando cambia la ubicación de GPS / red.
¿Hay alguna forma de garantizar que Google Maps no inicie CUALQUIER proceso, garantizado, hasta que haga clic en un icono para iniciarlo deliberadamente?
Entorno : Droid X, ejecutando stock rooteado Froyo 2.2; Tengo Autostarts . y Advanced Task Killer, así como la versión Pro de Titanium Backup instalada.
Estoy bastante abierto a casi cualquier método siempre que
Es confiable.
Me permite usar Google Maps con una funcionalidad 100% prevista una vez que lo necesito, sin requerir 5 minutos de trabajo para volver a configurarlo.
Idealmente, no requiere que reinicie para usarlo, pero este no es un factor decisivo.
ESTRICTAMENTE preferiría un método genérico que sería aplicable a otras aplicaciones, NO solo a Google Maps.
Soy un desarrollador de software con una gran dosis de experiencia en administración de sistemas Unix / Linux. En otras palabras, las soluciones que requieren una solicitud de shell o escribir / ejecutar scripts de shell (o Perl en Android Scripting Environment) son extremadamente bienvenidas.
Las soluciones que implican escribir mi propia aplicación Java para Android son aceptables siempre que estén lo suficientemente detalladas como para que un novato en desarrollo de Android pueda realizar al menos algo de trabajo sin perder el 100%.
Cosas que probé:
Matar los procesos a través de Task Killer NO está funcionando: vuelven a funcionar, ya sea de inmediato o en poco tiempo. Probablemente a través de Intentos pero no 100% seguro.
Métodos estándar para deshacerse de los problemas de GMaps (cerrar sesión en Latitude / apagar el GPS y el localizador de red). Esto parece ayudar mucho, PERO encuentro inaceptable la necesidad de apagar permanentemente el GPS / localizador, por ejemplo, no me permite ejecutar la aplicación Locale o las cosas Tasker basadas en el entorno local.
Congelar a través de Titanium Backup Pro. Esto requiere un reinicio y generalmente no es muy agradable.
Los posibles enfoques en los que pensé (pero no sé cómo hacerlo) son:
De alguna manera, elimine TOTALMENTE (apague) todos los Intentos registrados por Google Maps cuando no sea necesario.
Problemas: Primero, no sé cuáles son TODOS los intentos que utiliza Google Maps.
En segundo lugar, la única forma práctica de hacer eso que conozco es la aplicación Autostarts, que NO es una solución viable: lleva ~ 5-10 minutos encontrar y volver a habilitar todos los intentos que conozco (Autostarts es realmente pobre por -Aplicación de intención de aplicación: se centra en la intención por intención), no importa las posibles intenciones que Autostarts NO conoce (es una caja negra, no sé qué intenciones se pierden si las hay.
Tener un script que cambiar el nombre de los archivos JAR o lo que los archivos ejecutables en Android son (toda APK?) De decir
GoogleMaps.apk
aGoogleMaps.disabled.apk
ida y vuelta.Problema: No sé si esto es posible en un Froyo rooteado. Además, Google Maps estaba preinstalado en DroidX, por lo que cambiar el nombre de alguna manera SOLO afectaría la actualización, pero no la aplicación original.
Tenga un script que irá al APK y cambiará el nombre / moverá / vaciará el archivo de manifiesto para eliminar cualquier intento de esa aplicación.
Problema: ¿Esto requeriría una recompilación? Definitivamente requiere un reinicio que es un menos
Respuestas:
Por su mención de Titanium Backup, supongo que su dispositivo está rooteado. Así que mi recomendación absoluta aquí es AutoRun Manager (y sí, necesitará el Pro; segundo sí, vale la pena). Una vez instalado, abra la aplicación, use el "modo avanzado", busque la aplicación que desea modificar (en su caso: Google Maps). Expandelo. ARM le mostrará a todos sus oyentes, deshabilítelos.
Eso es. Ya nada lo despierta a menos que lo inicie explícitamente. PERO: antes de comenzar, es posible que deba habilitar a esos oyentes nuevamente, o puede experimentar efectos secundarios extraños (lo hice). Por otro lado, al menos esto no requiere un reinicio.
Para obtener detalles técnicos, es posible que desee realizar una verificación cruzada con la pregunta ¿Cómo puedo administrar asociaciones de intenciones con aplicaciones o directamente sumergirme en la sección Intentos de los manuales para desarrolladores de AOSP ?
fuente
Primero, te sugiero que dejes de usar tus asesinos de tareas . Están agotando su batería más que ahorrándola. El sistema está reiniciando los servicios cuando necesitan ejecutarse, lo que está causando el uso de la batería.
En segundo lugar, se supone que liberar memoria es algo bueno. No lo es. Liberar memoria no va a disminuir el uso de la batería. Lo que realmente necesita buscar son las aplicaciones que usan muchos ciclos de CPU. Esto es lo que agotará su batería.
Android está basado en Linux. Linux siempre quiere usar toda la memoria disponible porque la memoria libre es memoria desperdiciada. El sistema Android se encargará de liberar la memoria de las aplicaciones que no están en uso para que otras aplicaciones puedan usarlo cuando sea necesario.
Incluso si intenta eliminar aplicaciones que se están ejecutando y ocupando memoria, el sistema reiniciará estos servicios / aplicaciones, lo que provocará que se agote la batería porque probablemente tengan alguna sincronización al iniciarse, o solo los ciclos de CPU que se usan para inicializar la aplicación. La eliminación de las aplicaciones también hará que el dispositivo parezca lento cuando intente iniciar aplicaciones porque algo que normalmente se está ejecutando ahora debe reiniciarse antes de presentarle la interfaz de usuario de las aplicaciones.
Algunas cosas que causarán el agotamiento de la batería, como el uso de GPS, wifi, bluetooth y datos, usarán mucho más su CPU para procesar los datos que se transmiten y reciben. Apagarlos cuando no esté en uso ahorrará mucha batería. Tengo una batería defectuosa en mi dispositivo, ni siquiera se cargará más del 94%, pero puedo obtener 12 horas o más de mi batería si apago estos servicios cuando no los necesito.
Uso mapas de Google todo el tiempo, y en las estadísticas de mi batería ni siquiera aparece como una aplicación que utiliza recursos. Mi mayor usuario de batería es la pantalla @ 31%, y el más bajo que se muestra es GMail @ 3%. Les puedo asegurar que Google Maps no es la causa del agotamiento de la batería. Usar asesinos de tareas es más probable que sea la causa. Como dije, uso mapas de Google para obtener indicaciones casi a diario, y ni siquiera está en la lista de las 10 principales aplicaciones que usan mi batería.
Más información sobre los asesinos de tareas del blog Google Android Developers .
Aquí hay otro artículo que habla sobre cómo los asesinos de tareas agotarán la batería.
Una cosa que podría hacer si realmente está configurado en "detener mapas" hasta que quiera usarlo es usar la opción Congelar en la copia de seguridad de titanio. Esto esencialmente eliminará la aplicación del dispositivo y ninguno de los servicios asociados comenzará hasta que lo descongele.
fuente
¿Has pensado en desinstalar y reinstalar Maps como una posible solución?
Primero, elimine los mapas precargados eliminando el
/system/app/Maps.apk
archivo:Una vez que se actualiza una aplicación del sistema, es inútil en la carpeta / system / app y se puede eliminar de forma segura.
Luego copie la versión actual de Maps en su tarjeta SD:
Ahora desinstale la aplicación Mapas:
El interruptor "-k" mantiene la configuración para cuando reinstales la aplicación.
Ahora para recuperar Maps, simplemente vuelva a instalarlo desde la copia de seguridad:
Puede automatizar estos pasos a través de GScript , que le permite crear accesos directos a los scripts. Así que solo cree un script llamado "Disable Maps" con el comando del paso 3, y otro llamado "Enable Maps" con el comando del paso 4 (marque "¿Necesita SU?" Para ambos).
Ahora puede agregar 2 accesos directos GScript a su pantalla de inicio desde los scripts que creó utilizando el método normal "Agregar acceso directo" de Android (GScript será una de las opciones allí).
El único inconveniente de este método es que lo más probable es que pierdas el acceso directo de Maps (y / o widget) de tu pantalla de inicio cuando lo desinstales, lo que requiere que lo vuelvas a agregar después de la reinstalación. Por supuesto, aún podrá iniciar Maps desde el cajón de aplicaciones.
fuente
A partir de Android 4.0 Ice Cream Sandwich, simplemente puede deshabilitar Google Maps en la configuración del sistema . Esto no lo ayudará si todavía está atrapado en Froyo, pero otros pueden obtener algún beneficio de él.
fuente
Sugiero usar la función Freeze del enlace de mercado de la página de inicio de respaldo de Titanium . Creo que debe registrar la aplicación ($ 6.58) para usar la función, pero le aseguro que vale la pena el precio si desea hackear su teléfono. La otra razón principal para pagar la aplicación (que no sea para ayudar al desarrollador a escribir una buena pieza de software gratuito) es poder realizar instalaciones por lotes (es decir, restaurar desde la copia de seguridad) de las aplicaciones y los datos que ha respaldado. De lo contrario, debe pasar por los cuadros de diálogo de instalación de aplicaciones estándar.
Desde el sitio web sobre congelación:
O bien, puede hacer una desinstalación y reinstalar. Es posible que haya razones para hacerlo durante el congelamiento, no lo sé.
fuente
Si su teléfono tiene la opción
Settings > Applications > Development > Stop app via long-press
, siempre puede cerrar Google Maps de esta manera, entonces este proceso también se anula hasta que abra la aplicación nuevamente.fuente
Rootee su teléfono y luego use la aplicación AutoStarts de Google Play para deshabilitar todos los eventos que activan Maps. Funcionará bien cuando se inicie manualmente, pero se mantendrá alejado cuando lo mate. Desactive cualquier otra cosa que no necesite en la carpeta de eventos After Startup para reducir aún más el consumo de memoria.
fuente
Second, the only practical way of doing that that I know of is Autostarts app which is NOT a workable solution - it takes ~5-10 mins to find and re-enable all the intents I am aware of (Autostarts is really poor at per-app intent management - it's centered on per-intent), never mind possible intents that Autostarts does NOT know about (it's a black box, I don't know which intents are missed if any.