| Sviluppatori Android

sintassi:

contenuto in: nessuno deve contenere:<application>può contenere:<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>descrizione: L’elemento principale del file AndroidManifest.xml. Deve contenere un elemento<application>e specificare gli attributixmlns:androidepackagexmlns:androidDefinisce lo spazio dei nomi Android. Questo attributo dovrebbe essere sempre impostato a “packageUn nome completo del pacchetto in stile Java per l’applicazione Android. Il nome può contenere lettere maiuscole o minuscole (‘A’ fino a ‘Z’), numeri e caratteri di sottolineatura (‘_’). Tuttavia, le singole parti del nome del pacchetto possono iniziare solo con lettere.

Mentre costruisci la tua app in un pacchetto di applicazioni (APK), il sistema di build usa l’attributo package per due cose:

  • Applica questo nome come namespace per la classe R.java generata dalla tua app (usata per accedere alle risorse della tua app).

    Per esempio, se package è impostato su "com.example.myapp", la classe R viene creata a com.example.myapp.R.

  • Usa questo nome per risolvere qualsiasi nome di classe relativo dichiarato nel file manifest.

    Per esempio, se package è impostato su "com.example.myapp", un’attività dichiarata come <activity android:name=".MainActivity"> viene risolta come com.example.myapp.MainActivity.

Questo nome è anche il nome predefinito per il processo della tua app (vedi l’attributo <application> dell’elemento process). Ed è l’affinità predefinita delle attività (vedi l’attributo<activity> dell’elementotaskAffinity).

Questo nome rappresenta anche l’ID dell’applicazione, che deve essere universalmente unico per poter pubblicare l’app su Google Play. Tuttavia, verso la fine del processo di compilazione dell’APK, gli strumenti di compilazione sovrascrivono il nome package usando la proprietàapplicationId del file build.gradle (usato da Android Studioprojects). Finché si mantiene il nome package del manifest uguale a quello del file di buildapplicationId, questo non sarà un problema. Ma se questi due valori differiscono, dovreste capire le differenze tra il “nome del pacchetto” e “l’ID dell’applicazione” leggendo come impostare l’ID dell’applicazione.

Per evitare conflitti con altri sviluppatori, dovreste usare la proprietà del dominio Internet come base per i nomi dei vostri pacchetti (al contrario). Per esempio, le applicazioni pubblicate da Google iniziano concom.google.

Nota: Sia il com.example che il com.androidnamespaces sono vietati da Google Play.

Se volete cambiare il nome del vostro pacchetto dopo aver pubblicato la vostra applicazione, potete farlo, ma dovete mantenere lo stesso applicationId. IlapplicationId definisce l’identità unica della tua app su Google Play. Quindi se lo cambi, l’APK è considerato un’app diversa e gli utenti della versione precedente non riceveranno l’aggiornamento. Per maggiori informazioni, vedi come impostare l’ID dell’applicazione.

android:sharedUserId

Questa costante è stata deprecata nel livello API 29.
Gli ID utente condivisi causano un comportamento non deterministico nel gestore dei pacchetti. Come tale, il suo uso è fortemente sconsigliato e potrebbe essere rimosso in una versione futura di Android. Invece, le applicazioni dovrebbero usare meccanismi di comunicazione appropriati, come servizi e fornitori di contenuti, per facilitare l’interoperabilità tra i componenti condivisi. Si noti che le app esistenti non possono rimuovere questo valore, in quanto l’eliminazione di un ID utente condiviso non è supportata.

Il nome di un ID utente Linux che sarà condiviso con altre app.Per impostazione predefinita, Android assegna a ogni app il proprio ID utente unico.Tuttavia, se questo attributo è impostato sullo stesso valore per due o più app, tutte condivideranno lo stesso ID – a condizione che i loro set di certificati siano identici. Le app con lo stesso ID utente possono accedere l’una ai dati dell’altra e, se lo desiderano, essere eseguite nello stesso processo.

android:targetSandboxVersionLa sandbox di destinazione da utilizzare per questa app. Il suo valore predefinito è1; potete anche impostarlo a2.Impostando questo attributo a2si passa l’applicazione ad una sandbox SELinux diversa.

Le seguenti restrizioni si applicano ad una sandbox di livello 2:

  • Il valore predefinito diusesCleartextTraffic nella Network Security Config è false.
  • La condivisione dell’ID non è consentita.

Per le applicazioni istantanee di Android rivolte ad Android 8.0 (livello API 26) o superiore, questo attributo deve essere impostato su 2. È possibile impostare il livello di sandbox nella versione installata della tua app al meno restrittivo livello 1, ma se lo fai, la tua app non persiste i dati dell’app dall’app istantanea alla versione installata della tua app. Dovete impostare il valore sandbox dell’app installata a 2 affinché i dati persistano dall’app istantanea alla versione installata.

Una volta che un’app è installata, potete solo aggiornare il suo valore sandbox di destinazione a un valore più alto.Per abbassare il valore della sandbox di destinazione, è necessario disinstallare l’app e sostituirla con una versione il cui manifesto contiene un valore più basso per questo attributo.

android:sharedUserLabel

Questa costante è stata deprecata nel livello 29 delle API.
Gli ID utente condivisi causano un comportamento non deterministico all’interno del gestore dei pacchetti. Come tale, il suo uso è fortemente sconsigliato e potrebbe essere rimosso in una versione futura di Android. Invece, le applicazioni dovrebbero utilizzare meccanismi di comunicazione appropriati, come servizi e fornitori di contenuti, per facilitare l’interoperabilità tra i componenti condivisi. Si noti che le app esistenti non possono rimuovere questo valore, in quanto la migrazione da un ID utente condiviso non è supportata.

Un’etichetta leggibile dall’utente per l’ID utente condiviso. L’etichetta deve essere impostata come riferimento ad una risorsa stringa; non può essere una stringa grezza.

Questo attributo è stato introdotto nel livello 3 delle API. Ha senso solo se è impostato anche l’attributo sharedUserId.

android:versionCodeUn numero di versione interno. Questo numero è usato solo per determinare se una versione è più recente di un’altra, con numeri più alti che indicano versioni più recenti. Questo non è il numero di versione mostrato agli utenti; quel numero è impostato dall’attributoversionName.

Il valore deve essere impostato come un numero intero, come “100”. Potete definirlo come volete, purché ogni versione successiva abbia un numero più alto. Per esempio, potrebbe essere un numero di build. Oppure si potrebbe tradurre un numero di versione nel formato “x.y” in un numero intero codificando la “x” e la “y” separatamente nei 16 bit inferiori e superiori. Oppure potreste semplicemente aumentare il numero di uno ogni volta che viene rilasciata una nuova versione.

android:versionNameIl numero di versione mostrato agli utenti. Questo attributo può essere impostato come una stringa grezza o come riferimento a una risorsa stringa. La stringa non ha altro scopo che essere mostrata agli utenti. L’attributoversionCodecontiene il numero di versione significativo usato internamente.android:installLocationIl percorso di installazione predefinito per l’applicazione.

Sono accettate le seguenti stringhe di parole chiave:

Valore Descrizione
internalOnly L’app deve essere installata solo sulla memoria interna del dispositivo. Se questo è impostato, l’app non sarà mai installata sulla memoria esterna. Se la memoria interna è piena, allora il sistema non installerà l’app. Questo è anche il comportamento predefinito se non si definisce android:installLocation.
auto L’app può essere installata sulla memoria esterna, ma il sistema installerà l’app sulla memoria interna per default. Se la memoria interna è piena, allora il sistema la installerà sulla memoria esterna. Una volta installato, l’utente può spostare il appto sia memoria interna o esterna attraverso le impostazioni di sistema.
preferExternal L’app preferisce essere installato sulla memoria esterna (scheda SD). Non c’è garanzia che il sistema onorerà questa richiesta. L’app potrebbe essere installata sulla memoria interna se il supporto esterno non è disponibile o è pieno. Una volta installata, l’utente può spostare l’app sulla memoria interna o esterna attraverso le impostazioni di sistema.

Nota: Per impostazione predefinita, la tua app sarà installata sulla memoria interna e non potrà essere installata sulla memoria esterna a meno che tu non definisca questo attributo come “auto” o “preferExternal“.

Quando un’app viene installata sulla memoria esterna:

  • Il file .apk viene salvato nella memoria esterna, ma tutti i dati dell’app (come i database) vengono ancora salvati nella memoria interna del dispositivo.
  • Il contenitore in cui viene salvato il file .apk è criptato con una chiave che permette all’app di funzionare solo sul dispositivo che l’ha installata. (Un utente non può trasferire la scheda SD a un altro dispositivo e utilizzare le applicazioni installate sulla scheda). Tuttavia, più schede SD possono essere utilizzate con lo stesso dispositivo.
  • A richiesta dell’utente, l’app può essere spostata nella memoria interna.

L’utente può anche richiedere di spostare un app dalla memoria interna alla memoria esterna. Tuttavia, il sistema non permetterà all’utente di spostare l’app nella memoria esterna se questo attributo è impostato su internalOnly, che è l’impostazione predefinita.

Leggi App Install Location per maggiori informazioni sull’uso di questo attributo (incluso come mantenere la compatibilità all’indietro).

Introdotto in: API Level 8.

introdotto in: API Level 1 per tutti gli attributi, se non diversamente indicato nella descrizione dell’attributo. vedi anche:<application>

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *