2013-06-05 12 views
7

sto lavorando quota display tavoletta con più di una tabella (tutto radicate) collegato tramite WiFi, sto usando il seguente approccio (tutto all'interno un filo):visualizzazione quota Android su altri dispositivi

1 - Prendo uno screenshot.

Process sh = Runtime.getRuntime().exec("su", null,null);  
OutputStream os = sh.getOutputStream(); 
os.write(("/system/bin/screencap -P " + "/sdcard/test/img.png").getBytes("ASCII")); 
os.flush();   
os.close(); 
sh.waitFor(); 

2- comprimere l'immagine di schermata.

Bitmap mBitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + "/test/img.png"); 
OutputStream outputStream = null; 
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/test/img2.png"); 
outputStream = new FileOutputStream(file); 
mBitmap.compress(Bitmap.CompressFormat.JPEG, 15, outputStream); 
outputStream.flush(); 
outputStream.close(); 

3- socket aperto e invia l'immagine compressa un'altra compressa.

questo funziona, ma il mio problema è il ritardo di visualizzazione in altri tablet ci sono voluti 4-5 sec per aggiornare il nuovo display, non v'è alcun approccio meglio averlo visualizzazione in tempo reale?

+0

Credo che si sta chiedendo un po 'troppo, si è limitato alla rete Wi-Fi, la lettura di un'immagine dal vostro SD, comprimendolo e inviarlo. Dall'altra parte sta anche facendo un sacco di processi, immagino, che anche se lo si ottimizza, non ti concederà più di un secondo. – Rigotti

+0

@Rigotti Ok ... c'è qualche altro modo per raggiungere quello di cui ho bisogno? –

risposta

3

Se non strettamente, questa funzione richiederà molto tempo. È collegato al ciclo di vita del processo, all'IPC e al file system lento. È necessario dare un'occhiata a this library o allo source code of /system/bin/screenshot util. È necessario riutilizzare le funzioni native (linguaggio c) dalle origini e non è un'attività banale.

Problemi correlati