android android-hardware android-memory

Cómo obtener los requisitos mínimos de hardware para la aplicación de Android



android-hardware android-memory (6)

Por eso quiero saber cuál es el requisito de memoria mínimo para ejecutar mi aplicación.

Usa la herramienta de monitoreo de los pequeños laboratorios de ojos . Supervisa el consumo de energía / consumo de memoria / consumo de CPU / actividad de red de su aplicación, entre otras cosas . Puede download para una prueba de 30 días. Eso debería darle una idea clara de los recursos que consume su aplicación. Sin embargo, debo decir que las aplicaciones generalmente no se lanzan con un conjunto de requisitos de hardware. Mantenga su memoria / uso de batería bajo control y debería estar bien.

En cuanto a la poca memoria, ¿sucede esto cuando visualiza imágenes que toma la cámara o la cámara hace que la aplicación caiga? ¿Está liberando recursos en poder de la cámara? Eche un vistazo a esta pregunta: la cámara de Android se ha quedado sin memoria.

Con un miembro del equipo, desarrollé una aplicación de Android que recopila datos en el campo mediante dispositivos móviles.

Ahora esta aplicación va a producción. Así que la gente general usará esta aplicación. También necesitamos crear una Documentación que explique todas las cosas introducidas en mi aplicación de Android y cuáles son los requisitos mínimos de hardware para ejecutar esta aplicación sin errores.

Ahora cómo sé cuál es el requisito mínimo de hardware.

Básicamente en mi aplicación sobre cuatro TextField , Three Spinner , Date , EditText y dos ImageView .

Entonces, ¿cómo sé cuál es el requisito mínimo de memoria para ejecutar esta aplicación.

He probado esta aplicación en uno de los dispositivos móviles donde casi toda la memoria es utilizada por alguna otra aplicación. Allí mi aplicación no puede capturar fotos. Y cuando elimino alguna aplicación, entonces mi aplicación funciona bien.

Por eso quiero saber cuál es el requisito de memoria mínimo para ejecutar mi aplicación.


Como dice @veon, puedes hacer algunas estimaciones. Sin embargo, siempre será un poco impredecible porque desea saber cuánto se usará en diferentes contextos, y necesitará que los usuarios conozcan el uso de otras aplicaciones en sus teléfonos.

Como lo entiendo, lo que primero debe proporcionar es una documentación clara. Podría ser mucho más fácil (para usted y para todos) documentarlo de la siguiente manera:

Esta aplicación se ejecutará en todos los teléfonos estándar recientes de Android (versión XXX de Android y superior). Sin embargo, si se están ejecutando otras aplicaciones, en particular las que tienen hambre de memoria, el rendimiento puede verse afectado. Si tiene problemas de rendimiento, elimine otras aplicaciones que tengan gran capacidad de memoria y procesos. Si necesita ayuda para determinar eso, use una aplicación como ZDbox para que lo ayude.

Para referencia, no tengo enlaces a ZDbox, solo lo estoy usando como ejemplo.


La mejor manera de averiguar si su aplicación se ejecutará en cierto hardware, es probarlo en ese hardware. Pregúntales a tus amigos si tienen teléfonos Android más antiguos y prueba tu aplicación.

En el peor de los casos, cree múltiples dispositivos virtuales Android con memoria variable. Sin embargo, ten en cuenta que el emulador de Android es decepcionantemente lento, incluso con la aceleración de hardware.


Los requisitos mínimos dependerían de, e incluirán principalmente pruebas y documentación de los siguientes puntos:

  1. Nivel de API : versión mínima de Android admitida, principalmente conocida por el desarrollador. Ha habido muchos cambios importantes entre las API en Android. Las bibliotecas de soporte v4 y v7-compat ayudan mucho, pero no cubren todos los aspectos.

  2. Capacidades del dispositivo : Anote todas las características que usa su aplicación. (Como tiene pantalla táctil, tiene cámara, acelerómetro, conectividad de red, etc.). Afortunadamente, puede declarar que en el manifiesto de la aplicación ( uses-feature ) y play store se filtrarán los dispositivos no compatibles.

  3. RAM : Utilice DDMS / Android Studio para ver el uso de la memoria en tiempo real, en el emulador y en un dispositivo real. Intente usar tanto como el ram que pueda usar, activando varias funciones de la aplicación, manténgala en funcionamiento durante largos intervalos de tiempo. Tome ese uso mínimo y máximo como una estimación. Las herramientas DDMS como TraceView, etc., también le permiten ver las asignaciones de objetos en el montón, subprocesos y hacer perfiles de métodos. Ejecute Monkey Tool durante largos períodos de tiempo para estresar la aplicación.

  4. Velocidad de la CPU : si la aplicación realiza computación intensiva, conversión de datos, etc., es posible que desee programar registros de marca de tiempo en dicho código de computación. Asegúrese de configurar la velocidad de la CPU de modo que lo que sea necesario realizar la computación, se complete con tiempo suficiente, sin que el dispositivo se demore demasiado. También en el caso de la representación visual, el factor principal es la buena velocidad de cuadros (juegos). En este caso, puede comparar dispositivos reales para velocidades de cuadro y elegir conjuntos de chips de gama alta. También puede recomendar usuarios para dispositivos multi-core.

  5. Compatibilidad de CPU / GPU : otro detalle importante es que si una aplicación tiene un código C / C ++, es posible que ese código no se ejecute en algunos de los tipos de CPU (MIPS, ARM o x86). Lo mismo ocurre con las aplicaciones que usan las versiones de OpenGL ES y las extensiones disponibles. Los dispositivos tienen diferentes cpu / conjunto de chips gráficos.

  6. Disco : calcule el tamaño de la aplicación después de la instalación. Tenga en cuenta que el requisito mínimo de disco para la aplicación es el espacio requerido para almacenar la aplicación, de modo que pueda al menos iniciarse y no incluya cachés, bases de datos o el contenido del usuario que crea. en uso

  7. Tamaño de la pantalla : aunque siempre se recomienda una interfaz de usuario flexible y con capacidad de respuesta, su aplicación solo se puede usar con ciertos tamaños de pantalla. Por lo tanto, los tamaños de pantalla compatibles se pueden tener en cuenta.

  8. Lo que no puede controlar : recuerde que no tiene control sobre lo que otros usuarios de Aplicaciones podrían ejecutar, por lo tanto, es seguro declarar que su aplicación requiere tanto ram libre en el dispositivo, y suponiendo el mejor escenario, declare que el dispositivo tiene al menos eso. mucho ram instalado. Por ejemplo, notó que su aplicación toma 200 mb cuando está al máximo, por lo que el requisito sería solo de 512 mb + dispositivos. Además, no puede controlar el tamaño del usuario de la tarjeta sd, por lo que la aplicación debe indicar al usuario que no puede funcionar cuando el disco está lleno.

Finalmente, una buena prueba es lo que convierte las estimaciones en puntos de referencia reales. Y es mejor basar los requisitos en puntos de referencia en lugar de solo estimaciones.

ACTUALIZACIÓN :

¿Existe alguna API o clase de Android que proporcione a la información el requisito de memoria mínimo en función de la cantidad de campos que estoy usando en mi aplicación y el permiso que tengo para el teléfono móvil?

  1. API no puede predecir el tiempo de ejecución con precisión. Habría muchos " if " y " else " en su código, además de los comentarios del usuario, no puede predecir qué ruta exacta seguirá la creación y ejecución del objeto. Solo puede monitorear el tiempo de ejecución externamente usando herramientas como DDMS.

  2. A diferencia de Apple, Android es un sistema abierto, las posibilidades del hardware del dispositivo, que los fabricantes pueden elegir libremente, son enormes. Agregue a eso las personalizaciones que hacen en las ROM de sus dispositivos. Ninguna API común va a hacer un seguimiento de todo eso. Simplemente apégate a la API de Android y a las especificaciones estándar, evita el uso de la API oculta, etc.


Parece que garantizó que cualquier proceso en Android tendrá al menos 16 MB de memoria, la mayoría de los dispositivos modernos permiten que el montón crezca a 24 + MB

Consulte la descripción de this

La administración de la memoria está relacionada con el sistema operativo, y hay prioridades para los procesos e hilos descritos en http://developer.android.com/guide/components/processes-and-threads.html#Lifecycle

así que si su aplicación está en primer plano, es muy probable que tenga suficientes recursos para manejar la imagen desde la cámara.

¿Qué API usas para capturar la imagen?


Pregunta que debes hacerte a ti mismo

1. ¿Cuáles son mis requisitos de memoria? ¿Necesita mucha memoria (no física, está en el montón) para procesar los datos o es mínimo? Ahora, la mayoría de los dispositivos de un día vienen con un tamaño de pila de 64 MB, pero esto varía de los fabricantes a los fabricantes. Incluso para el mismo nivel de API es diferente. Averigüe su mínimo y luego asegúrese de tener esa cantidad de memoria de almacenamiento disponible.

Para monitorear la memoria que está consumiendo en el tiempo de ejecución, verifique this

para averiguar la cantidad de memoria disponible en el dispositivo actual, verifique this y this .

Recuerde que Android no es como Windows y cada aplicación comienza con la misma cantidad de memoria de almacenamiento dinámico, y es constante para cada aplicación en ese dispositivo. Eso significa que las aplicaciones no pueden crecer más allá de esta memoria disponible. Puede solicitar memoria adicional mediante esta etiqueta en el android:largeHeap="true" pero esta función no está disponible para la versión pre 3.0 del sistema operativo.

He probado esta aplicación en uno de los dispositivos móviles donde casi toda la memoria es utilizada por alguna otra aplicación. Allí mi aplicación no puede capturar fotos. Y cuando elimino alguna aplicación, entonces mi aplicación funciona bien.

La suposición anterior es bastante confusa porque, cuando su aplicación que ejecuta Android pone al otro lado de la aplicación, eso significa que su aplicación tendrá memoria definida por el tamaño de su montón, y si el sistema operativo creyó que necesitaba más memoria o no pudo asignar más, se detendría ese proceso. Android le da alta prioridad a la tarea actualmente en ejecución. Por lo tanto, si está interactuando con una aplicación, es muy poco probable que tenga menos memoria que tamaño de pila. Su podría tener alguna razón diferente para tener problemas con otras aplicaciones.

2. ¿Cuáles son mis requisitos de API? Si está utilizando una API especial que no está disponible para la API y el nivel anterior, tiene dos opciones o bien dice que la aplicación simplemente no va a ser compatible con esa versión de la API o puede respaldar esa característica específica.

3. ¿Cuáles son mis requisitos de hardware? Pregúntese si está utilizando algún software o hardware especializado, si ese hardware especial está disponible para todos los dispositivos o no. Ejemplo, NFC, bluetooth.

4. ¿Cuáles son mis requisitos de visualización? ¿Es esta aplicación solo para móvil o para móvil y tableta? ¿Qué pasa con esos 7 pulgadas que caen entre la tableta y el móvil.

5. ¿Cuáles son mis requisitos de localización? ¿Esta aplicación se basa en algún conjunto de caracteres especiales? ¿Qué pasa si un determinado dispositivo no tiene esos caracteres.

Y, para tu información, la cantidad de objeto que mencionaste no debería ocupar más de unos pocos MB. Pero cuidado al trabajar con bitmap. Lee esto