Add memorizzazione

This commit is contained in:
Raffaele Mignone 2020-07-10 12:48:24 +02:00
parent 7d2720c952
commit 58743a8bd5
Signed by: norangebit
GPG Key ID: F5255658CB220573
2 changed files with 43 additions and 0 deletions

19
bib.bib
View File

@ -24,6 +24,15 @@
file = {/home/norangebit/Zotero/storage/RDCN2EQA/android-beacon-library.html}
}
@online{AndroidJetpackAndroid,
title = {Android {{Jetpack}} | {{Android Developers}}},
url = {https://developer.android.com/jetpack},
urldate = {2020-07-10},
abstract = {Jetpack is a suite of libraries to help developers follow best practices, reduce boilerplate code, and write code that works consistently across Android versions and devices so that developers can focus on the code they care about.},
file = {/home/norangebit/Zotero/storage/X2QST32B/jetpack.html},
langid = {english}
}
@online{BroadcastsOverview,
title = {Broadcasts Overview},
journaltitle = {Android Developers},
@ -51,6 +60,16 @@
file = {/home/norangebit/Zotero/storage/4SV9VW2H/installation.html}
}
@online{RoomPersistenceLibrary,
title = {Room {{Persistence Library}}},
journaltitle = {Android Developers},
url = {https://developer.android.com/topic/libraries/architecture/room},
urldate = {2020-07-10},
abstract = {Learn to use the Room Library},
file = {/home/norangebit/Zotero/storage/ZU9BFHZW/room.html},
langid = {english}
}
@online{ServicesOverview,
title = {Services Overview},
journaltitle = {Android Developers},

View File

@ -213,7 +213,31 @@ Per questo motivo si è scelto di utilizzare il livello LOW che permette di rile
## Memorizzazione
In base alla modalità di funzionamento l'applicazione deve memorizzare diversi tipi di dati.
La gestione della persistenza è stata realizzata attraverso la libreria ***Room*** [@RoomPersistenceLibrary] una componente di *Jetpack* [@AndroidJetpackAndroid], la suite di librerie sopportate da *Google*.
*Room* fornisce un layer astratto che permette di operare più facilmente con il database *SQLite* sottostante.
La memorizzazione dei contatti è avvenuta tramite lo schema riportato nel @lst:contact-data.
Questi dati vengono conservati solo nella modalità di funzionamento *B* e *C* poiché nella modalità *A* il contatto viene comunicano immediatamente al server per cui non è necessaria una memorizzazione locale.
``` {.markdown #lst:contact-data caption="Schema utilizzato per la memorizzazione dei dati di contatto."}
- `id`: Int [PrimaryKey | AutoGenerate]
- `uuidReceiver`: String
- `uuidSender`: String
- `rssi`: Int
- `txPower`: Int
- `timestamp`: Long
```
Nella modalità *C* è necessario memorizzare anche le tck (si veda la @sec:tck per maggiori dettagli) utilizzate nel corso del tempo.
Oltre alla memorizzazione della tck, tramite un array di byte, è necessario memorizzare anche l'indice associato ad essa e il timestamp di primo utilizzo.
Lo schema utilizzato per la memorizzazione di queste informazioni è riportato nel @lst:tck-data.
``` {.markdown #lst:tck-data caption="Schema utilizzato per la memorizzazione delle tck."}
- `index`: Short [PrimaryKey]
- `timestamp`: Long,
- `tck`: ByteArray
```
## Rete