Web Analytics
Conecta con nosotros

Noticias

La fuga de RAM sigue sin solución en Android 5.0.1

Publicado el

fuga de RAM android

Android 5.0.1 dio una gran alegría a muchos usuarios, ya que puso punto y final a algunos problemas que trajo el nuevo sistema operativo móvil de Google, como por ejemplo el de la conexión WiFi, pero dejó sin corregir otros como la [pajarito]fuga de RAM.[/pajarito]

Este tipo de error se caracteriza por una mala gestión de la memoria RAM del sistema, haciendo que la misma no se vaya liberando según deja de ser utilizada, algo que acaba provocando una saturación que puede llegar a saturar totalmente el terminal.

En el caso de Android 5.0.1 este error se revela al ocupar más de 1,3 GB de RAM de forma totalmente innecesaria, ya que como dijimos la misma debería ser liberada cuando se deja de usar, dando pie a cierres espontáneos de aplicaciones.

Como es evidente esto afecta considerablemente a la experiencia de uso, haciendo que la misma sea bastante negativa, algo de lo que ya se han quejado algunos usuarios en diferentes foros a lo largo de Internet.

Con la llegada de Android 5.0.2 llegamos a pensar en un primer momento que dicho problema habría sido resuelto pero por desgracia no ha sido así, aunque por suerte parece que esta fuga de memoria será cosa del pasado con Android 5.0.3, una actualización que esperamos no tarde demasiado en llegar.

Más información ⇒ PhoneArena.

Editor de la publicación on-line líder en audiencia dentro de la información tecnológica para profesionales. Al día de todas las tecnologías que pueden marcar tendencia en la industria.

42 comentarios
  • Model1978

    No tuviera tanto bloatware y aplicaciones que no necesito como G+, no habría tanto probema con la RAM y la batería duraría mas.

  • roader

    No tiene nada que ver con este problema . Se trata de un problema caracteristico de lenguajes como C o C++ , en los que las variables deben ser eliminadas manualmente . Lo que da lugar a problemas . Principalmente , esta fuga de memoria y que se intente acceder a variables que no existe . C(++) es muy complicado .

  • Charles Dodge

    Deberian de quitarle la maquina virtual ART, y que funcione directo el sistema, con programas compilados. En este aspecto creo que iOS le lleva mucha ventaja. Ademas de que consume mas recursos, Oracle los demanda por patentes de Java XD. Yo que Google dejaba de usar Java en Android.

  • Charles Dodge

    Presiento que el problema es por el cambio de la maquina virtual Dalvik a ART, que es prácticamente el cambio mas grande de la versión 4 a la 5.

  • no se

    No es un problema caracteristico de c o c++, es un problema de los malos programadores. Y el mundo android esta lleno de ellos.

  • roader

    Si , tiene sentido . Mas teniendo en cuenta la gran complejidad de ART . En realidad no entiendo por que no usan .Net o algo similar , tiene mayor redimiento , se integra muy bien con gran cantidad de lenguajes y no tiene patentes-troll . La unica pega es que no se integra bien con Qt (de momento) . Tampoco con gtk , pero no le veo buen porvenir …

  • roader

    Android es codigo abierto , programa tu y solucionalo . Y si , las fugas de memoria son caracteristicas de C(++) dado que no disponen de un recolector de basura (o similar). Ocurre tambien en otros lenguajes no tan populares .

    Otros lenguajes , como java , C# , swift , python , javascript […] Poseen recolectores de basura que liberan la memoria automaticamente .

  • no se

    Te repito, no es problema de c o c++, el problema es de los programadores, los recolectores de basura son justamente para liberar espacios de memoria no liberados como debe ser por los malos programadores, un buen programador tiene en cuenta los espacios solicitados y los libera adecuadamente cuando no los necesita, los recolectores de basura son para limpiar lo dejado por un programador que no tiene mucha idea de las buenas técnicas de programación, a más alto nivel de programación menos idoneidad del programador se requiere.
    Yo me hago mis propios programas en android y en windows, especialmente en android porque los que hay son un desastre, al que no le falta una cosa le falta otra o simplemente roban información.

  • Xbit

    .Net ahora que es OpenSource, la compatibilidad la veo alli, a lo lejosvenir xD

  • Julio Antonio García

    Bueno, java tampoco se integra con nada de nada así que tampoco iba a ser mucha la diferencia, es más, sí que existe un «.net» que se integra perfectamente con gtk, se llama Mono y a parte de poder ejecutar binarios de .net, permite usar gtk para la interfáz gráfica.

  • Julio Antonio García

    Claro, tu debes de ser un programador de la hostia y nunca has cometido un error de dejarte un free() tras un malloc() o de olvidarte de liberar una estructura que has sacado de una llamada a una función de terceros que no está documentado que haya que liberar.

    Vamos a ver, el problema de la fuga de memoria no tiene por que ser de «mal programador» todo el mundo comete errores, al igual que puedes crear una fuga de memoria bajo ciertas circunstancias con lenguajes de más alto nivel que C que tienen recolector de basura, (Por ejemplo según manejen referencias circulares y demás situaciones complejas).

    Lo ideal es usar lenguajes de alto nivel para aplicaciones de usuario, y lenguajes de bajo nivel para librerías del sistema o aplicaciones que requieran gran rendimiento o acercarse mucho a la máquina, desde ese punto de vista java no es mal lenguaje para estos cometidos de crear apps chorras y c es muy bueno para hacerse una máquina virtual nueva, pero no des la vuelta y uses cada uno para lo contrario o sólo desperdiciarás recursos de un tipo (tiempo del desarrollo) o del otro (tiempo de ejecución). También es mal programador el que se empeña en hacerlo todo en C, cada lenguaje es para una cosa.

    Asímismo Java, C# y otros lenguajes de alto nivel «descansan» sobre librerías de más bajo nivel echas por otra gente (Normalmente en lenguajes de más bajo nivel), tu puedes ser el programador más maravilloso del mundo, pero no te programas una hoja de cálculo desde el ensamblador, como cualquiera de esas librerías intermedias tenga un fallo, tu programa lo tendrá.

    Lo de que android va lento por tener una máquina virtual no tiene por qué ser cierto, pues .net también lo és y windows phone rinde a las mil maravillas en gamas media/bajas (Lumia 520 con 512 de ram, por ejemplo), la diferencia está en cómo ejecutar ese bytecode/msil, y ahi .net parece que tiene mejor optimizado cu compilador jit. Pues hoy día tampoco es normal que una máquina virtual ejecute a pelo su código intermedio, lo normal es que lo compile a nativo antes de ejecutarlo, y luego lo cachee.

  • pichu

    Pero hombre no os lieis tanto, no veis que si arreglaran la gestion de la ram ya no podrian vender moviles con 3 y 4 gb de ram??

  • Julio Antonio García

    Pues tambien es verdad jjajaja

  • no se

    Totalmente de acuerdo. Pero eso no es mi problema. Solo estoy aclarando que c o c++ no tienen la culpa y si un lenguaje de mas alto nivel trae recolector es por los errores del peogramador, no del lenguaje.

  • roader

    No , si el problema con .Net en linux no es que no se integre con los lenguajes , es que ni Qt# ni Gtk# se integran en .Net . Usarlos es horrible e improductivo .

  • roader

    Entonces , siendo tan buen programador como eres , resuelvelos tu . Los fallos pueden ocurrir por muchas causas , incluso cabe la posibilidad de que sea un fallo del compilador . Decir que un error equivale a mal programador es sinonimo de ignorancia .

  • Benybarb

    iOS y WP son SO que con 512 de ram jalan super genial no que android ni con 2 gb jala bien.

  • Benybarb

    no tiene nada que ver c o c++ ya que iOS y Wp estan escritos en el, son los malos programadores que hacen programas a lo loco y la porqueria que no se por que la siguen usando llamado Java, esa si es una mierda todo lo hace lento.

  • Benybarb

    asi es c y c++ no tienen la culpa.

  • Benybarb

    y el por que o nosotros por que para eso hay gente que les pagan y bien. Android tendria que borrarse todo y escribirse desde 0

  • synflag

    C# no tiene recolector de basura.

  • synflag

    java ES el lenguaje por excelencia de los malos programadores, hace todo casi solo, no tenes que preocuparte por localizar un array en ningun lugar, tampoco por limpiarlo, lo que no dicen es que las malas practicas, usan mas CPU… seguro que si el codigo de Android fuera reescrito desde 0, revisandolo bien por buenos programadores, tendria menos lag, usaria menos ram y menos ciclos de cpu lo que es menos bateria tambien.

  • synflag

    El mercado, vender al costo que sea, incluso sacar un OS tan inmaduro como Android 5.0, para mi, mas que las updates de iOS o la release final del iphone 6, se pasaron esta vez los de Google.

  • roader

    Si que lo tiene , es parte de .Net/mono .

  • roader

    Dios , lo que hay que escuchar … Solo te dire una cosa , el kernel linux , que solo es una pequeña parte de lo que es android contiene mas de 15000000 lineas de codigo . Y estos datos son de su version 3.3 , ahora ya deben de estar cerca de los 20 millones … Los errores son normales a la hora de programar , hay que recordar que es algo que todavia esta en muchas pruebas y que es un desarrollo muy agresivo .

  • Hecc-MA

    En 4.4.4 se pueden desactivar, yo desactivo todo lo que venga de Google y la batería dura bastante más.

  • Hecc-MA

    ART ya viene en 4.4 y no hay el problema este.

  • Eduardo Campos

    pero gracias a eso es que las apps de android pueden ser instaladas en un telefono o una computadora o desde chrome, tiene sus ventajas.

  • Rafael Dellà

    No tengo demasiada idea de cómo funciona internamente el sistema, pero sé algo de programación y no tiene sentido lo que decís.
    Si el problema fuera por culpa del código escrito en C/C++, es imposible que se arregle con una actualización del sistema operativo!!!!!
    C++ será todo lo complicado que quieras, pero una aplicación escrita en C/C++ (y compilada para el código máquina) no puede ser «administrada» por el SO. Así que, por muchas actualizaciones que se hagan, el SO no puede saber qué variables han perdido sus referencias y deben ser borradas. Eso es cometido de la máquina virtual que interpreta el Java.

  • kornival

    Lo de Mono lo llevo diciendo, yo y muchísimos otros usuarios (en mi caso exusuario) de Android desde hace años. No entiendo por que ni siquiera se lo han pensado.

  • roader

    No estas entendiendo . A lo que me refiero es que muy probablemente el problema este en el compilador ART , que por un fallo de programacion los ejecutables no liberan los valores de las variables .

  • Zyxx

    A este paso ,, deberian sacar una lts de android haha !!

    Digo ,, desde ios 8 empieso a leer y a leer problemas y problemas (desgraciadamente siempre esta presente algo relacionado con la bateria y la conectividad) que presenta el software…

    En android pues desde que uso kitkat veo unos tambien que pensaba que ya tendria corregidos en lolipop ,.. y no nuevos otra ves xD!!

    En wp pues no lo uso debe tenerlos pero no los conosco para nada..

    Digo jamas van dejar de tener bugs o algun problema ,, por que el software que manejan los celulares hoy en dia es muy muy complejo a comparacion de años anteriores.. creo que en android ,,el mayor problema que tienen a comparacion de los demas SO es la forma de distribuir la actualizaciones.. por que algunos se quedaran de por vida con algunos problemas si no saben meterle mano ..:S!!

  • Rafael Dellà

    No, no te entendí. Al leerte en otros post veo que te referías al diseño del ART.
    Vaya cagada pues. :/
    Por cierto, es verdad que el C++ no tiene recolector de basura, pero se puede usar std::shared_ptr que te permite trabajar sin punteros (explícitos) y se borra el objeto al quedarse sin referencias. Muy parecido a los recolectores de basura.

  • Julio Antonio García

    Mezclas churras con merinas. Que no te tengas que preocupar de cosas como la gestion de memoria no te hace mal programador,solo hacequete puedas centrar en tu problema real en lugar de la memoria. Personalmente no me gusta java pero hay que reconocer que buenos y malos programadores los hay en todas partes y usando todos los lenguajes.
    Como contrapartida te podrian decir quesi, que si reescribieran todos los programas de android desde cero en c irianmas rapido pero tendrian mas fugas de memoria y mas fallos de seguridad. (Precisamente por la inexistencia de comprobaciones en c tales como de limites de matrices).

    En mi trabajo por ejemplo lidio con una aplicacion de venta escrita en ansi c. Podrias creer que ira super rapida y sera super eficiente pero no es asi. Esto es asi por varios enfoques incorrectos en el momento de su diseño original y que ahora la lastran grandemente. Si de verdad entiendes del tema debes saber que a la larga, es el algoritmo utilizado, y no la potencia de la maquina o la velocidad de ejecucion de una unica operacion lo que mas cuenta. Con una buena optimizacion de los algoritmos empleados puedes provocar una ganancia mayor que cambiando de lenguaje, y por otro lado para muchas situaciones un lenguaje como javao c# al liberarte de tareas basicas te permiten centrarte en la mejora de otras.

    Cada herramienta para lo que es. Igual que no sueles usar un martillo para apretar un tornillo muchas veces c no es es mejor lenguaje para aplicaciones que no sean de sistema.

    Por ultimo me gustaria recordarte que android lleva un kernel linux y varias librerias gnu, escritos ambos en c.Ademar seguro que tanto dalvik como ART estan escritas en C (no conozco estos proyectos internamente) y de ser asi es muy facil que el error venga de alguna pieza de codigo escrita en ese lenguaje mas que de una escrita en java.

  • Julio Antonio García

    Depende, en android ART es parte del sistema operativo, no viene en ningun apk asinque para solucionar un fallo en ART si que hace falta actualizar el sistema operativo. Es decir esperar a la proxima version de android.

  • Julio Antonio García

    Yo uso wp y he programado para este. Fallos en si no he visto, pero es graciosisimo ver como si creas una app con las apis nuevas basadas en .net en lugar de silverlight que han sacado para windows phone 8.1… Ha desaparecido el soporte para cosas tan basicas como el portapapeles… Asi que casa SO trae sus cositas jajajaja

  • Julio Antonio García

    Tal vez por imagen. En el momento de desarrollarse Android java pertenecia a Sun, una empresa con muy buena imagen, no solo por Java, si no por VirtualBox, OpenOffice, MySql…Sun era abierta y amigable con el software libre (incluso sabiendo que android incumplia las condiciones con las que ofrecian java no quisieron demandar en su momento) Microsoft era el malo malisimo y todo lo que oliera a microsoft estaba mal visto en muchos circulos. En mi opinion fue la compra de Sun por Oracle la que lo cambio todo. Ahi estan los problemasde Android, y los forks de libreoffice y mariadb para demostrarlo…

  • kornival

    Pues por imagen creo que han perdido una cantidad de usuarios bastante importante. Y encima ahora con la cantidad de problemas que está dando su última versión….ya no pueden presumir de la estabilidad y fluidez que habían conseguido desde los primeros Kit Kat. Es complicado saber cual da mas problemas y por cual decantarse, si por IOS y su cagada con IOS 8 o Android con Lollipop y sus continuas meteduras de pata.
    Yo desde que abandoné Android y me hice con un Windows Phone no he tenido ni el mas mínimo problema de lags, cierres forzados o cuelgues y reinicios del sistema. De lo único que me podría quejar es de la falta de aplicaciones y de la noactualización de estas.
    Otra cosa que no me gusta nada es que Microsoft contribuya aportando aplicaciones a Android y a IOS y no reciba reciprocidad al menos del primero.En comparación con el aporte de unos a otros…Google no se está tirando el rollo como debería.

  • Julio Antonio García

    Mi caso es el mismo que el tuyo, pero me ocurrió el año pasado. Desde entonces encantado con mi Lumia mientras que mis tabletas Android no han hecho más que dar dolores de cabeza e ir cada día más lentas. La diferencia es abismal, todo lo que gana Android en apps disponibles lo pierde para mi en lentitud, a igualdad de dispositivo donde WP vuela Android se arrastra, y encima gasta mas batería.

  • kornival

    Yo ni me he molestado en actualizar las tabletas que tengo con android, aunque tampoco es que salgan mucho del cajón, si acaso cuando voy a la playa por aquello de que si se jode…directa a la basura, cosa que me dolería en el alma que me pasara con la surface.

  • Zyxx

    O_O»!???!!’

  • Julio Antonio García

    Sip. Si pones un cuadro de texto por ejemplo, e usuario puede copiar y pegar en el, pero tú desde el código de la App tienes el acceso al portapapeles bloqueado. Esto si desarrollas con .net para wp8.1 (API más reciente) en lugar de SilverLight para wp8.0 (y 8.1, APIs antiguas) supongo que será algo temporal pero me parece bastante triste…

    http://msdn.microsoft.com/en-us/library/windows/apps/dn642486%28v=vs.105%29.aspx

Lo más leído