PDA

Ver la versión completa : Aplicaciones simples que ocupan excesivo espacio, malos programadores inside



josepzin
31/01/2016, 14:06
Me estaba descargando una aplicación para usar el móvil como linterna y estuve un buen rato navegando hasta encontrar una que tenga un tamaño decente (200kb).

Y quedé alucinado con el tamaño de algunos... :O

Pero coñio, ¿hacen falta 7 megas para encender la luz de la cámara???? ¡pero si el emulador de Atari ocupa 100kb, el de NES 36kb y el de C64 72kb????

Supongo que será cosa de malos programadores o qué... ¿?

zhorro
31/01/2016, 14:09
No creo que sea de malos programadores, ya ahí pensaría mal, lo mas probable es que los megas que tiene de sobra se dediquen a hacerte un rastreo por todo el telefono para rapiñarte toda la información que puedan: contactos, llamadas, sms, datos personales, etc. En android es de los mas comun que instales una aplicacion tipo linterna y te pida todos los permisos del mundo.

^MiSaTo^
31/01/2016, 14:12
No me creo que tú siendo programador no te des cuenta de que si ocupan de más sea posiblemente porque NO son sólo linterna xD Es más, es el caso más famoso de robo de datos y demás en Android precisamente.
¿Has mirado qué permisos piden al instalar? Y espero por tu bien que no hayas instalado ninguna xD

PD: Desde la ignorancia: el SO no tiene una función linterna? En iOS lleva bastante tiempo, me extraña que no tengas un widget para ello en Android

chipan
31/01/2016, 14:26
No me creo que tú siendo programador no te des cuenta de que si ocupan de más sea posiblemente porque NO son sólo linterna xD Es más, es el caso más famoso de robo de datos y demás en Android precisamente.
¿Has mirado qué permisos piden al instalar? Y espero por tu bien que no hayas instalado ninguna xD

PD: Desde la ignorancia: el SO no tiene una función linterna? En iOS lleva bastante tiempo, me extraña que no tengas un widget para ello en Android

Si, android tiene linterna integrada desde hace tiempo
Y si, al igual que la mayoría de las webs, las apps de android ocupan mnucho mas de lo que deben porque van cargadas de publicidad y mierdas.

nintiendo1
31/01/2016, 14:28
A lo mejor se refiere a malos programadores porque los informáticos a lo mejor tienen un código ético/deontológico o algo para no hacer esas cosas de coger datos para fines oscuros...

Saludos.

^MiSaTo^
31/01/2016, 14:30
Si, android tiene linterna integrada desde hace tiempo
Y si, al igual que la mayoría de las webs, las apps de android ocupan mnucho mas de lo que deben porque van cargadas de publicidad y mierdas.

La última frase no te la voy a discutir pero si supieras de lo que hablas te darías cuenta de que has dicho una pollez de las tuyas xD Supongo que también odias la web, las aplis móviles y demás xD

josepzin
31/01/2016, 14:59
No he instalado ninguna de las grandes y las que he probado sólo pedían acceso a la cámara.

De todos modos igual me sigue pareciendo que 250kb sólo para encender la lucesita de la cámara es excesivo.

Las versiones más antiguas de Android no tienen lo de la linterna de serie.

pakoito
31/01/2016, 15:16
Un proyecto básico de android a partir del template de hello world son ya varios megas. En cuanto añades un par de assets en distintas resoluciones, más unas fuentecillas, se te pone en 5 fácil. Luego vas añadiendo dependencias de código que van desde unos kbs hasta varios megabytes. Y como chipan o drumpi digan que usar dependencias externas es de malos programadores es para ponerlos en ignore, pero no por trolls.

Si usas el apktool verás qué parte del espacio es código y qué parte los assets.


La última frase no te la voy a discutir pero si supieras de lo que hablas te darías cuenta de que has dicho una pollez de las tuyas xD Supongo que también odias la web, las aplis móviles y demás xDYo si que se la voy a discutir y puedo confirmar pollez. Tenemos varias apps de 10 y 20 megas sin anuncios. Si quieres que tus iconitos no se vean borrosos en tabletas y no quejarte de que los desarrolladores son unos vagos blablabla ese es el precio a pagar. Cuando pasemos a vectores p'allá para 2020 entonces las apps pasarán a pesar menos, pero de momento seguimos con 6 rasters por iconito.

futu-block
31/01/2016, 15:19
Osea, que es mejor programar un poco para dar la orden de encender y apagar una lucecita del móvil antes que descargarte una app...
Moraleja, haz tus propias Apps a caraperro pa ti

selecter25
31/01/2016, 15:21
Lo del bloatware es de traca, yo tuve que comprarle a mi madre un teléfono por no poder instalar una versión reciente de Whatsapp debido al tamaño. Supongo que aparte de robarte datos es una manera de justificar la compra de teléfonos con mayor capacidad de almacenamiento interno.

Luego tienes apps que no hacen una m*erda y están plagadas de publicidad, o algunas que rozan la estupidez (antimosquitos, medidor de calidad de sueño)...

^MiSaTo^
31/01/2016, 15:28
Un proyecto básico de android a partir del template de hello world son ya varios megas. En cuanto añades un par de assets en distintas resoluciones, más unas fuentecillas, se te pone en 5 fácil. Luego vas añadiendo dependencias de código que van desde unos kbs hasta varios megabytes. Y como chipan diga que usar dependencias externas es de malos programadores es para ponerle en ignore, pero no por troll.

Si usas el apktool verás qué parte del espacio es código y qué parte los assets.

Yo si que se la voy a discutir y puedo confirmar pollez. Tenemos varias apps de 10 y 20 megas sin anuncios. Si quieres que tus iconitos no se vean borrosos en tabletas y no quejarte de que los desarrolladores son unos vagos blablabla ese es el precio a pagar. Cuando pasemos a vectores p'allá para 2020 entonces las apps pasarán a pesar menos, pero de momento seguimos con 6 rasters por iconito.
Por favor relee la frase de Chipan y luego dime que sabe mucho de lo que habla. Te la pego aquí otra vez:


Y si, al igual que la mayoría de las webs, las apps de android ocupan mnucho mas de lo que deben porque van cargadas de publicidad y mierdas.
No, no ocupan mucho porque van cargadas de mierda/publi sino por varios motivos de los que tú ya has dicho unos pocos y que NO tienen que ver con llevar publicidad.

Lo único que quería decir es que chipan no tiene p00ta idea de lo que está hablando y por supuesto es uno de sus múltiples rants de cosas que no le gustan.

PD. mira a ver si podeis hacer distintos ejecutables por resolución. Hace 2 años que no hago nada de Android pero me suena que en su día ya lo hicimos y ahorramos muchísimo espacio gracias a eso.

josepzin
31/01/2016, 15:45
Osea, que es mejor programar un poco para dar la orden de encender y apagar una lucecita del móvil antes que descargarte una app...
Moraleja, haz tus propias Apps a caraperro pa ti
Ahí me has dado! :-P

-----Actualizado-----

Pregunto, ¿cómo es posible que el emulador de NES me ponga que ocupa 38kb??

pakoito
31/01/2016, 16:02
Ahí me has dado! :-P

-----Actualizado-----

Pregunto, ¿cómo es posible que el emulador de NES me ponga que ocupa 38kb??

Porque usas la UI del sistema, linkado dinámica contra librerías del sistema, y un emulador de NES no necesita ni una décima parte de código que un cliente HTTP o un parseador json. Como referencia el de aquí (https://www.youtube.com/watch?v=y71lli8MS8s) son 950 líneas.

EDIT: Espera, dices emulador Android o uno de escritorio? Si es Android probablemente sean actividades nativas (http://developer.android.com/reference/android/app/NativeActivity.html), que es todo C/C++ sobre una superficie OpenGL y no pasan por Java ni usan assets ni nada. Pon un pantallazo y te digo mejor.

josepzin
31/01/2016, 16:23
Si, es emulador en Android: NES.emu Free > 36.00 KB

pakoito
31/01/2016, 16:46
En mi teléfono es mega y pico recién descargado

http://i.imgur.com/gMTdCAs.png

josepzin
31/01/2016, 17:22
36 kb a mi me parecen demasiado poco pero es lo que aparece en Aplicaciones... :?

1 o 2 mg es más lógico para un emulador de estos.

BonesCollector
31/01/2016, 17:57
No que la programación en Android ocupa muchas capas de software :confused:

pakoito
31/01/2016, 18:44
36 kb a mi me parecen demasiado poco pero es lo que aparece en Aplicaciones... :?

1 o 2 mg es más lógico para un emulador de estos.

Alomejor es el tamaño de la caché?

otto_xd
31/01/2016, 21:33
Un proyecto básico de android a partir del template de hello world son ya varios megas. En cuanto añades un par de assets en distintas resoluciones, más unas fuentecillas, se te pone en 5 fácil. Luego vas añadiendo dependencias de código que van desde unos kbs hasta varios megabytes. Y como chipan o drumpi digan que usar dependencias externas es de malos programadores es para ponerlos en ignore, pero no por trolls.

Si usas el apktool verás qué parte del espacio es código y qué parte los assets.

Yo si que se la voy a discutir y puedo confirmar pollez. Tenemos varias apps de 10 y 20 megas sin anuncios. Si quieres que tus iconitos no se vean borrosos en tabletas y no quejarte de que los desarrolladores son unos vagos blablabla ese es el precio a pagar. Cuando pasemos a vectores p'allá para 2020 entonces las apps pasarán a pesar menos, pero de momento seguimos con 6 rasters por iconito.

Se pueden usar vectores, solo tienes que usar icon fonts y llorar de lo horrible que es setear en Android una fuente no estandar.

De todas formas el otro dia me parecio leer en una pagina oficial de Android que recomendaban usar el asset mas grande y que internamente ajuste. Lo que no se es si luego internamente cachea el icono a su tamaño apropiado, porque cargar un asset a 100% y reducir a 10% cada vez es muy poco eficiente.

chipan
01/02/2016, 02:41
La última frase no te la voy a discutir pero si supieras de lo que hablas te darías cuenta de que has dicho una pollez de las tuyas xD Supongo que también odias la web, las aplis móviles y demás xD

No, no las odio, pero que la publicidad añade mucho peso a las webs es un hecho. De entrar a una web con el adblocker activado a entrar sin el adblocker, la cantidad de datos descargados varía auténticas barbaridades (desde pocos kb con adblocker a varios megas sin adblocker). En una app de android como podría ser una linterna no haría falta mas que un boton a pantalla completa y un par de rutinas sencillas para encender y apagar el flash; una vez lista nos daría una app de X tamaño (depende de las dependencias y assets como has dicho); pero si luego los creadores le meten código para que salgan banners de publicidad (incluso he visto meter las imágenes de los banners en la propia app supongo que para mostrar publi mientras estás offline O_o) y otras polladas, al final la app engorda. A eso me refiero, que añadir publicidad hace que una app pese más, aunque no sea la única cosa (ni de lejos) que puede añadir peso "a lo tonto" a una app.
Tal vez la analogía entre webs y apps no es la mas directa, pero creo que es válida.

P.D.: Y tamaños aparte, creo que en general se mete mucha publicidad en las apps de android (cosa que personalmente no me gusta, pero oye, los que hacen apps están en su derecho)

dj syto
01/02/2016, 04:20
https://www.youtube.com/watch?v=f3KE0EuzD4U

Ñuño Martínez
01/02/2016, 13:58
¿Y a nadie se le ha ocurrido que puede tratarse del ejecutable con toda la información de depuración y medición de rendimiento metidas, amén de no haber hecho limpieza de las bibliotecas que no usa, por que se les ha olvidado configurar correctamente el compilador? Es la principal razón por la que los programadores de C++ están convencidos de que los programas Pascal son más grandes...

De todas formas, el bloatware está a la orden del día.

neglox
01/02/2016, 15:13
Curiosidad a parte, me bajé en su día una aplicación legítima que ocupaba bastantes megas, la investigue por curiosidad y me empiezo a encontrar un montón de dlls. Estaba programada con xamarin (mono aka .net sobre android) y aquello claro pesaba horrores.

pakoito
01/02/2016, 15:22
¿Y a nadie se le ha ocurrido que puede tratarse del ejecutable con toda la información de depuración y medición de rendimiento metidas, amén de no haber hecho limpieza de las bibliotecas que no usa, por que se les ha olvidado configurar correctamente el compilador? Es la principal razón por la que los programadores de C++ están convencidos de que los programas Pascal son más grandes...
Java es muy distinto de C/C++ en este sentido, la comparación no tiene sentido.

^MiSaTo^
01/02/2016, 15:36
Curiosidad a parte, me bajé en su día una aplicación legítima que ocupaba bastantes megas, la investigue por curiosidad y me empiezo a encontrar un montón de dlls. Estaba programada con xamarin (mono aka .net sobre android) y aquello claro pesaba horrores.

Obviamente cuantas más capas pones más pesado será xD Y Xamarin y similares son una capa por encima del nativo

Ñuño Martínez
03/02/2016, 12:00
Java es muy distinto de C/C++ en este sentido, la comparación no tiene sentido.
¿Los "ejecutables" de Java no tienen información de depuración, ni listas de nombres ni nada de eso? Bueno, tampoco me parece tan raro, teniendo en cuenta que es más o menos interpretado. Quizá se pueda decompilar más fácilmente que un ejecutable "nativo".

IronArthur
04/02/2016, 14:03
¿Los "ejecutables" de Java no tienen información de depuración, ni listas de nombres ni nada de eso? Bueno, tampoco me parece tan raro, teniendo en cuenta que es más o menos interpretado. Quizá se pueda decompilar más fácilmente que un ejecutable "nativo".

Java se descompila enterito sin problemas a no ser q este muy ofuscado.

Salu2

Nathrezim
04/02/2016, 15:16
Java se descompila enterito sin problemas a no ser q este muy ofuscado.

Salu2

¿Y lo de las inner classes? ha habido veces que he tenido que usar javap y la imaginacion para rellenar los huecos XD.

IronArthur
05/02/2016, 08:55
¿Y lo de las inner classes? ha habido veces que he tenido que usar javap y la imaginacion para rellenar los huecos XD.

Pues no estoy seguro no suelo descompilar java, supongo q sera como los yield de c# q hay q veces q los tienes q reconstruir.

Salu2

Drumpi
05/02/2016, 20:42
Y como chipan o drumpi digan que usar dependencias externas es de malos programadores es para ponerlos en ignore, pero no por trolls.

No pongas en mi boca palabras que no he dicho :D:D:D
Puede no ser eficiente, teniendo como han dicho la API del sistema (he visto poco de Android, pero el "hola mundo" en XML lo he hecho :D), pero cada uno debe usar las dependencias con las que más cómodamente trabaje y se adapte a las necesidades del proyecto, si no, hace siglos que yo no programaría en Bennu para Wiz :D:D:D. De todas formas, he programado en Unity y ya no puedo decir nada al respecto ¡tengo las manos manchadas!

Lo que sí es posible es que el ejecutable sea grande por el programa que usan. Por ejemplo, una simple caja saltando sobre otra, en Unity, el proyecto ejecutable ya ocupa 30MB.

Sé que no viene a cuento, pero un documento de word vacío ocupa unos cuantos cientos de KB (cabeceras, formatos, estilos...), mientras que un TXT ocupa 0KB. Si no tienes problemas de espacio puedes usar formato .doc, pero si tienes unos pocos megas, esa diferencia se ve con otros ojos.

Pero en mi opinión estoy con la mayoría: si la aplicación es pesada, y te pide más permisos que el acceso a la cámara, busca otra porque como esa hay 20000 en play store, y alguna será sencilla.
Por cierto, ahora me entero de que se puede añadir la publicidad directamente al ejecutable de Android ¿no se supone que la librería de publicidad funciona conectándose a un servidor, y que la publicidad que se muestra varía en función de lo que paga el patrocinador? es decir, tenía la impresión de que los anuncios cambiaban con muchísima regularidad.

chipan
06/02/2016, 08:56
No se por que iba a decir yo que usar dependencias es de ser mal programador. Todo tiene sus ventajas e inconvenientes; yo básicamente he dicho que añadir funciones extra a una app hace que la misma engorde. Por ejemplo, en una app de linterna no necesitas gran cosa, pero si metes anuncios la app crece porque ya necesitas mas cosas como código para acceder a la red o similares.
Luego están las que traen directamente spyware o malware, que esas pesan de más porque traen mierda pa aburrir y hacen 20000 cosas mas de las que te dicen; pero eso ya es otra historia.