Directoris d’escriptura

El confinament d’aplicacions forma part del concepte de seguretat d’Ubuntu Touch. Les dades només es poden intercanviar entre aplicacions d’acord amb les polítiques d’AppArmor, principalment utilitzant el ContentHub. Dit això, les aplicacions només poden llegir i escriure fitxers que es troben en un dels tres directoris específics de l’aplicació explicats en aquesta guia.

Camins estàndard

A més de l’accés d’escriptura als directoris d’aplicacions explicats a continuació, l’aplicació pot escriure missatges de depuració al fitxer de registre d’aplicacions situat a /home/phablet/.cache/upstart/application-click-<nom-complet-app>_<nom-app><versió>.log. Per a afegir missatges al fitxer de registre, utilitzeu les funcions Depuració Qt.

Configuració

Camí: /home/phablet/.config/<fullappname>/

Aquest és el lloc on emmagatzemar els fitxers de configuració. L’aplicació de música, per exemple, emmagatzema la seva configuració a /home/phablet/.config/com.ubuntu.music/com.ubuntu.music.conf.

Memòria cau

Camí: /home/phablet/.cache/<fullappname>/

Aquest és el lloc on s’emmagatzemaran les dades per al seu ús posterior. La memòria cau també és utilitzada pel Content Hub. Els fitxers que s’han compartit amb l’aplicació de música, per exemple, es poden trobar a /home/phablet/.cache/com.ubuntu.music/HubIncoming/.

Nota

Les dades al directori de la memòria cau s’han de tractar com a temporals i l’aplicació encara hauria de funcionar normalment si aquest directori s’ha esborrat - la memòria cau de neteja es fa comunament per recuperar algun espai al dispositiu. No emmagatzemar la informació del compte d’usuari aquí :)

Dades de l’aplicació

Camí: /home/phablet/.local/share/<fullappname>/

Aquí és on la teva app emmagatzema qualsevol dada. L’aplicació de música, per exemple, emmagatzema les seves bases de dades a /home/phablet/.local/share/com.ubuntu.music/Databases/.

Ús de camins estàndard en C++

La capçalera Qt QStandardPaths proporciona les ubicacions d’escriptura de l’aplicació en C++:

#include <QStandardPaths>
...
QString configPath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
QString appDataPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
...

Atès que el valor de les cadenes QStandardPaths es decideix pel nom d’aplicació Qt, aquest ha de ser el mateix que el nom d’aplicació clickable.

Avís

Establir organizationName també canviarà els camins retornats per aquestes funcions - si heu de fer això, establiu-lo també al nom de l’aplicació clicable, en cas contrari els camins no funcionaran al dispositiu.

Ús de camins estàndard en QML

El mòdul Qt Qt.labs.platform proporciona les ubicacions d’escriptura de l’aplicació en QML:

import Qt.labs.platform 1.0
...
Label
{
    text: StandardPaths.writableLocation(StandardPaths.AppConfigLocation)
}
Label
{
    text: StandardPaths.writableLocation(StandardPaths.CacheLocation)
}
Label
{
    text: StandardPaths.writableLocation(StandardPaths.AppDataLocation)
}
...

Adoneu-vos que QStandardPaths retorna camins ('/phablet/home/...'), i QML StandardPaths retorna urls ('file:///phablet/home/...'). Això s’ha de considerar especialment si l’aplicació està compartint cadenes d’ubicació entre QML i C++.