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