Ultima modifica da un moderatore:
Nei prossimi capitoli verranno trattati argomenti che andranno dallo sviluppo di applicazioni fino al reversing. Inutile dire che per procedere sono richieste delle conoscenze. Questa vuole essere una piccola introduzione che fornisce alcune informazioni necessarie per continuare la lettura e per capire quanto verrà detto. La presene introduzione non si può definire in alcun modo sostitutiva alla documentazione ufficiale. Tutte le nozioni serviranno solo per capire meglio quanto verrà detto in seguito.
Android != Linux
Capita spesso di sentire e di leggere guide dove si descrive Android come variante di linux. Android è si basato su kernel 2.6 (versione 3.x da Android 4.0) ma differisce dalle varie distibuzioni linux su più punti. Il motivo per cui è stato scelto questo kernel è semplice: portabilità, sicurezza e la funzionalità dello stesso kernel che essendo distribuito sotto licenze GPL permette l'integrazione di nuove funzionalità.
Android e Java
Altra cosa che erroneamente viene detta è che le applicazioni vengono sviluppate in Java code. Qui c'è da precisare una cosa se si sviluppa in Java scriviamo il sorgente che poi viene compilato in Java bytecode ed eseguito sulla JVM su Android non succede questo, scriviamo il sorgente in Java poi viene compilato in Java bytecode che poi viene ricompilato nuovamente in bytecode per Dalvik usando l'apposito compilatore. Nella figura si capisce meglio la differenza.
Allego un immagine tratta da wikipedia che spiega in maniera piuttosto semplice le differenze
Android != Linux
Capita spesso di sentire e di leggere guide dove si descrive Android come variante di linux. Android è si basato su kernel 2.6 (versione 3.x da Android 4.0) ma differisce dalle varie distibuzioni linux su più punti. Il motivo per cui è stato scelto questo kernel è semplice: portabilità, sicurezza e la funzionalità dello stesso kernel che essendo distribuito sotto licenze GPL permette l'integrazione di nuove funzionalità.
- Daemon
- HAL
- Layer Nativo
- Librerie
Android e Java
Altra cosa che erroneamente viene detta è che le applicazioni vengono sviluppate in Java code. Qui c'è da precisare una cosa se si sviluppa in Java scriviamo il sorgente che poi viene compilato in Java bytecode ed eseguito sulla JVM su Android non succede questo, scriviamo il sorgente in Java poi viene compilato in Java bytecode che poi viene ricompilato nuovamente in bytecode per Dalvik usando l'apposito compilatore. Nella figura si capisce meglio la differenza.
- Dalvik
- Art
- Dalvik Vs Art
Dalvik (JIT) | Art (AOT) |
|
|
- Android runtime (Dalvik,Art) vs Java runtime