Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Phonegap cámara Android mata cordova

Estoy trabajando en varios proyectos Phonegap. En algunos de ellos estoy utilizando las funciones de la cámara.

Im desconcertante con este problema (de la documentación Phonegap):

  • GZip en android
  • XDE.exe usando> 35% CPU todo el tiempo - es este comportamiento esperado? (VS Android Emulator)
  • Usando SimpleXML, cómo ignorar elementos xml que no tengo en mi clase de objeto al deserializar
  • ¿Por qué no puedo crear varios ID de cliente de OAuth 2.0 para el mismo nombre de paquete?
  • Android: Acaba de lanzar mi aplicación al mercado, pero no puedo comprarla?
  • ¿Se puede usar la API de Android para interceptar y leer mensajes de operador (mensajes USSD)?
  • Quirks de Android

    Android utiliza intentos para iniciar la actividad de la cámara en el dispositivo para capturar imágenes y en teléfonos con poca memoria, la actividad de Cordova se puede matar. En este escenario, la imagen puede no aparecer cuando se restaura la actividad cordova.

    Tengo este problema en uno de mis dispositivos de prueba constantemente (HTC One X). Es bastante completo, tan bueno para probar esto.

    Me di cuenta de que hay un complemento alternativo: https://code.google.com/p/foreground-camera-plugin/ para este problema. Pero trato de evitar plugins tanto como sea posible … (ser portátil a otras plataformas fácilmente). Y está disponible hasta Phonegap 2.4.0 y estoy trabajando con Phonegap 2.9.0

    Ya uso el archivo URI y no los datos (para evitar el problema de memoria).

    Mi pregunta es: ¿Alguien sabe cuando Android decide matar otras actividades (como Cordova, que es bastante necesario para Phonegap). ¿En qué nivel de memoria libre? (Porcentaje, MB). Así que podría comprobar esto con antelación y advertir al usuario.

    Por supuesto, espero que este problema se resuelva … pero no parece ser resuelto pronto ….

    Editar después de la primera observación

    No tengo intención de resolver el verdadero problema, he descubierto que no es realmente posible. Es una cosa entre Android y Phonegap. Sólo necesito saber si es posible advertir al usuario que esto sucederá. Así que el usuario puede matar a algunas de las otras aplicaciones antes de continuar … Entonces, ¿cuándo ocurre esto? ¿Cuándo android piensa que no hay suficiente memoria para conseguir esta cosa? Esa es mi pregunta.

    Editar 2013 29 de noviembre

    Debido al enlace dado por AustinAllover, ahora sé que esto no es sólo un problema Phonegap … La cámara Android parece matar todas las aplicaciones Java en caso de memoria demasiado pocos … por lo que la pregunta es más genérica que Phonegap / Cordova sólo …

  • Datos que faltan en la página de análisis de comercio electrónico mejorada de Android
  • Error: no se pudo encontrar el destino con la cadena de hash 'android-14' en: Open Android SDK Manager
  • Sqlite en Android: Cómo crear una función sqlite dist db - que se utilizará en la aplicación para calcular la distancia utilizando lat, largo
  • Forzar la reinicialización de la aplicación en la primera actividad
  • Forzar Android DateUtils.getRelativeDateTimeString () para ignorar la configuración regional del dispositivo?
  • Convertir matriz de int en Bitmap en Android
  • 2 Solutions collect form web for “Phonegap cámara Android mata cordova”

    No estoy seguro de si existe una buena respuesta a su pregunta, pero voy a intentarlo.

    Depende de algunos factores cuando las aplicaciones se matan para liberar memoria. El factor primero y principal es cuánto necesita la actividad de la cámara para ejecutarse. La aplicación de la cámara en sí está en la mayoría de los dispositivos (aunque varía) alrededor de 10 MB. Este es el tamaño de la aplicación en la memoria y no el tamaño que se necesita al ejecutar la actividad, que sería lógicamente un poco más grande. También depende de la propia cámara y la cantidad de memoria necesaria para almacenar la foto real, permite suponer que la foto es de alrededor de 4 MB cuando se almacena, y crudo alrededor de 20 MB. Esto nos da un límite superior aproximado de 30MB para la aplicación en ejecución, aunque es la especulación y voy a comprobar esto yo mismo más tarde y editarlo.

    Una buena referencia acerca de la memoria relacionada con Android se puede encontrar aquí https://01.org/android-ia/user-guides/android-memory-tuning-android-5.0-and-5.1 Ellos asesoramiento para tener siempre 500MB o más de memoria Disponible para ejecutar aplicaciones, esto es, por supuesto, para todas las aplicaciones que está ejecutando y no para una aplicación específica.

    Que el punto que GC comienza a eliminar las aplicaciones de la memoria, esto sucede muy cerca de los límites reales de la memoria, cuando menos del 5% sigue siendo libre, este valor es emperical por mis propios experimentos. En primer lugar, mata las aplicaciones que todavía están en caché, pero ya no es necesario, sólo como último recurso mata las aplicaciones que están activas también.

    Mi suposición es que su aplicación se matará por debajo de aproximadamente 50MB de memoria libre, aunque tengo que subrayar que hay muchas suposiciones aquí y no hay manera general de decirle una buena respuesta para cada dispositivo con cada tipo de cámara y cada versión De Android.

    Espero que ayude, el miedo no lo hace.

    Trate de encontrar un complemento que no inicie la aplicación de cámara del sistema. En su lugar, utilice una actividad de cámara personalizada con funciones limitadas para reducir el uso de memoria.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.