Sviluppo tablet per un sistema dedicato

3

Ho bisogno di prendere una decisione architettonica per lo sviluppo (in realtà il porting) della mia soluzione integrata su un tablet.
La scelta arriva a Ubuntu o Android, quindi ho alcune domande specifiche per aiutarmi a decidere.

  • Su Android, è possibile sviluppare applicazioni esterne a Dalvik, usando Python? In caso affermativo, posso accedere all'hardware in questo modo, senza le API fornite dall'SDK di Android?

  • Su Android, posso controllare il processo ' core_affinity per associare un processo a un singolo core? E posso usare isolcpus per isolare altri processi da quel nucleo rendendolo un core (quasi) dedicato per un processo? Questo è possibile in linux regolare, non so se può essere fatto in Android.

  • Su Ubuntu, quanto controllo sull'HW ho all'esterno dell'SDK di Ubuntu?

posta bosnjak 21.03.2014 - 08:48
fonte

2 risposte

4

Inizia con la proposizione che un'applicazione ha un'interfaccia utente. Come vuoi che si guardi e si comporti? Hai 4 scelte.

  1. Android nativo. Stai per scrivere Java, ma puoi estenderlo in C ++ usando NDK.
  2. HTML5 / Javascript. Probabilmente scriverà Javascript, ma puoi estenderlo usando un server o un wormhole.
  3. renderer. Puoi scrivere qualsiasi lingua che ti piace perché stai per disegnare i tuoi widget su una superficie di rendering e non saranno nativi.
  4. Il devkit di qualcuno. Alla fine farà uno dei precedenti. Xamarin, Qpython, QT, ecc. Qualunque cosa.

C'è molto da leggere ad esempio ( link ). Non importa nulla finché non decidi quale tipo di interfaccia utente desideri. Se vuoi essere nativo, stai scrivere Java.

In risposta alle tue domande:

  1. Sì, è possibile scrivere ed eseguire il codice, in pratica tramite NDK o simili. Non aiuta con l'interfaccia utente.
  2. Non so, ma una volta arrivato all'NDK puoi fare più cose.
  3. Ubuntu non è Android. Lo lascerò agli altri.

Riguardo all'NDK, posso dirti che fornisce un ambiente di sviluppo C ++ ragionevolmente completo. La maggior parte (ma non tutte) delle funzionalità di libreria C ++ standard sono fornite, oltre a un set di API che si agganciano alle API del processo Android (in modo che sia possibile scrivere Attività interamente in C ++) e una capacità JNI.

Ci sono API del dispositivo (cose come l'accelerometro e il GPS) a cui è richiesto l'accesso da Java, quindi passiamo a JNI. Potresti essere in grado di accedere ai dispositivi direttamente da C ++, ma mi aspetto che potresti perdere la portabilità (tra i produttori) e le funzionalità di livello superiore.

Sotto ci sono i driver di dispositivo, un HAL, un kernel Linux e altre cose interessanti. Se è lì che vuoi giocare, c'è molto da leggere: link .

    
risposta data 24.03.2014 - 10:34
fonte
0

Se il dispositivo in questione è un tablet personalizzato o generico su una piattaforma convenzionale (x86, ARM ...), quindi chiediti cosa ti serve esattamente da esso. Hai davvero bisogno di un'intera distribuzione Ubuntu o il tablet si avvierà direttamente nella tua applicazione? In tal caso, mi occuperei di una distribuzione Linux di base incorporata che si prenderà cura dell'hardware e dell'interfaccia QT. Se sul dispositivo è in esecuzione Android, è necessario utilizzare il toolkit e l'API appropriati per il sistema operativo Android. Potresti anche andare con Ubuntu in piena regola e sviluppare un'app web. In tal caso tutto ciò di cui hai bisogno è un browser web e puoi eseguirlo praticamente su qualsiasi tablet, telefono o PC.

    
risposta data 27.03.2014 - 06:34
fonte

Leggi altre domande sui tag