Android Porting on a Mobile Device
git commit --author
“Michael Trimarchi
<[email protected]>”
www.penguin-software.com
Simboli
Parte abbordabile
Parte che presenta alcune difficoltà
Parte estremamente difficile
www.penguin-software.com
Che cos'è Android?
E' uno stack completo per mobile devices
●
Sistema operativo
●
Stack applicativo
●
Un tool completo per sviluppo applicativo
www.penguin-software.com
Perchè Android (1)?
Grande comunità di sviluppatori
● Codice opensource
● Bassi tempi di sviluppo e di mantenimento
● Framework integrato kernel/libraries/userspace
● Sviluppo semplice di applicazioni e servizi
●
www.penguin-software.com
Perchè Android (2)?
●
●
●
Personalizzazione del prodotto
Bassi investimenti
Utilizzo del Market per dowload applicazioni
–
–
●
●
Google market (richiede un accordo con google)
Altri market
Reingegnerizzazione veloce di un vecchio
prodotto
Nasce per il mercato consumer mobile
ma può essere utilizzato in ambiti industriali
www.penguin-software.com
Strumenti di sviluppo (1)
Kernel e bootloader
●
Git
–
●
Version Control System
Editor di testo
–
–
–
Vi
Vi
… emacs
www.penguin-software.com
Strumenti di sviluppo (2)
Android Middleware
●
●
Repo
Git
–
●
Editor di testo
–
–
●
●
Version Control System
Vi
… emacs
Gdbserver e gdb
Dalvik debug monitor
www.penguin-software.com
Strumenti di sviluppo (3)
Android Application level
●
●
●
Eclipse
Android eclipse plugin
Android emulator
www.penguin-software.com
Ho il device. Quanto costa
(diamo una idea)?
●
Prima prototipazione (2 mesi uomo)
–
●
Chiusura delle funzionalità base (2/3 mesi uomo)
–
●
Servizi di base dell'interfaccia Android
Wifi, GSM sensori
Chiusura progetto
–
Test estensivo del prodotto e risoluzione di
problematiche non rilevate nella fase di sviluppo
software
www.penguin-software.com
Ho il device. Come si parte (1)?
●
●
●
●
Schematici del dispositivo
Datasheets dei componenti
BSP dal produttore del micro del vostro device
(riferimento nella fase di porting)
Flashing tool
–
●
●
serve qualcosa per caricare il software sul device
Riferimento al team di progettazione hardware
Connettore Jtag e porta seriale (console su jtag e/o
su seriale)
–
Inizialmente l'output del device viene inviato su seriale
o su porta Jtag
www.penguin-software.com
Come fare il Porting (1)? Lo stack
www.penguin-software.com
Come fare il Porting (2)?
●
Porting del Kernel di Linux
●
Supporto del middleware di Android
●
Test delle applicazioni base e limatura delle
performance del sistema
www.penguin-software.com
Kernel Porting (1)
●
Avviare il kernel di linux (bootloader)
–
–
–
●
U-boot
Redboot
Qi
Primo supporto dei device driver
–
–
–
–
–
–
Console
Voltage regulator
Video
Keyboard
Touchscreen
Power Gauge (battery)
www.penguin-software.com
Kernel Porting (2)
●
Problematiche di suspend e resume
●
Usb gadget (android console e usb storage)
●
Wifi & GSM (call and data)
●
Camera support
●
Sensors support
www.penguin-software.com
Il primo avvio (bootloader shell)
www.penguin-software.com
Il primo avvio (kernel boot)
www.penguin-software.com
Middleware porting
●
Creazione dei moduli di interazione con i driver
linux
–
–
–
–
–
●
●
Modulo sensori
Radio Interface Layer (Voce e dati)
Modulo Audio
Modulo di accelerazione per le operazioni 2D
...
Integrazione delle librerie di accelerazione grafica
del produttore (opengl-es library)
Integrazione della parte encoding/decoding video
in Opencore
www.penguin-software.com
Booting Android minimale
●
●
●
●
Display
Keyboard
Touchscreen
...fake battery support
www.penguin-software.com
Problematiche di Porting (1)
●
Tempi
–
●
Problemi hardware
–
–
–
●
I tempi sono solitamente stretti ed è necessario sempre
avere un'alta qualità del software prodotto
Tempi lunghi per la verifica di una periferica dovuto ad
un problema di progettazione hardware
Ricerca di una soluzione software
… fix del PCB e nuovo test sul prototipo
Errata sul alcuni componenti
–
Implementazione dei workaround suggeriti dal
produttore
www.penguin-software.com
Problematiche di Porting (2)
●
Bug fix nel kernel di linux
–
–
●
●
Periferiche del micro non completamente testate
Mancanza di qualche feature
Implementazione di algoritimi per sopperire a
mancanze hardware
Bug fix del middleware android
www.penguin-software.com
Fase di studio (esempio reale)
●
Documento di stima
●
Individuazione delle risorse e degli skills
●
Stesura del gantt di ogni attività e milestone
●
Stima del costo del progetto
www.penguin-software.com
Documento di stima
●
Project AIM
–
●
Project Needs
–
●
contiene esattamente i requisiti funzionali del prodotto
individua cosa è necessario per completare il progetto
Milestones
–
suddivide il progetto in fasi
www.penguin-software.com
Risorse & Skills (porting lowlevel)
●
●
Un team di sviluppatori del kernel (2 o 3)
Skills
–
–
–
–
–
Conoscenza dell'architettura di riferimento
Subsytem PM di linux
Block subsystem
SPI, I2C, input subsytem skills
Graphics subsytem
www.penguin-software.com
Vediamo un gantt
www.penguin-software.com
Dal gantt al costo di produzione
●
Il gantt fornisce informazione sui tempi
●
Dà l'allocazione delle risorse
●
Costo delle attività
●
Criticità delle attivitità
●
Il rough cost può essere calcolato dal costo orario
applicato alle attività
www.penguin-software.com
Domande
www.penguin-software.com
Contact info
http://www.penguin-software.com/
mailto: [email protected]
www.penguin-software.com
Scarica

Problematiche di Porting (1)