Come sviluppatore o vendor di dispositivi mobile, potresti voler personalizzare le app presenti sul dispositivo Firefox OS al primo utilizzo per svariati motivi. Questo articolo spiega le differenti metodologie disponibili.
Le app nel codice sorgente di Gaia
Le app presenti in Firefox OS sono tutte contenute nel codice sorgente di Gaia, in una delle seguenti cartelle:
- gaia/apps/: trovi le app di default di sistema, quali il calendar, l'email, i setting, ecc.
- gaia/dev-apps: qui trovi le altre app, quali quelle incluse nel processo di personalizzazione
Se vuoi aggiungere o rimuovere delle app dalla tua build, potrai farlo nei seguenti modi che andiamo a descrivere.
Metodo a furza bruta
Il metodo a "forza bruta" è semplicemente quello di rimuovere (inteso come rimozione dalla tua alberatura di Gaia) le app che non vuoi, durante il processo di costruzione della build stessa.
Editing delle liste di configurazione
Un metodo più raffinato consiste nel modificare i file di configurazione apps-*.list
(li trovi in differenti sottocartelle all'interno della cartella gaia/build/config/, quali phone/
e tablet/
) definendo il path delle app che vuoi includere nella build. Per esempio, gaia/build/config/phone/apps-production.list contiene qualcosa di simile a:
apps/bluetooth apps/bookmark apps/browser apps/calendar apps/callscreen etc.
Puoi semplicemente includere tutte le app presenti nella cartella nel seguente modo:
apps/*
La logica per scegliere quale apps-*.list
utilizzare per la build (cioè la lista della app) è definita nel gaia/Makefile ed è qualcosa di simile a:
GAIA_DEVICE_TYPE?=phone ... GAIA_APP_TARGET?=engineering ... ifeq ($(MAKECMDGOALS), demo) GAIA_DOMAIN=thisdomaindoesnotexist.org GAIA_APP_TARGET=demo else ifeq ($(MAKECMDGOALS), dogfood) DOGFOOD=1 else ifeq ($(MAKECMDGOALS), production) PRODUCTION=1 endif ... ifeq ($(PRODUCTION), 1) GAIA_OPTIMIZE=1 GAIA_APP_TARGET=production endif ifeq ($(DOGFOOD), 1) GAIA_APP_TARGET=dogfood endif ... ifndef GAIA_APP_CONFIG GAIA_APP_CONFIG=build$(SEP)config$(SEP)apps-$(GAIA_APP_TARGET).list endif
Inizialmente, la variabile GAIA_APP_TARGET
è impostata a engineering
mentre la variabile GAIA_DEVICE_TYPE
è impostata a phone
, perciò la build di Gaia utilizzerà la lista di app definita in gaia/config/phone/app-engineering.list (che include le app di test, demo, ecc.)
Per costruire una build con una differente lista di app dovrai lanciare make con una differente opzione. Per esempio, per costruire la build con la lista di app definita in gaia/build/config/phone/apps-production.list, dovrai invocare il seguente comando:
PRODUCTION=1 make
Se imposterai l'opzione DEMO=1
, verrà utilizzata la lista apps-demo.list. Se invece specificherai DOGFOOD=1
, verrà di conseguenza utilizzata la lista apps-dogfood.list.
In alternativa, puoi costruire una build con una tua lista di app impostando la variabile GAIA_APP_CONFIG
direttamente nel gaia/Makefile, e fornendo di conseguenza una tua lista apps-*.list
.
gaia/Android.mk contiene queste linee:
ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),) GAIA_MAKE_FLAGS += PRODUCTION=1 B2G_SYSTEM_APPS := 1 endif
Durante la build di Gaia, se la variabile VARIANT assume i valori VARIANT=user
o VARIANT=userdebug
(questo valore viene successivamente copiato nella variabile TARGET_BUILD_VARIANT
), allora viene automaticamente impostata l'opzione PRODUCTION=1
.
Nota: Puoi scoprire quali altre opzioni di make sono disponibili leggi l'articolo di riferimento per le opzione di make.
Personalizzazione Commerciale
Il terzo metodo, più dettagliato (ma altrettanto più complesso) consiste nell'utilizzare le personalizzazioni. Ti consentono di personalizzare la build senza modificare il codice di Gaia. Puoi includere le tue personalizzazioni sia in cartelle separate che utilizzare quelle preesistenti.
Per esempio, specificando la variabile di ambiente GAIA_DISTRIBUTION_DIR
, indichi quale cartella contiene la tua personalizzazione:
GAIA_DISTRIBUTION_DIR=<DISTRIBUTION_PATH> make production
Al seguente repository https://github.com/mozilla-b2g/gaia/tree/master/customization trovi un esempio completo con tutte le funzionalità personalizzabili.
Possiamo considerare la personalizzazione come un argomento completamente separato. Per ulteriori informazioni fai riferimento alla Guida alla Personalizzazione Commerciale.
Nota: Se vuoi includere app custom esterne come parte della tua build di Gaia, devi utilizzare un processo di build specifico e metterle nella cartella gaia/dev-apps
. Per ulteriori informazioni leggi l'articolo Building Prebundled web apps.
Importante: Se sei un vendor di apparati e vuoi creare e distribuire una build custom di B2G/Gaia, devi rispettare alcuni criteri prima di poter includere la app di Firefox Marketplace sui tuoi dispositivi. Contatta Mozilla per maggiori dettagli.