lunedì 10 aprile 2017

Yotaphone 2. Ottimizzare le app per lo schermo EPD

Cercando in giro, e continuando ad affidarmi al forum di XDA-Developers, ho trovato una soluzione per ottimizzare l'uso delle applicazioni sullo schermo EPD (lo schermo posteriore) usando Android 6.
Nella cartella /root/sdcard/Android/epd_optimizer si trovano questi file.
si tratta di preimpostazioni di fabbrica per le applicazioni già presenti, le altre useranno i valori di default, che non sempre vanno bene.
Tra i file presenti c'è readme.txt in cui sono presenti le varie voci che si possono utilizzare.
Di seguito la mia traduzione di questo file.

Si tratta di un sistema che permette di regolare e modificare i parametri di aggiornamento delle finestre sullo schermo EPD con l'utilizzo di file di configurazione. Tale file può essere modificato dall'utente.
Tutti i file di configurazione si trovano nella cartella di archiviazione esterna del dispositivo  / Android /epd_optimizer/ 
Il file di configurazione deve avere estensione .cfg e il nome del file deve corrispondere al nome del pacchetto dell'applicazione da configurare.
File di configurazione - è una stringa JSON con campi predefiniti. È possibile trovare la configurazione campione nel file sample.txt presente nella stessa cartella.
Di seguito la spiegazione dei campi presenti:

  • name - nome della configurazione
  • description - descrizione della configurazione
  • update_type - tipo di aggiornamento dello schermo che sarà utilizzato quando il contenuto viene modificato. I valori possibili sono:
    • MONOCHROME
    • MONOCHROME_FINE
    • GRAYSCALE
    • GRAYSCALE_FINE
    • GRAYSCALE_READER
    • GRAYSCALE_READER_R
    • GRAYSCALE_READER_D
  • dithering - tipo di algoritmo che verrà utilizzato per ottimizzare la conversione dei colori in 16 toni di grigio. I valori possibili sono:
    • NONE
    • ATKINSON
    • ATKINSON_BINARY
    • FLOYD_STEINBERG 
    • FLOYD_STEINBERG_BINARY
    • BURKES
    • BURKES_BINARY
    • STUCKI
    • STUCKI_BINARY
    • SIERRA_LITE 
    • SIERRA_LITE_BINARY
  • update_timeout - timeout di aggiornamento dell'intero schermo dopo il cambiamento del contenuto. Utilizzare -1 per disattivarlo

  • sharpening - sharpening dei contenuti, modifica il contrasto sui bordi
  • contrast - contrasto del contenuto
  • brightness - luminosità del contenuto
  • stretch_black - valore che determina fino a che livello di grigio si deve considerare per nero. Per esempio inserendo 50 tutti i colori da 0 a 50 saranno considerati neri. I valori possibili sono da 0 a 250
  • stretch_white - valore che determina fino a che livello di grigio si deve considerare per bianco. Per esempio inserendo 200 tutti i colori da 200 a 255 saranno considerati bianci. I valori possibili sono da 0 a 250
  • regional_update - true se non è necessario aggiornare tutto lo schermo quando il suo contenuto cambia; false per il contrario
  • color_inversion - true se è necessario invertire i colori del display per un dark theme
  • activities_only - true se è necessario trattare la configurazione delle solo attività  elencate, ignorando livello del pacchetto config. (vedi punto successivo)
  • activities - array di attività dell'applicazione. Contiene oggetti con la stessa costruzione e si applica alle attività specifiche di una singola applicazione configurabile. Il nome di tale oggetto deve essere il nome della classe di attività senza pacchetto app.
Tutta la configurazione si applica con logica a cascata. Ad esempio, se un'applicazione è suddivisa in attività, ma per esse non sono state impostate singoli file di configurazioni il sistema utilizzerà i parametri di configurazione dell'applicazione. Se questi parametri mancano per l'applicazione il sistema utilizza parametri definiti nel file master.cfg. Se questo file viene eliminato, il sistema utilizzerà i parametri che vengono memorizzati all'interno framework Android.

Ad esempio un utente ha creato un file di configurazione per ottimizzare la vista del'applicazione Whatsapp sul display EPD.
Il file lo ha chiamato com.whatsapp.cfg e lo ha inserito nella cartella /root/sdcard/Android/epd_optimizer :

{
"name": "com.whatsapp",
"description": "WhatsApp",
"dithering": "ATKINSON_BINARY",
"update_timeout": -1,
"sharpening": 2,
"contrast": 0,
"brightness": -5,
"stretch_black": 50,
"stretch_white": 220,
"regional_update": false
}

Come si può vedere non è necessario utilizzare tutti i parametri.

Una volta creato o modificato un file di configurazione sarà necessario riavviare il telefono per vederlo in uso.

Sul forum xda_developer è stato creato un apposito thread per studiare, testare e condividere tali configurazioni.
Io cercherò di seguirlo e di aggiornare questo post.

Se voi riuscite a fare qualche prova e a trovare delle configurazioni utili fatemi sapere, aggiornerò il post con le vostre trovate.