| Android-ontwikkelaars

syntax:

bevat in: geen moet bevatten:<application>kan bevatten:<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>description: Het basiselement van het AndroidManifest.xml-bestand. Het moet een<application>element bevatten enxmlns:androidenpackageattributen specificeren. attributen:xmlns:androidDefinieert de Android namespace. Dit attribuut moet altijd worden ingesteld op “packageEen volledige pakketnaam in Java-taal voor de Android app. De naam mag hoofdletters of kleine letters (‘A’ tot ‘Z’), cijfers, en underscores (‘_’) bevatten. De afzonderlijke onderdelen van de pakketnaam mogen echter alleen met letters beginnen.

Tijdens het bouwen van uw app in een applicatiepakket (APK), gebruikt het bouwsysteem het package attribuut voor twee dingen:

  • Het past deze naam toe als de naamruimte voor de gegenereerde R.java klasse van uw app (die wordt gebruikt om toegang te krijgen tot de bronnen van uw app).

    Bijvoorbeeld, als package is ingesteld op "com.example.myapp", wordt de R class aangemaakt op com.example.myapp.R.

  • Het gebruikt deze naam om alle relatieve class namen op te lossen die in het manifest bestand zijn opgegeven.

    Als bijvoorbeeld package is ingesteld op "com.example.myapp", wordt een activiteit die is aangegeven als <activity android:name=".MainActivity"> omgezet in com.example.myapp.MainActivity.

Deze naam is ook de standaardnaam voor uw app-proces (zie het <application>element’s processattribuut). En het is de standaardtaakaffiniteit voor uw activiteiten (zie het<activity>element’staskAffinityattribuut).

Deze naam vertegenwoordigt ook de applicatie-ID, die universeel uniek moet zijn om uw app in Google Play te kunnen publiceren. Echter, tegen het einde van het APK bouwproces, overschrijven de bouw tools de package naam met behulp van deapplicationId eigenschap van het build.gradle bestand (gebruikt door Android Studioprojects). Zolang u de package naam van het manifest hetzelfde houdt als deapplicationId naam van het build bestand, zal dit geen probleem zijn. Maar als deze twee waarden verschillen, moet u de verschillen tussen de “package name” en de “application ID” begrijpen door te lezen hoe u de application ID instelt.

Om conflicten met andere ontwikkelaars te voorkomen, moet u internetdomeineigendom gebruiken als de basis voor uw package names (in omgekeerde volgorde). Bijvoorbeeld, apps gepubliceerd door Google beginnen metcom.google.

Note: Zowel de com.example en com.androidnamespaces zijn verboden door Google Play.

Als u de naam van uw pakket wilt wijzigen nadat u uw app hebt gepubliceerd, kan dat, maar u moet de applicationId hetzelfde laten. DeapplicationId definieert de unieke identiteit voor uw app op Google Play. Dus als u deze wijzigt, wordt de APK beschouwd als een andere app en zullen gebruikers van de vorige versie geen update ontvangen. Voor meer informatie, zie hoe u de applicatie ID instelt.

android:sharedUserId

Deze constante is in API level 29 afgeschreven.
Gedeelde gebruikers-ID’s veroorzaken niet-deterministisch gedrag binnen de pakketbeheerder. Als zodanig wordt het gebruik ervan sterk ontmoedigd en kan het worden verwijderd in een toekomstige versie van Android. In plaats daarvan moeten apps gebruik maken van de juiste communicatie mechanismen, zoals services en content providers, om de interoperabiliteit tussen gedeelde componenten te vergemakkelijken. Merk op dat bestaande apps deze waarde niet kunnen verwijderen, omdat migratie van een gedeelde gebruikers-ID niet wordt ondersteund.

De naam van een Linux gebruikers-ID die zal worden gedeeld met andere apps.Standaard wijst Android elke app zijn eigen unieke gebruikers-ID toe.Echter, als dit attribuut is ingesteld op dezelfde waarde voor twee of meer apps, zullen ze allemaal dezelfde ID delen – op voorwaarde dat hun certificaat sets identiek zijn. Apps met hetzelfde gebruikers-ID kunnen elkaars gegevens benaderen en, indien gewenst, in hetzelfde proces draaien.

android:targetSandboxVersionDe beoogde zandbak voor deze app. Hoe hoger het sandbox versienummer, hoe hoger het beveiligingsniveau. De standaard waarde is1; je kunt het ook instellen op2.Door dit attribuut op2te zetten, schakelt de app over naar een andere SELinux-sandbox.

De volgende beperkingen gelden voor een level 2-sandbox:

  • De standaardwaarde vanusesCleartextTrafficin de Network Security Config is false.
  • Het delen van gebruikersnamen is niet toegestaan.

Voor Android Instant Apps die zijn gericht op Android 8.0 (API-niveau 26) of hoger, moet dit attribuut worden ingesteld op 2. U kunt het sandbox-niveau in de geïnstalleerde versie van uw app instellen op het minder beperkende niveau 1, maar als u dat doet, blijven app-gegevens van de instant app niet bewaard in de geïnstalleerde versie van uw app. U moet de sandbox-waarde van de geïnstalleerde app op 2 zetten, zodat de gegevens van de instant app naar de geïnstalleerde versie blijven bestaan.

Als een app eenmaal is geïnstalleerd, kunt u de sandbox-waarde alleen nog maar bijwerken naar een hogere waarde.Om de doelzandbakwaarde te verlagen, moet u de app verwijderen en vervangen door een versie waarvan het manifest een lagere waarde voor dit attribuut bevat.

android:sharedUserLabel

Deze constante is in API niveau 29 afgeschreven.
Gedeelde gebruikers-ID’s veroorzaken niet-deterministisch gedrag binnen de pakketbeheerder. Als zodanig wordt het gebruik ervan sterk ontmoedigd en kan het worden verwijderd in een toekomstige versie van Android. In plaats daarvan moeten apps gebruik maken van de juiste communicatie mechanismen, zoals services en content providers, om de interoperabiliteit tussen gedeelde componenten te vergemakkelijken. Merk op dat bestaande apps deze waarde niet kunnen verwijderen, omdat het verwijderen van een gedeelde gebruikers-ID niet wordt ondersteund.

Een door de gebruiker leesbaar label voor de gedeelde gebruikers-ID. Het label moet worden ingesteld als een verwijzing naar een string resource; het kan geen onbewerkte string zijn.

Dit attribuut is geïntroduceerd in API Level 3. Het is alleen van betekenis als het sharedUserId attribuut ook is ingesteld.

android:versionCodeEen intern versienummer. Dit nummer wordt alleen gebruikt om te bepalen of een versie recenter is dan een andere, waarbij hogere nummers recentere versies aangeven. Dit is niet het versienummer dat aan gebruikers wordt getoond; dat nummer wordt ingesteld door hetversionNameattribuut.

De waarde moet worden ingesteld als een geheel getal, zoals “100”. Je kunt het definiëren zoals je wilt, zolang elke opeenvolgende versie maar een hoger getal heeft. Het zou bijvoorbeeld een build nummer kunnen zijn. Of u zou een versienummer in “x.y” formaat kunnen vertalen naar een geheel getal door de “x” en “y” apart te coderen in de onderste en bovenste 16 bits. Of je kunt het nummer gewoon met één verhogen elke keer als er een nieuwe versie wordt uitgebracht.

android:versionNameHet versienummer dat aan gebruikers wordt getoond. Dit attribuut kan worden ingesteld als een rawstring of als een verwijzing naar een string resource. De string heeft geen ander doel dan aan gebruikers getoond te worden. HetversionCodeattribuut bevat het significante versienummer dat intern wordt gebruikt.android:installLocationDe standaard installatielocatie voor de app.

De volgende trefwoordreeksen worden geaccepteerd:

preferExternal

Value Description
internalOnly De app moet alleen op de interne apparaatopslag worden geïnstalleerd. Als dit is ingesteld, zal de app nooit op de externe opslag worden geïnstalleerd. Als de interne opslag vol is, dan zal het systeem de app niet installeren. Dit is ook het standaard gedrag als u android:installLocation niet definieert.
auto De app kan op het externe geheugen worden geïnstalleerd, maar het systeem installeert de app standaard op het interne geheugen. Als de interne opslag vol is, dan installeert het systeem de app op de externe opslag. Eenmaal geïnstalleerd, kan de gebruiker de app verplaatsen naar interne of externe opslag via de systeeminstellingen.
De app wordt bij voorkeur geïnstalleerd op de externe opslag (SD-kaart). Er is geen garantie dat het systeem dit verzoek zal honoreren. De app kan op het interne geheugen worden geïnstalleerd als het externe medium niet beschikbaar of vol is. Eenmaal geïnstalleerd, kan de gebruiker de app verplaatsen naar interne of externe opslag via de systeeminstellingen.

Note: Standaard wordt uw app op de interne opslag geïnstalleerd en kan deze niet op de externe opslag worden geïnstalleerd, tenzij u dit attribuut definieert als “auto” of “preferExternal“.

Wanneer een app op de externe opslag wordt geïnstalleerd:

  • Het .apk-bestand wordt op de externe opslag opgeslagen, maar alle app-gegevens (zoals databases) worden nog steeds op het interne apparaatgeheugen opgeslagen.
  • De container waarin het .apk bestand wordt opgeslagen, is versleuteld met een sleutel die ervoor zorgt dat de app alleen werkt op het apparaat waarop het is geïnstalleerd. (Een gebruiker kan de SD-kaart niet naar een ander apparaat overzetten en de apps gebruiken die op de kaart zijn geïnstalleerd). Meerdere SD-kaarten kunnen echter op hetzelfde apparaat worden gebruikt.
  • Op verzoek van de gebruiker kan de app naar het interne geheugen worden verplaatst.

De gebruiker kan ook vragen om een app van het interne geheugen naar het externe geheugen te verplaatsen. Het systeem zal de gebruiker echter niet toestaan de app naar de externe opslag te verplaatsen als dit attribuut is ingesteld op internalOnly, wat de standaardinstelling is.

Lees App Install Location voor meer informatie over het gebruik van dit attribuut (inclusief hoe achterwaartse compatibiliteit te behouden).

Ingevoerd in: API Level 8.

geïntroduceerd in: API-niveau 1 voor alle attributen, tenzij anders vermeld in de beschrijving van het attribuut. zie ook:<application>

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *