[Gulli] Io sono un tecnico non un...programmatore

Fabrizio Carrai fabrizio.carrai@gmail.com
Lun 7 Gen 2013 18:53:48 CET


Non mi ero posto la domanda, ho googolato un pò ed ho visto che ti sei dato
la risposta da solo: Davlik [1].
Il concetto della Virtual Machines può sembrare onerosa, ma in effetti è
ampiamente usata. Lo fa il Java e lo faceva il Pascal in tempi remoti.
I vantaggi di produrre un solo codice che "girà" su più piattaforme sono
comunque alti: chi produce software fa una sola versione, chi vende
hardware è invitato a sviluppare macchine sempre più performanti (+$$$ per
tutti, insomma).

Si perde in performance, ma vale la pena preoccuparsi ? A parte che le VM
sono particolarmente efficenti (vedi anche le discussioni in [1], le
applicazioni che generalmente girano su Android non richiedono grosse
risorse (videogiochi a parte).

Insomma, il gioco VALE la candela.

F


[1] http://en.wikipedia.org/wiki/Dalvik_(software)


Il giorno 07 gennaio 2013 11:26, Anubis Wolf <
conan.edogawa.detective@gmail.com> ha scritto:

> Bene ragazzi, come da oggetto (citazione ovvia di McCoy), ho un
> dilemma che riguarda la programmazione, una semplice curiosita' che
> non riesco a levarmi dalla testa da quando ho visto il PC nuovo di
> Andrea, un Lenovo, con cpu Intel montare Andorid x86 e far girare
> TUTTE le applicazioni native per Android.
>
> Quindi se qualcuno vuole aiutarmi a risolvere l' arcano, ne sarei molto
> felice.
>
> Partiamo dalla teoria, le applicazioni sono compilate per girare su
> una certa architettura, ad esempio x86, AMD64, ARM.
> Le applicazioni x86 sono le uniche che possono girare sia su x86 che
> su AMD64, perche' quest' ultima architettura e' costruita in modo da
> permettere, in hardware, l' esecuzione di codice x86.
>
> Ma un programma scritto per x86 NON PUO' girare su ARM, ne viceversa.
>
> Pero' i programmi scritti per Android, che notoriamente gira su ARM,
> funzionano perfettamente su Android x86 su x86 (Intel in questo caso),
> come e' possibile ?
>
> L' unica soluzione che ho pensato all' arcano e' che Davlik c' entri
> qualcosa, una sorta di layer "uniforme" per tutte le applicazioni,
> indipendente dall' architettura, a cui le applicazioni si appoggiano e
> vengono eseguite. In modo molto simile al Java (da cui in realta'
> Davlik e' dervato). Non so, pero', se questa e' solo una mia
> elucubrazione o e' veramente cosi', qualcuno ne conosce la risposta ?
>
> Se fosse realmente cosi', pero', nascono due grossi problemi e un
> vantaggio. Il primo e' la complessita' del sistema, il secondo e' l'
> enorme richiesta di risorse hardware per gestire tutto l' accrocchio,
> visto che delle applicazioni compilate nativamente per l' architettura
> girerebbero richiedendo frazioni di queste risorse...mentre il
> vantaggio e'...che le applicazioni in questo caso sarebbero scritte in
> un liguaggio ad altissimo livello e quindi sarebbe abbastanza semplice
> da fare. Ma anche di questo non sono sicuro, non sapendo programmare
> per Android.
>
> <modalita' folle >ON</modalita' folle>
> Se avessi ragione mi chiedo una cosa...ci sono moltissimi terminali
> (smartphone, tablet, PC stick USB, schede sperimentali) dotati di chip
> piu' o meno potenti ARM11, ARM Cortex A8, ARM Cortex A9...fino a 1
> GHz, che purtroppo non stanno dietro alle attuali applicazioni per
> Android, basta guardare il mio smartphone, ha un ARMv6 (ARM 11), da
> 500 MHz, overcloccato a 690 MHz (solo quando sotto uso intensivo, e
> devo dire che l' overclook e' stabile, almeno) e se si apre anche solo
> Facebook e' inutilizzabile tanto e' lento.
> Dicevo, mi chiedo una cosa...sarebbe possibile, limitatamente a cio'
> che interessa e con un po' di ammattimento, ricompilare nativamente
> per l' architettura ARM in questione, sistema e applicazioni, sempre
> lasciando android, ma usando applicazioni scritte nativamente per ARM,
> e lasciando anche il layer di compatibilita' Davlik per le altre
> applicazioni e il market ?
> In questo modo l' intero sistema risulterebbe estremamente piu'
> leggero e veloce e le applicazioni "pesanti" girerebbero comunque
> senza problemi anche su hardware datato, mentre allo stesso tempo ci
> sarebbe accesso al market e alle altre applicazioni.
> <modalita' folle >OFF</modalita' folle>
>
> <modalita' ultra-folle >ON</modalita' ultra-folle>
> Magari, ancora meglio, un sistema compilato per quell' architettura e
> un programma scritto nativamente per la stessa architettura, che
> intercetti i programmi che il play store installerebbe (a quanto ne so
> l' installazione di un programma su Android e' quasi la copia del
> pacchetto APK, e poco piu'), e lo compilasse nativamente per quell'
> architettura, in modo che rimanga installato, ma compilato
> direttamente per ARM, e non che giri su Davlik (e credo che questo
> sarebbe estremamente piu' performante della compilazione JIT di
> Davlic, o no ? i programmatori che dicono ?)
> Se si trovasse la maniera di fare questo programma, e magari di
> proporlo sul playstore, probabilmente si farebbero dei bei soldini,
> visto che permetterebbe a chiunque di eseguire qualunque applicazione
> del play store (o magari anche di installarla da altre fonti), anche
> su smartphone e altri device "datati" che non supportano quella
> "normale" per Android o la supportano ma il sistema e' talmente lento
> da risultare inutilizzabile...come nel mio caso.
> <modalita' ultra-folle >OFF</modalita' ultra-folle>
>
> Grazie per le risposte.
>
> --
> By Anubis Wolf - Alias: Nicola Tobi
> --
> Mailing list info: http://lists.linux.it/listinfo/gulli
> Pagina web del GULLI: www.livorno.linux.it
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/gulli/attachments/20130107/1d3b3d7c/attachment.html>


Maggiori informazioni sulla lista Gulli