iOS, Android, WP8 NO y reencuentros

VipeR_CS

#5490 Como te he dicho no conozco tan bien las limitaciones del jailbreak, seguro que te podrían decir más cosas blzkz o cryoned.

Se me ocurre por ejemplo, ¿puedes hacer en iOS una imagen completa del sistema+apps+datos de apps (nandroid+ext) para luego restaurarla?

4 respuestas
HoTiTo

#5490 Si no me equivoco, iTunes la crea cada vez que sincronizas.

Puedes darle a restaurar backup en cualquier momento y tal y como estaba el teléfono antes de darle lo tendrás igual.

granaino127

#5491 Ya pero ellos tampoco me han dado o querido dar ninguna explicación desde que se ha creado este post o en todos los post donde se ha hablado de temas parecidos.

Lo mas parecido que me han dicho es que en Android puedes hacer cosas "de serie" con las que en iOS necesitas JB, (como cambiar apariencias, transferir por BT datos a otros dispositivos y blabla) pero eso me parece una respuesta para eludir la pregunta realmente...

Parece que a la gente le cuesta decir que iOS+JB ofrece todo o practicamente todo lo que puedas buscar de Android o Android+root...porque si asumes que esto es así, muchos se quedarían sin motivos para tener una razón de peso para preferir Android, salvo el téma de precios de los dispositivos y variedad de hardwares distintos (aunque eso suponga fragmentación tambien)

A lo de:
Se me ocurre por ejemplo, ¿puedes hacer en iOS una imagen completa del sistema+apps+datos de apps (nandroid+ext) para luego restaurarla?

Que sepa es una de las ventajas que hace iTunes desde toda la vida...al margen de que por JB tambien hay utilidades para hacer backups de todo el contenido "de serie y extra"... aparte de poder copiar por shh todo lo que quieras manualmente y luego pegarlo tal cual.

TaMy

Solo una cosa... en un iPhone puedes instalar un kernel y una Rom. Solo que no hay de personalizadas. Son las oficiales.

Yo tengo los certificados guardados para hacer downgrade y mi iPad con 5.0.1 puedo volver a la 4.3.3 en el momento que quiera.

Estaré instalando el kernel que lleva la 4.3.3 Y lo haré yo, sin el permiso de Apple. Asi que si... puedo cambiar el kernel.

Lo que se puede pero a NADIE le interesa perder tiempo en ello es realizar custom kernels. Nadie en su sano juicio intentaria mediante ingenieria inversa modificar un kernel de iOS. Por dos razones que juntas son una razón de peso:

  • Es un proceso muy muy largo, al no tener las fuentes compilar un kernel propio es practicamente imposible y realizar ligeras modificaciones de uno ya compilado tambien muy muy complicado.
  • El kernel ya esta tremendamente optimizado y ya tienes el último disponible. No hay ninguna razón de peso para hacer un custom kernel más que el aburrimiento máximo de algún friki.

Además hay cosas que quizás desconoces que se pueden:
Sabes que puedo coger una imagen de mi iPhone, modificar un plist. (Fichero de settings, similar a los .properties de android) y activarme por ejemplo la funcionalidad de fotografia panorámica en la cámara oficial de iPhone?

El asunto es que excepto un pequeño muy pequeño segmento de los compradores de iPhone, la mayoria no ve ningún tipo de necesidad de perder ni un minuto de su tiempo "modificando" su iPhone.

Básicamente lo puedo reducir en:
Yo: Mama mama, dejame el Samsung Galaxy S que te he dado hace una semana. Que le voy a cambiar el kernel del patyplus a uno que es la modificación de Zach al kernel nuevo de patyplus que te permite ponerle el CPU governor a ondemandb en lugar de ondemand.

Mama: Lo cualo??? Sacate la patata de la boca hijo.

Yo: Nada, que le pongo una cosa al movil que permite elegir otra cosa que hara que el movil funcione mejor y gaste menos bateria.

Mama: Pon pon,...

En serio crees, no solo que un usuario de iPhone se preocupe de esto, sino crees que un usuario de iPhone quiere preocuparse de esto aunque pueda?

El usuario de iPhone medio esta más preocupado de cuando sacan Flipboard y Zite para iPhone, de cuando sale Infinity Blade 2 para su iPhone y de cuando bajará Final Fantasy 3 de precio o a ver si ponen ya el soporte de AirPlay para el Fifa12, o de tipos de filtro nuevos sacara Instapaper en su nueva actualización.

1 1 respuesta
wiLly1

#5491 Pues con el iCloud que viene de serie con la iOS5 tienes todos tus datos guardados en una nuve (partidas, llamadas perdidas, sms, etc...) y cada vez que quieras formatear solo tienes que conectarte a un wifi y descargar... xD
no sé muy bien si te refieres a eso..

Y lo del kernel... no se para que quiero optimizar mi iphone si va sobradamente bien xD

Atrus

Yo se una cosa que puede hacer un movil android marrullero recien salido de la caja que ios no puede hacer. Activar un check e instalarte tus propias apps, sin tener que hacer root, ni JB, ni leches.

#5480 #5481 No es que no lo necesiteis, es que no podeis. Si yo quiero crearme una version propia y optimizada para mi terminal y mis necesidades puedo hacerlo en Android. Instalar apps en iOS+JB va a seguir conservando toda la morralla que dejo apple por mucho comportamiento que modifique y es posible que hasta te vuelva el sistema inestable, no tiene por que pasar, pero a veces pasa. Yo tambien uso iOS.

Y la milongada de apps preparadas para la siguiente version, es relativo. El 80% aprox de las apps que tengo en el ipad2 se actualizaron para iOS 5 entre la segunda y tercera semana despues de la salida oficial.

Las actualizaciones de android estan disponibles para todos desde el momento que salen, ahi es cada fabricante el que decide cuanto tardara en adaptarla. Pero vamos que tambien tienes a los cocineros en pijama que seguramente te saquen release antes que nadie.

Y bueno, teniendo JB, las actualizaciones estan disponibles, si. Pero si actualizas bye bye JB y a esperar hasta que salga otro bug explotable.

No se, a mi me resulta mas comodo Android, teniendo los 2 sistemas. Pero quiza yo valore otras cosas en un SO que vosotros.

#5494 claro, yo puedo cambiar el kernel de windows y los procesos del SO, solo que en mi pc por los oficiales que vienen en el disco de instalacion -.-¡

Nadie se va a poner a sacar una version propia de iOS no por que sea una locura, ni tenga tiempo. El kernel de iOS no tendra practicamente nada teniendo en cuenta que solo maneja una arquitectura y componentes muy concretos. No se hace sencillamente porque no se puede. Si mañana un coreano aburrido saca un iOS custom, Apple saldria a enterrarlo en su casa bajo demandas.

Tocar un kernel, si esta bien picado y ordenado el codigo, y los programadores de sistemas de Apple no son precisamente zotes, es sencillisimo. En linux yo mismo he tocado el kernel alguna vez por que no me iba a tarjeta de red de mi portatil y no gaste ni media tarde en encontrar el problema, solucionarlo, compilar el kernel e instalarlo.

Por dios, el argumento de que en ios las cosas son mas faciles dejarlo ya, si tu a tu mami con el iphone te pones a hacerle JB para meterle cualquier cosa, tendras el mismo escenario del que ries de android.

Un usuario avanzado tiene muchas mas posibilidades en android que en ios. Pero si, las celdas de diseño tienen su aquel ;)

3 respuestas
granaino127

#5496 No es que no lo necesitemos.... es que no lo necesitamos...

¿Crees que puedes mejorar el rendimiento de algo?...Antes de que alguien se cocine algo, Apple ha lanzado una nueva actualización que consigue la misma mejora o mas..... Ya dura mas que la mayoría de terminales de la competencia en cuanto a duración de batería, ya va mas fluido que toda la competencia y mas rápido de lo que va, sería inapreciable.. ¿para que quiero cambiar a un kernel no oficial?

Mi iPhone 4S con los supuestos problemas de batería que tiene en un uso mixto de 3G, videos, algún rato de juego y tal... me está durando 6-7-8 horas de uso (depende si tiro mas de 3G o de juegos que de otras cosas) y mas de 24 horas en reposo junto con esas horas de uso...

Además ya tengo a Apple trabajando para mi en optimizarme mas el sistema cada vez que sea necesario, recuerda que no tenemos que esperar meses ni nos sacan actualizaciones cada par de meses ni blabla...no tengo la necesidad de recurrir a ninguna optimización casera y si quiero mejorar el rendimiento hago OC o a la inversa si quiero ganar mas batería aun.

Lo que dices de la tardanza de apps... ¿Que apps? Por que creo recordar que ninguna de las que uso yo tardaron tanto, lo dices como si estuviéramos hablando de todas las apps o algo así....
Las versiones GM de los nuevos iOS salen incluso meses antes de la salida oficial, así que si una app no esta actualizada a iOS5 desde su lanzamiento no es ni lo mas común ni lo mas normal ni de remotísima casualidad. Ahí supongo que te has tirado un pegotazo de la ostia, igualmente pongo la mano en el fuego a que en Android tardan mas en actualizar la mayoría de apps a versiones nuevas que en iOS....mas que nada porque cuando sale una versión nueva Android, solo está disponible para algunos terminales, para otros, la mayoría, puede tardar meses, asi que no creo que se den de ostias todos pos actualizar las apps mas que en iOS que saben que desde el segundo 1 de estar la actulización, todos los usuarios la pueden tener ya.

Vamos no me jodas, el S2 si lo tengo mas actualizado...pero el Optimus 3D ha salido hace semanas gingerbread cuando ya está lanzado ICS, la ostia vamos...ya me dirás para que cojones quiero apps actualizadas a ICS desde ya si ni apenas tengo Gingerbread aún, para mearse...

Por cierto, me estoy aburriendo de hacer la misma pregunta... ¿Que muchas mas posibilidades tiene Android a un usuario avanzado que no tenga iOS? Mucho decir "muchas mas posibilidades" pero poco explicar cuales son.... a ver si contestáis de una puta vez.

Lo que decía Tamy supongo que lo dice porque aunque sea un Kernel "oficial" realmente no lo es... cuando tu downgradeas las versiones viejas dejan de estar firmadas y validadas por Apple, por tanto cuando haces downgrade estas metiendo un kernel "no oficial" :)...no es igual obviamente, pero supongo que es eso a lo que se refería.

2 respuestas
altorete

#5497 Hombre, Atrus te acaba de decir una justo en #5496 .
Y que conste que estoy de acuerdo contigo en muchas cosas.

1 respuesta
BLZKZ

#5469 "Nada más instalar la SIM y pasar la configuración inicial me doy cuenta de que la conexión de datos 3G no funciona."

Es la primera vez que lo veo, de hecho a mi siempre me ha funcionado con 4 androids distintos xD

Edit: y por cierto el angry birds es 2D nada de 3D :/

#5491 aún intentas hacer que granaino entre en razón? xD yo ya pasé hace tiempo, entre iphone y seat gl xD

granaino127

#5498 Lo que ha comentado si me he quedado con todo es el tema del kernel, que ya lo dijo Viper...

Atrus

#5497 todo el mundo sabe que el mayor nivel de progreso se produce cuando dependes de un unico proveedor...

Apple no se encarga de sacar mejoras en sus productos cuando sea necesario, si no cuando le interesa. Por que el iphone 4S tiene siri y no el ipad2 siendo iguales en potencia?

Lo de las apps de ios lo he escrito porque lo habeis puesto como si al momento de instalar una nueva version de ios todas las apps se actualizasen para aprovechar esa nueva version, y simplemente no es verdad. Hay apps que estan preparadas antes o durante, pero la mayoria tiempo despues, que es lo mismo que pasa en Android. iOS en la actualizacion de las apps no hace nada especial. La transicion de 2.3 a 4.0 en android esta siendo practicamente igual que fue ios 4 a 5.

Te repito, cuando sale una version nueva de android, esta disponible para todos, quien quiera puede implementarlo en su terminal. La velocidad a la que lo haga tu marca ya es otra cosa. No puedes comparar con ios porque son modelos de trabajo distintos. Apple saca su version final en produccion y Google la saca para que empiece la produccion de quien lo desee tener.

Posibilidades? Tiene una muy importante, posibilidad de eleccion.

1 respuesta
granaino127

#5501 Una cosa es que lancen SIRI para 4S (iPad 2 el motivo podría ser que no todos los iPad 2 que se venden tienen conexión 3G y sin internet SIRI no es usable, en cambio iPad2 tiene gestos multitactiles y iPhone 4S no ¿por que? porque ya me dirás lo usable que son los gestos en la pantalla de iPhone, menos que en iPad) y otra muy distinta es que no se afanen en tener optimizados los terminales....

Si tras lanzar una actualización, hay algún problema de rendimiento de cualquier tipo, tardan días en lanzar solución.... 5.0.1 se lanzó a nada de 5.0 por el tema de la batería, si Apple no estuviera interesada en el rendimiento de los terminales no se afanaría tanto con ello, tendríamos actualizaciones cada año y punto..y hubieran lanzado multitara pura desde iOS 1, no seas oportunista metiendo SIRI que son cosas muy distintas.

Apple ha usado a SIRI como reclamo para el 4S, lo opino así...¿pero que tiene que ver eso con lo otro?....comentan que para iPhone4 no lo lanzan porque no funcionaría tan bien como pretenden que lo haga...para iPad2 está el tema de que todos los iPad no tienen conectividad 3D y blabla....si pueden ser escusas, pero anteriormente nunca se ha hecho algo así limitando las posibilidades de productos anteriores.....salvo en la primera generación con iOS4 que no activaron la mulltitarea pura por temas de rendimiento y caparon a 4.2.1 por rendimiento, pero estaba mas que justificado, era muy dificil seguir explotando eficientemente un harware de 2007, 4 años explotándolo fueron bastantes y mas de lo que cualquier Android va a funcionarte actualizado y funcionando fluida y eficientemente, eso seguro.

Metes la pollez de Siri cuando tranquilamente estás olvidando que hay temrinales Android que con 1 año se quedan sin soporte oficial para actualización y los que la tienen algunos pueden tardar meses y dependes de que tu operador te suministre la actualización con la mierda que les quieran meter al sistema ¿que broma es esa? ¿eso no es una falta de libertad?. Aparte de problemas por la fragmentación... ¿que te parece que mi Optimus 3D le haya llegado gingerbread casi a la par de salir ICS? Eso es jodidamente mas vital que el hecho de no tener SIRI en i4, almenos tienes iOS5 con todas las funcionalidades menos esa funcionando optimizadamente y fluidamente e incluso en el 3GS y productos contemporáneos también......además Apple no ha asegurado que no vaya a llegar SIRI a otros dispositivos, esa incógnita sigue aún en el aire, quizá anden optimizando para otros dispositivos anteriores o no....

En fin, posiilidad de eleccion.....¿que respuesta es esa? Quiero una jodida respuesta a lo que he preguntado. He preguntado que que puedo hacer con Android o Android+root que no pueda tener con iOS+Jailbreak.... no me vengais con la milonga de la elección, ¿elección de que? ¿A tener que recurrir a software casero porque no tengo soporte oficial? ¿A necesitar software casero para que funcione como debería desde que me lo venden? En iOS no necesitas el software casero para nada de eso.....todas las demás cosas que puedas hacer, con Jailbreak las puedes tener también.

1 respuesta
Dante88

Solo decir que en Android, todos los procesos que se están ejecutando en background, juntos, no pueden consumir nunca más del 5-10% de la CPU.

Para todos los embusteros que intentaban hacer ver que el S.O. Android no es estable y no lo puedes usar más de 5 minutos. y blablabla.

Y lo de que las aplicaciones se quedan ejecutandose también es falso. Es difícil instalarte una aplicación que este mal hecha y se te pase chupando batería todo el día. Sobretodo con las mejoras que han salido en el market últimamente de desarrolladores reconocidos y tal.

Lo de la aplicación que se enciende cuando enciendes el móvil y es un virus y te mata, a ti y a tu familia. También inventado, para que una aplicación se active cuando enciendes el móvil tienes que darle permiso explicito (que no se si es cosa mia o es que de verdad ahora los permisos en el Market estan mucho mejor explicados), sino la tendrás que encender tu manualmente.

Y si hay alguien que entra aquí para ver que móvil se compra, por tu bien, vete a otro foro o otra web si no quieres que te engañen.

2 respuestas
tofulca

os lo dejo asi tal cual, q cada uno haga sus indagaciones si le interesa o lo deje si se la trae al pairo jejeje

http://www.thetgpost.com/index.php/tecnologia/empresas/4202-desarrollador-de-apple-expulsado-por-descubrir-un-fallo-en-ios.html

1 respuesta
Atrus

#5502 si, tienes razon en todo. Se termino la discursion ^^

1 respuesta
granaino127

#5505 Gracias, pero quiero respuesta a mi pregunta.

La pregunta sigue en el aire y no dejaré de hacerla porque llevo años haciéndola y sigo con las mismas respuestas......

1 respuesta
VipeR_CS

#5506 No, te corrijo. Se te ha contestado pero sigues preguntando porque las respuestas no son de tu agrado, así que sudas de ellas. Pues que te vaya bien.

#5504 Esas cosas no las pongas, que iOS no tiene fallos.

2 1 respuesta
granaino127

#5507 Se me ha dado una respuesta, que puede ser mas o menos útil para iOS (no practica en IOS la verdad), pero quiero mas.... porque dicen que "Un suario avanzado puede hacer mucho mas con Android"... Yo quiero saber que es ese "mucho mas".

Si ese mucho mas incluye cosas como la de #5491 que dejan patente lo mucho que se desconoce sobre iOS, entonces ya si que me voy a mi trollcama.

¿Ese mucho mas que incluye? ¿Instalar apps propias, instalar apps no firmadas por Apple? ¿modificar el sistema con funciones que yo quiera dar extras (tweaks)? ¿modificar la apariencia como gitano que tunnea su coche? ¿Hackear redes wifi? ¿hacer Overbloking? ¿Instalar emuladores de consolas? ¿instalar otros SO? quiero que me digais que cosas puedo hacer...porque todo eso lo hago con iOS....

dirtypablo

Dejad ya el "Poder hacer" y pensar más en el "Buen hacer".

TaMy

#5503

TEMA DESARROLLO DE UNA APP QUE UTILICEN TWIN SERVICES

Creo que hace falta un poco de documentación:

Creo que lo mejor es SOLO utilizar la página oficial de Android para desarrolladores para contestarte:
1-. Así funciona la multitarea en Android: http://developer.android.com/resources/articles/multitasking-android-way.html

2-. Leete el ciclo de vida de los servicios: (Sección "Managing the Lifecycle of a Service") sobretodo como el evento de onDestroy te permite realizar cualquier tipo de acción:
http://developer.android.com/guide/topics/fundamentals/services.html

3-. Creo que tendrias que darle un vistazo a esto:
http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

Hay 5 niveles de importancia:

  1. Foreground process.
  2. Visible process
  3. Service process
  4. Background process
  5. Empty process

Los process 3, 4 y 5 pueden ser completamente invisibles al usuario y en su código pueden hacer lo que le den la gana.

En Android conociendo el intent y creando el servicio tu puedes tener dos servicios diferentes que hagan lo mismo y simplemente se llamen mutuamente en su onDestroy con que en el manifest permitas que se abra desde allí.

Algo tan simple como eso implica que ese servicio está 100% del tiempo encendido.

Los permisos no te solucionan NADA y te voy ha explicar porque:
http://developer.android.com/guide/topics/security/security.html

Si miras que cosas te permite fijar en los permisos del Manifest.xml te permite fijar QUIEN puede arrancar tu servicio. (Para evitar que otras Apps te abran). Pero precisamente eso protege al desarrollador, no al usuario.

Vuelvo a mirar el android.Manifest.permissió y aqui no encuentro la que me diga "Esta app abre un servicio CUIDADO".
http://developer.android.com/reference/android/Manifest.permission.html

Esto ocurre porque hay servicios que se utilizan bindeados a la actividad en primer plano que no tienen ningún problema. El problema es lo que Android permite a los servicios que se quedan abiertos pese a que la app esté cerrándose.

Dices que los servicios en segundo plano no pueden superar el 5%, no he encontrado nada al respecto, pero por supuesto tienes el beneficio de la duda, asi que te pido un link oficial (o creible) al respecto.

Aún así, yo he realizado esto que te comento muchas veces, es instalar muchas aplicaciones que realizan esto. El problema no es que ellas gasten más o menos de 5% de CPU... Es el propio sistema cerrando los servicios dado que se queda sin RAM y ellos reabriendose, lo que provoca que el sistema vuelva ha estar sin ram y vuelva ha intentar cerrarlo. Creando un bucle en el que el sistema esta continuamente matando processos que se abren justo despues de ser cerrados.

Haz una cosa... hazlo... crea una app e intenta siempre tener un servicio abierto. Es facil, y una vez lo tengas lo pondrás a todas las apps que tengas ya que es un chollo tu app NUNCA esta cerrada, un chollo imcomprensible en otro sistema.

=============================================================

TEMA INSEGURIDAD DE LOS APKS FRENTE A LOS PROVISIONING PROFILES de IOS, ALIAS INSTALAR MIS PROPIAS APPS EN iOS SIN JB NI APPSTORE

Adicionalmente ante el desconocimiento de iOS del comentario de #5496 "Yo se una cosa que puede hacer un movil android marrullero recien salido de la caja que ios no puede hacer. Activar un check e instalarte tus propias apps, sin tener que hacer root, ni JB, ni leches."

Mi respuesta es tan simple como llana: Cuando YO hago una aplicación en iOS, puedo instalarla, no solo en mi iPhone/iPad, sino hasta en CIEN - 100 iPhones/iPads adicionales aparte del mio y puedo cambiar cualquiera de esos CIEN dispositivos por cualquier otro cuando me plazca.

Lee esto anda:
As you may know, apps distributed outside the app store require a mobile provisioning profile to authorize its use on a device. There are two types of such profiles:

Ad-hoc distribution. Any registered developer can get one of these, however each specific device where it is to be deployed must have its UDID submitted to Apple for inclusion in the profile. There is a limit of 100 devices in the profile. You may remove UDIDs, but within a (calendar?) year you can not add more than 100 unique IDs even if you have removed some.

Enterprise distribution. Only companies with an Enterprise License can get one of these profiles. They cost $299/year, and the company must have a Dun & Bradstreet's number in order to apply. Until late Sep 2010, the company also needed a minimum of 500 employees, but that requirement has been lifted. The major benefit of the enterprise profile is you do not have a device limit, nor do you need to enter the UDIDs of the devices where it will be deployed. Once you have the enterprise license, you get a distribution profile that can be installed on any device to authorize the application to run.

Dos tipos de distribuciones:
1-. Pagas 99$/año (es lo que cuesta ser desarrollador de iOS) y cuando quieres testear tu aplicación simplemente introduces los códigos de los dispositivos a los que TU como desarrollador QUIERES que puedan ejecutar tu aplicación. Y Además decides HASTA CUANDO quieres que puedan ejecutarla. En ese momento tansolo teniendo tu IPA esos dispositivos que en un entorno de desarrollo ya tendrán tu provisioning profile. Tansolo teniendo el iPA podran instalarse tu app y tenerla en el dispositivo sin pasar por la App Store.

2-. Pagas 299$ (siendo una empresa GRANDE) y tansolo teniendo el provisioning profile pueden instalar libremente el IPA no es necesario los UDIDs. Esto se utiliza para realizar apliaciones específicas para empresas que no quieres que estén disponibles para nadie más en el App Store.

Así que simplemente, que esté mejor montado, que IMPLIQUE ofrecer seguridad al desarrollador de que tu aplicación solo la ejecutará aquellos que el quiera y que no es necesario ni Jailbreak ni nada de eso que tu comentas.

Desconoces el sistema, y recuerda como desarrollador de Android, si pierdes el control de un APK y comienza a distribuirse sin que TU QUIERAS... LA HAS CAGADO... ya que no tienes forma humana de impedir que se instale.

Simplemente el método de iOS para desarrollar y probar una aplicación es INMENSAMENTE SUPERIOR a lo que Android hace con los APK!!!! Tener la visión simplista de tener el apk implica poderlo instalar es... casi... de crios... una empresa serie, un grupo importante de desarrollo nunca, repito NUNCA puede permitirse el descontrol que genera la nula seguridad que da Android en este aspecto.

Como coño testeo mi App en Android??? la envio a los testers??? y si la filtran???

Yo envio la de iOS sin miedo... total si se filtra tansolo al gente con jailbreak podrá instalarsela... que me la suda. Si envio la de Android y antes de finalizar el proceso de Quality Assurance de la aplicación esta acaba en los foros de medio mundo... la habre cagado.

============================

ACTUALIZACION ICS SIENDO DESARROLLADOR Y LA DIFERENCIA FRENTE A iOS

Como desarrollador a dia de hoy o me compro Galaxy Nexus (luego dicen que desarrollar en iOS pagando 99$ es caro cuando puedes probar iOS5 en un 3GS)... o mis apps no puedo probarlas en ICS. En iPhone las apps de la empresa donde trabajo se adaptarón a iOS5 en AGOSTO... mese antes de su salida gracias a las developer previews.

De hecho si quiero que mis apps funcionen bien en ICS tendré que hacerlo mediante emulador (que bien sabrás que no puedes probar las cosas bien ya que un RATON no es un DEDO). Por lo tanto yo NO PUEDO SABER si mis apps funcionan bien en ICS. Si no me gasto 600 €.

Ya que el movil que me recomendo google comprar a finales de 2010 (hace un año) era el Google Nexus One ya que Nexus S no habia salido.

Ese movil que Google hace un año me decia que era lo que necesitaba para desarrollar y testear Android, No podré probar ICS a no ser que un señor llamado Cyanogen en su casa me haga el favor de darme lo que GOOGLE tendria que darme y me niega...

En serio es que no veis la castaña enorme que es todo junto???

2 2 respuestas
Dante88

#5510 Vuelves a equivocarte.

Cuando te cargas una aplicación desde el taskiller no muere solo una Actividad, también muere el proceso donde se ejecuta esa aplicación y con el TODOs los servicios y demás.

Puede que una aplicación tenga un bug, por el cual cuando le das a BACk deje servicios activos, pero si matas la aplicación desde el taskiller esos servicios mueren. (Y no el taskiller externo, el que viene con el propio móvil).

Aun así, si instalas una aplicación que hace cosas raras, simplemente mira lo que instalas, busca aplicaciones que tengan valoraciones positivas, que sean de fiar, mira los permisos. Si instalas algo de xxx.virusgratix.com te pueden pasar muchas cosas si.

También decirte que no siempre se llama a onDestroy()... El SO elige cuando llama y cuando no. Aunque no lo creas todo eso que tu piensas ya lo ha pensado el equipo de desarrollo de Android.

Que cuando una actividad se bloquea durante X segundos te sale un mensaje pidiendo el kill de la aplicación, etc. etc. etc.

Eso de que matas a una servicio y se crea otro xD no existe, tu no puedes matar a un servicio. En todo caso si a la aplicación le das permiso para que se ejecute automáticamente pasen cosas raras. Simplemente mira que permisos apruebas, te repito.

Luego también, como te veo venir te aclaro. Cuando cierras una aplicación dandole a Back, muchas veces el SO guarda esa aplicación en memoria ram, totalmente inactiva. Simplemente porque si le sobra RAM y predice que probablemente vuelvas a utilizar esa aplicación en breve la deja ahí. Eso no significa que se este ejecutando un servicio, ni que se este haciendo uso de la CPU, aunque te aparezca en el taskiller.

EDIT: La fuente: https://plus.google.com/105051985738280261832/posts/XAZ4CeVP6DC?hl=es

Que por cierto invalida todo lo que el anterior "trabajador" de google decía de la rapidez de la interficie en Android. Basicamente porque al parecer ni estuvo realmente en el equipo de Android y no sabia bien como funcionaba el S.O.

Y esto es lo ultimo que voy a decir en este thread. Porque no me apetece meterme en berenjenales de explicación del funcionamiento interno de un S.O. cuyo funcionamiento no es tan simple como para que te atrevas a sacar esas deducciones que sacas simplemente leyendo la mitad de la información (o dos parrafos más bien).

2 1 respuesta
PiTaGoRaS

#5510 Una corrección: 100 dispositivos que sólo puedes eliminar una vez por año cuando renuevas la cuenta de desarrollador.

El sistema de distribución de apps en entornos privados de Apple es seguro, sí, pero es un coñazo insufrible del que yo creo que todos los devs de iOS echamos pestes día sí y día también. Y si no lo haces es porque nunca te ha tocado aún pegarte con los misteriosos e indescifrables errores de firmado de aplicaciones que ocurren "mágicamente" de cuando en cuando.

1 respuesta
TaMy

#5511
Para evitar parrafos largos comenzaré con algo que comentas que no es así, lo que tu comentas es el comportamiento por defecto, pero como desarrollador puedes cambiar, así casi que preferio ponerlo simple:
Un servicio de una aplicación incluso lanzado desde una activity no tiene porque estar en el mismo proceso. Este es el fallo. Por defecto si que es así, pero no es obligado. Si el servicio fuera obligatoriamente asociado al proceso lo que te comento no podria hacerse.

Tu puedes decidir que processos contiene tu app con el parametro android:process dentro de <application>
http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

Y curiosamente puedes crear tu servicio en un proceso diferente con android:process dentro de <service> http://developer.android.com/guide/topics/manifest/service-element.html

Esto provoca exactamente lo que te digo. Si quieres luego cuando aclaremos que puede haber diferentes servicios de una app en processos diferentes y que pueden llamarse entre ellos seguimos con el resto.

#5512 #5514
Pues mi equipo de desarrolladores no me han comentado problemas sobre esto de hecho exportando la App a la arquitectura pertinente la saca siempre firmada, lo hace el XCode automáticamente. Nosotros trabajamos con equipos de 30 testers. Y utilizamos normalmente este SDK que nos permite controlar los logs de testeo perfectamente: https://testflightapp.com/ además de facilitar tremendamente la distribución del mismo a distancia.
Hemos tenido 70 testers este año. Por lo tanto si la limitación existe no me ha afectado, pero me afectará el año que viene asi que tendremos que coger la de 299$. (Ahora solo exigen en DUNS Number).

Y sigo diciendo que me parece tremendamente bueno el sistema. Porque me permite realizar un proceso de quality assurance adecuado. Con los APK no puedo hacer esto. No tengo forma humana de distribuir el APK en el grupo de testers y poder estar seguro que la app no acabe en todos los foros de internet.

Así a mi como si me tardan 30 minutos en firmarla. Ojala pudiera hacer lo mismo con un APK y no tener que añadir controles de seguridad hechos a mano y mucho menos seguros que el ofrecido por Apple.

3 respuestas
BLZKZ

#5513 a pitagoras no le respondes? xD Menuda chapuza "el control" de apple para testear app's xD

#5513 puedes monitorear y matar servicios cuando quieras y como quieras. Sin contar que los procesos y los servicios se contabilizan de manera diferenciada.

1 1 respuesta
Dante88

#5513 Ok, pues me he equivocado con la nomenclatura.

Una instancia de la maquina Dalvik tiene procesos. Y un proceso tiene threads.

Cuando matas una aplicación matas la instancia de la maquina Dalvik y con ella todos los procesos y threads.

Y dos instancias de maquina dalvik no pueden influenciar una sobre otra a menos que pertenezcan a aplicaciones firmadas por la misma persona. Y obviamente solo el S.O. crea estas instancias.

Ya esta, no se puede hacer lo que dices.

1 respuesta
TaMy

#5515 Solo una cosa que me tengo que ir al sobre ya:

El sistema de android mata procesos dentro de todas y cada una de las máquinas virtuales por prioridad. No mata máquinas virtuales (a ver que con adb y kill -9 puedes hacer lo que quieras tal y como comentas pero me refiero de forma automática cuando por falta de RAM el sistema decide cerrar "procesos" y no máquinas virtuales...). Android mata procesos y lo hace por separado cuando necesita RAM.

Por supuesto ambos servicios estan bindeados de forma que uno puede detectar cuando el otro no "existe". Y por supuesto tiene permisos para realizar el startService() de ese permiso, algo que es transparente al usuario.

http://developer.android.com/resources/articles/multitasking-android-way.html

Process management for services is different than broadcast receivers, because an unbounded number of services can ask to be running for an unknown amount of time. There may not be enough RAM to have all of the requesting services run, so as a result no strong guarantees are made about being able to keep them running.

If there is too little RAM, processes hosting services will be immediately killed like background processes are. However, if appropriate, Android will remember that these services wish to remain running, and restart their process at a later time when more RAM is available. For example, if the user goes to a web page that requires large amounts of RAM, Android may kill background service processes like sync until the browser's memory needs go down.

De hecho cuando Android baja el nivel de RAM disponible y necesita. Puede matar diferentes procesos de dentro de cada vm, sin necesidad de matar toda la vm de esa app. Hay un orden de prioridad y no tiene porque tener prioridad contigua. Cuando el sistema vuelve a tu vm a matar el segundo servicio, este ya ha realizado el startService del primero.

PiTaGoRaS

#5513 Usando Xcode para archivar y luego exportar la aplicación a un fichero .ipa no suele dar problemas, pero si lo haces así de forma completamente manual es que probablemente no tienes un sistema de integración continua ni de gestión de versiones. Las apps y librerías con las que trabajo yo se compilan y archivan mediante shell scripts que usan xcodebuild y demás utilidades de línea de comandos, nada se hace a mano y hay muy poca documentación oficial de estas herramientas. Luego usamos maven para gestionar dependencias de cada proyecto y tener un control de todas las releases que se producen, ya sean librerías estáticas, aplicaciones de testing de dichas librerías (en formato .ipa) o nuestro propio SDK. En resumen, que lo tenemos todo automatizado, pero sigue habiendo cosas que requieren una intervención manual, como por ejemplo dar de alta un UDID nuevo, actualizar el perfil de distribución, etc. Testflight ayuda para ciertas cosas pero sigue habiendo pasos que Apple no permite automatizar, y eso a nada que tus proyectos sean algo complejos es una gran putada.

PD: Ahora mismo puedes borrar UDIDs de tu lista de dispositivos registrados si quieres, pero el slot no lo recuperas hasta que renueves tu cuenta.

1 respuesta
TaMy

#5517
Nosotros utilizamos las herramientas de Atlassian Bamboo están instaladas en un Mac Mini (Planteamos coger un Mac Pro, pero como lo único que hace es esto con el mini sobra...) para esto, antes teniamos un .py que se encargaba del xcodebuilder (eso me comentan por aquí) para la integración continua. Ahora utilizamos un plugin beta que ofrece directamente Atlassian que nos funciona bastante bien, presupongo que internamente realiza acciones simliares a nuestro script de python:

https://plugins.atlassian.com/plugin/details/472949

Por supuesto tenemos repositorios de Git para control de versiones, ramas de desarrollo, etc..., pero la integración que nos ofrece XCode con Git nos es suficiente para trabajar con el.

Y si usamos sistema de integración continua desde hace más de un año y gestión de versiones desde el inicio.

De hecho es que sin esto no me imagino hacer un desarrollo agil de un producto. Yo no soy quien se encarga de crear las versiones, soy quien las pido asi que presupongo que si se hubieran econtrado con algo serio lo sabria de las scrums diarias.

No se, yo ya te digo que creo 100% lo que comentas que puede costar más o menos recursos firmarlo. Pero para mi es tremendamente util. Me permite realizar la parte que más me interesa del QA (testeo manual) de forma externalizada en otros paises (con la reducción de costes que eso supone) sin sufrir que el cliente acabe viendo su aplicación antes de que ni siquiera se la presentemos. Esto para los APKs si lo quiero tenemos que hacerlo nosotros internamente, reinventar ruedas y tal...

PD: Me confirman que este año todavia nos quedan y esta apunto de terminar, licencia de $299 en lugar de 99$ para el que viene.

spyro512

Llego tras un par de días sin prestar atención a este thread, veo los tochacos, me quedo así

y me voy

4
Charlies

Despues de leerme todos los tochacos técnicos sobre demas parrafarnalia desviando la atención principal de las preguntas de usuarios como granaino alegando que estan contestadas con frases sin fundamento y sin argumentar para tapar la mancha.... viene mi tochopost!

Porque han actualizado ahora Skype en android para mejorar el uso de la batería de android y sobretodo en android 2.3?

Porque han actualizado ahora Skype para mejorar la carga de esta en segundo plano?

<ironic>Supongo que Skype no sera una aplicación la cual siempre esta encendida en segundo plano para que pueda hacer llamadas desde contactos usando el skype, o no estara encendida en segundo plano siempre para poder recibir llamadas y chat por skype? usando la api de contactos o la de llamadas. <ironic/>;

Seguramente todos podemos deslogearnos desactivandola y apagandola y hacer que no consuma recursos... pero opala! resulta que aunque este apagada sigue apareciendo en los contactos... y aunque este apagada sigue apareciendo en los procesos!! &quot;la versión anterior así lo hacia&quot;.

Este ejemplo es equiparable a hootsuite, a facebook, a whatsapp, a servicio de mensajeria (Gtalk) a Whatsapp (en otra máquina virtual con sus timings diferentes de push y de consumo de datos), calendario, cada una de estoas consumiendo unas 20 megas de ram, haciendo que un teléfono en stand by con las aplicaciones instaladas, aunque uses el task killer o cierres las aplicaciones, tenga unas 200 megas de ram minimo consumido por servicios de aplicaciones Básicas de cualquier teléfono.

Entonces como es que Hootsuite, una aplicacion que tengo en el samsung galaxy s que no lo tengo ni con tarjeta 3g puesta, solo con wifi para test, me esta consumiendo un 5% de bateria?

y encima, una aplicación como hootsuite, tiene un permiso que bueno... quien me diga que esta revisando estos permisos constantemente.. miente!! que mirar que interesante! he hecho un pequeño video del permiso en si!

esta aplicación tiene permisos para entrar automáticamente al iniciar el teléfono y tiene permisos para que el teléfono no entre en suspensión... que hootsuite acaso es un navegador gps para evitar que no entre en suspensión, o es un servicio vital para el teléfono para que se encienda el solito y coma recursos al encender el teléfono?

Esto también pasa en facebook en skype, y si sumamos todas y sus 5% de bateria respectivos...

El google latitude en android esta constantemente buscando la posición de el móvil android, supongo que esto comerá recursos mínimamente. ya que tiene que tener este servicio abierto. Este servicio, aplicacion, lo que sea, siempre está activo consumiendo una parte de memoria del teléfono una parte de bateria con el gps y wifi y una parte de bateria con la cpu y 3g/wifi enviando nuestra posición... Si intentamos cerrar esta aplicación con el task killer propio del teléfono.. huala NetworkLocationService esta activado, lo apagamos a voluntad de el usuario y automaticamente en menos de 5 min esta abierto de nuevo a voluntad del teléfono...
Totalmente Libre y configurable si señor!....

en ios, hay una opción en ajustes para hacer que no te mire en segundo plano la localización. Basicamente controlas los permisos de esta para ver que hace en segundo plano, y también puedes desactivar esto desde la aplicación...

no sé que opinais vosotros.... pero es bastante claro.

#5503 todos los procesos de android consumiran mucha ram, estos procesos hará que apenas tengas ram para tener 1 aplicación abierta en segundo plano o dos, todas las aplicaciones tienen permisos para poderse abrir cuando ellas les apetezca, estas se abriran y se mataran entre ellas porque tienen permisos, si no tienes un cohete atómico de móvil tendrás un teléfono que esta constantemente cerrando y abriendo aplicaciones y consumiendo CPU haciendo que el teléfono dure la batería 2 horas y reviente.

Si tienes el teléfono ligerito sin nada instalado, ni juegos ni sincronizaciones te irá bien. Recuerdo que en ios puedes tener instalados 3000 programas que no ralentizará lo más mínimo.

PD: http://blog.flurry.com/bid/79061/App-Developers-Bet-on-iOS-over-Android-this-Holiday-Season

1 respuesta