Android Opera è un browser web prodotto da Opera Software, disponibile sia per ambienti desktop che per terminali “mobile” con la versione denominata mini.
Con la nuova release di Opera mini, é stato aggiunto il supporto per il sistema operativo Android.
Opera è nato da un progetto di ricerca della compagnia telefonica norvegese Telenor e si è separato da essa con la nascita, nel 1995, della società Opera Software dedicata esclusivamente al suo sviluppo.
Opera Mini promette di velocizzare il download delle pagine web e di rendere più entusiasmante la navigazione tramite funzionalità appositamente studiate per gli schermi di ridotte dimensioni.
Il browser per aumentare la velocità di download delle pagine utilizza una tecnica sofisticata di compressione, i siti piu’ utilizzati vengono infatti compressi da appositi server remote e serviti successivamente al browser che ne fà richiesta.
Nel video é possibile vedere il browser in azione sul G1, viene inoltre mostrato come scaricare il software utilizzando Android Market(lo store di casa google)
G1 é capace di gestire l’input multi-touch, i fans IPhone rimprovono spesso al G1 questo limite a questo dispositivo. Il multi-touch è una tecnologia di schermo tattile che rappresenta una evoluzione di quella touch-screen. Si differenzia da essa per il fatto che è sensibile al tocco in più punti diversi della superficie contemporaneamente(wikipedia).
Un abile sviluppatore è riuscito a scovare alcune righe di codice commentato nel driver del touch-screen del G1, lo sviluppatore una volta scommentato il codice ha ricompilato il kernel rimpiazzando il file boot.img
Nel video è possibile vedere il multi-touch in azione sul terminale Android G1.
HTC nelle specifiche del terminale, indica che il G1 ha touch-screen singolo, alcune fonti attribuiscono questa auto-limitazione dovuta al brevetto di cui Apple detiene i diritti.
Per chi volesse maggiori dettagli tecnici, consiglio la lettura di questo post.
Android utilizza SQLite come database, SQLite è una libreria che implementa un database engine transazionale, questo database ha una serie di caratteristiche che lo rendono particolarmente adatto all’utilizzo su dispositivi di tipo “embedded”.
Self-contained
si definisce self-contained in quanto richiede un supporto minimale alle librerie esterne e al sistema operativo
servless
Generalmente un database tradizionale è implementato come un processo server che viene utilizzato tipicamente tramite un protocollo come TCP/IP, SQLite non lavora in questo modo, il processo utilizzatore del servizio accede direttamente sia in scrittura che in lettura ai file presenti sul disco, non esiste infatti un processo intermediario.
Questa modalità operativa consente di utilizzare questo database senza la necessità di installare e configurare nessun processo sul sistema operativo ospitante, il rovescio della medaglia è quello di avere un minor controllo in generale sulle attività dell’utilizzatore(client) e una minore sicurezza in termini di robustezza e corruzione dei dati
zero-configuration
SQLite come dicevamo non richiede una fase d’installazione ne una procedura di setup
DroidDraw è un tool(gpl2) per costruire l’interfaccia grafica di Android, un progetto molto interessante che in soli 2 mesi ha avuto più di 6000 download.
Disegnata l’interfaccia è possibile generare l’XML necessario da utilizzare nel progetto Android.
Il tool eseguibile anche tramite Applet, consente di selezionare i vari componenti e posizionarli sopra il canvas.
Il tutorial fornisce alcuni esempi ed è una valida guida per comprendere lo sviluppo della GUI di Android.
La notizia è ufficiale!! Android Mobile è disponibile sullo smartphone open source OpenMoko.
OpenMoko di FreeRunner è un smart phone con touch screen basato su sistema operativo GNU/Linux, anche se esteticamente discutibile vanta un hardware di tutto rispetto, di seguito alcune caratteristiche:
Topploy VGA, 16 bit color depth, 480 x 640 pixels, 2.84″ diagonal screen size
WiFi 802.11 b/g
A-GPS or GPS
GSM/GPRS
3 axis sensing accelerometer
Touch screen over LCD is primary data entry mechanism
Bluetooth (CSR BC4 or later solutions)
Weight: ~133 grams with battery.
4-in-1 laser pen
512MB microSD Card (SanDisk/Transcend)
1x USB cable Standard A to mini-B connector
120.7 x 62.0 x 18.5 mm (4.752 x 2.441 x 0.728 inch)
Il prezzo indicativo è di circa 399$ per il momento lo smartphone è acquistabile solamente online.
Interessante l’articolo di luglio 2008 del Corriere, unico neo da segnalare per il momento è che la wi-fi non sembra funzionare con questa versione(rivista) di Android.
Nel precedente articolo abbiamo visto come definire il menu, procediamo con il codice necessario per agganciare delle azioni alle diverse voci del menu precedentemente creato.
Sempre nella classe LunarLander.java è presente un altro metodo onOptionsItemSelected(MenuItem item)
questo metodo ridefinito dalla classe padre Activity viene richiamato quando l’utente seleziona una qualsiasi voce del menu.
Vediamo in dettaglio il comportamento della prima voce di menu’
switch (item.getItemId()) {
case MENU_START:
mLunarThread.doStart();
return true;
tramite uno switch sull’id selezionato, viene richiamata l’azione corrispondente, in questo caso viene avviato il gioco, vedremo più avanti il comportamento in dettaglio, per il momento procediamo analizzando il primo metodo richiamato della classe LunarLander quando l’activity viene creata, stiamo parlando del metodo onCreate(Bundle savedInstanceState).
Il primo metodo(requestWindowFeature) serve a disabilitare il titolo della finestra.
Il secondo metodo setContentView, indica al sistema di utilizzare il layout definito a livello XML, anche in questo caso la risorsa viene recuperata con la classe “speciale” R. Il Layout
Android ha la possibilità di sfruttare due modalità per la definizione dell’interfaccia, la prima mediante codice java, in uno stile simile alle librerie Swing di Java Sdk e l’altro decisamente più semplice ed intuitivo mediante tag xml.
Nella definizione XML del Layout, possiamo notare un ViewGroup(FrameLayout ) che definisce
il contenitore principale degli elementi grafici. Il contenitore principale può al suo interno contenere altri contenitori o elementi grafici.
Per assegnare un ID ad un elemento si utilizza la sintassi @+id/nome_del_id,
questo ID assegnato sarà recuperabile successivamente tramite la classe R.
In questo caso specifico, viene utilizzata una classe LunarView per la rappresentazione a video del gioco vero e proprio. Tornando al metodo onCreate, tramite la chiamata R.id.lunar, siamo in grado di prendere il riferimento alla classe LunarView.
Successivamente prendiamo dalla classe il riferimento
al thread che si occuperà dell’esecuzione del gioco, settiamo infine uno stato al thread.
Tornando al menu vediamo che per far partire il gioco viene
richiamata una funzione proprio su questo thread recuperato(mLunarThread.doStart();)