Heim >häufiges Problem >Beschreiben Sie kurz die Funktion von AndroidManifest.xml?

Beschreiben Sie kurz die Funktion von AndroidManifest.xml?

青灯夜游
青灯夜游Original
2020-11-25 14:21:5920115Durchsuche

Funktion: 1. Beschreiben Sie den Paketnamen der App. 2. Beschreiben Sie die Versionsinformationen des von der App verwendeten Android-Systems. 3. Beschreiben Sie die Versionsinformationen der App selbst. Das System kann unterscheiden, welche die neue Version ist, welche die alte Version ist. 4. Beschreiben Sie die von der Anwendung bereitgestellten Komponenten usw.

Beschreiben Sie kurz die Funktion von AndroidManifest.xml?

Wir alle stoßen bei der Entwicklung einer APP auf eine Datei: AndroidManifest.xml. Es sind schon ein paar Monate vergangen, seit ich angefangen habe, Android zu entwickeln, und ich weiß immer noch wenig über diese Datei, ich weiß nur, dass sie zur Konfiguration dient. Aber ich habe die konkrete Verwendung der Dinge in dieser Datei und ihre Verwendung nie verstanden. Nutzen Sie die Gelegenheit, an dem Projekt zu arbeiten, um dieses Dokument sorgfältig zu studieren.

Der beste Weg, AndroidManifest.xml zu studieren, besteht natürlich darin, die offizielle Dokumentation zu lesen, um die Rolle jedes Felds im Projekt im Detail zu verstehen, und einige Änderungen vorzunehmen, um sie zu überprüfen.

Was ist AndroidManifest? Was für eine Datei ist AndroidManifest.xml?

Die offizielle Erklärung von AndroidManifest ist das Anwendungsmanifest (Manifest bedeutet Manifest), das im Stammverzeichnis jeder Anwendung enthalten sein muss Der Dateiname muss genau gleich sein. Diese Datei enthält die Konfigurationsinformationen der APP. Das System muss den APP-Code ausführen und die Schnittstelle basierend auf dem darin enthaltenen Inhalt anzeigen.

AndroidManifest.xml ist eine Datei im Stammverzeichnis nach der Dekomprimierung jeder APK-Datei (ZIP), und der Name muss genau derselbe sein.

AndroidManifest.xml Was ist die Funktion?

  • Beschreiben Sie den Paketnamen der App:

    Android-Geräte unterscheiden verschiedene Apps entsprechend. Wenn es sich bei jeder App um eine Person handelt, entspricht der Paketname dem Namen der Person (um zu verhindern, dass Malware andere imitiert). Apps: Nur wenn der Paketname und die Signatur der neuen App mit denen der alten App übereinstimmen, können das Upgrade und die Abdeckungsinstallation erfolgreich sein Wenn das System ständig aktualisiert wird, wird die neue Systemversion aktualisiert. Wenn neue APIs hinzugefügt werden, diese APIs jedoch nicht auf alten Android-Geräten verfügbar sind, besteht das Problem, dass die neue Version der Anwendung die neue API verwendet, aber auf dem alten System ausgeführt wird (Anwendungen, die die neue API auf dem alten System aufrufen, stürzen ab), daher ist es notwendig, die von dieser Anwendung unterstützte Mindestversion des Android-Systems anzugeben. Wenn Sie beispielsweise minSdkVersion auf 19 setzen, bedeutet dies, dass diese Anwendung auf Geräten mit API 19 und ausgeführt werden kann oben ohne Probleme.

  • Beschreiben Sie die Versionsinformationen der App selbst, wie folgt: Bei zwei Versionen derselben App kann das System unterscheiden, welche die neue und welche die alte Version ist.

  • A sehr wichtig Die Aufgabe besteht darin, die von der Anwendung bereitgestellten Komponenten (oder Schnittstellen) zu beschreiben:
  • Aktivität, Dienst Jede der vier Komponenten, Provider und BroadcastReceiver, kann unabhängig ausgeführt und als Einstiegspunkt für den App-Start verwendet werden.

  • AndroidManifest.xml kann dem System mitteilen, welche Aktivität nach dem Klicken auf das Anwendungssymbol eingegeben werden soll. Es kann dem System mitteilen, dass eine bestimmte Klasse dieser Anwendung (eine Unterklasse von BroadcastReceiver) Netzwerkänderungen und andere Informationen überwachen muss kann dem System mitteilen, dass diese Anwendung Dienste für andere Anwendungen bereitstellen kann (ContentProvider und Service); informieren Sie das System darüber, dass bestimmte Klassen dieser Anwendung bestimmte Anforderungen verarbeiten können (z. B. das Öffnen von Dateien mit der PDF-Erweiterung usw.). Dinge, die dem System direkt per Text mitgeteilt werden müssen: etwa die beantragten Berechtigungen, das Thema der Bewerbung und so weiter.
  • Letztendlich muss die Android-System-App dem System zu viele Informationen direkt per Text mitteilen.

  • Eine echte AndroidManifest.xml-Datei
  • <manifest>
    
      <uses-feature></uses-feature>
    
      <application>
    
        <!-- Our activity is the built-in NativeActivity framework class.
             This will take care of integrating with our NDK code. -->
        <activity>
          <!-- Tell NativeActivity the name of our .so -->
          <meta-data></meta-data>
          <intent-filter>
            <action></action>
            <category></category>
          </intent-filter>
        </activity>
      </application>
    </manifest>
  • Dies ist aus dem Teapots-Projekt im offiziellen Beispiel von Google Eine Datei. Wir analysieren die Bedeutung der Felder basierend auf dieser Datei. Die Bedeutung der Felder bezieht sich auf die offizielle Dokumentation.

-Element Zuallererst muss jede XML-Datei das -Element enthalten. Dies ist der Stammknoten der Datei. Es muss das Element enthalten und die Attribute xmlns:android und package angeben.

Attribute im Element

xmlns:android

Dieses Attribut definiert den Android-Namespace. Muss auf „http://schemas.android.com/apk/res/android“ eingestellt sein. Ändern Sie es nicht manuell. Paket

Dies ist ein vollständiger Paketname im Java-Sprachstil. Der Paketname besteht aus englischen Buchstaben (sowohl Groß- als auch Kleinbuchstaben), Zahlen und Unterstrichen. Jeder einzelne Name muss mit einem Buchstaben beginnen. Beim Erstellen einer APK verwendet das Build-System diese Eigenschaft, um zwei Dinge zu tun:

  • 1、生成R.java类时用这个名字作为命名空间(用于访问APP的资源)
    比如:package被设置成com.sample.teapot,那么生成的R类就是:com.sample.teapot.R
  • 2、用来生成在manifest文件中定义的类的完整类名。比如package被设置成com.sample.teapot,并且activity元素被声明成,完整的类名就是com.sample.teapot.MainActivity。

包名也代表着唯一的application ID,用来发布应用。但是,要注意的一点是:在APK构建过程的最后一步,package名会被build.gradle文件中的applicationId属性取代。如果这两个属性值一样,那么万事大吉,如果不一样,那就要小心了。

android:versionCode

内部的版本号。用来表明哪个版本更新。这个数字不会显示给用户。显示给用户的是versionName。这个数字必须是整数。不能用16进制,也就是说不接受"0x1"这种参数

android:versionName

显示给用户看的版本号。

Beschreiben Sie kurz die Funktion von AndroidManifest.xml?

元素中的元素

元素

Google Play利用这个元素的值从不符合应用需要的设备上将应用过滤。

这东西的作用是将APP所依赖的硬件或者软件条件告诉别人。它说明了APP的哪些功能可以随设备的变化而变化。

使用的时候要注意,必须在单独的元素中指定每个功能,如果要多个功能,需要多个元素。比如要求设备同时具有蓝牙和相机功能:

<uses-feature></uses-feature>
<uses-feature></uses-feature>

的属性

android:name

该属性以字符串形式指定了APP要用的硬件或软件功能。

android:required

这项属性如果值为true表示需要这项功能否则应用无法工作,如果为false表示应用在必要时会使用该功能,但是如果没有此功能应用也能工作。

android:glEsVersion

指明应用需要的Opengl ES版本。高16位表示主版本号,低16位表示次版本号。例如,如果是要3.2的版本,就是0x00030002。如果定义多个glEsVersion,应用会自动启用最高的设置。

元素

此元素描述了应用的配置。这是一个必备的元素,它包含了很多子元素来描述应用的组件,它的属性影响到所有的子组件。许多属性(例如icon、label、permission、process、taskAffinity和allowTaskReparenting)都可以设置成默认值。

的属性

android:allowBackup

表示是否允许APP加入到备份还原的结构中。如果设置成false,那么应用就不会备份还原。默认值为true。

android:fullBackupContent

这个属性指向了一个xml文件,该文件中包含了在进行自动备份时的完全备份规则。这些规则定义了哪些文件需要备份。此属性是一个可选属性。默认情况下,自动备份包含了大部分app文件。

android:supportsRtl

声明你的APP是否支持RTL(Right To Left)布局。如果设置成true,并且targetSdkVersion被设置成17或更高。很多RTL API会被集火,这样你的应用就可以显示RTL布局了。如果设置成false或者targetSdkVersion被设置成16或更低。哪些RTL API就不起作用了。

该属性的默认的值是false。

android:icon

APP的图标,以及每个组件的默认图标。可以在组价中自定义图标。这个属性必须设置成一个引用,指向一个可绘制的资源,这个资源必须包含图片。系统不设置默认图标。例如mipmap/ic_launcher引用的就是下面的资源

Beschreiben Sie kurz die Funktion von AndroidManifest.xml?

android:label

一个用户可读的标签,以及所有组件的默认标签。子组件可以用他们的label属性定义自己的标签,如果没有定义,那么就用这个标签。

标签必须设置成一个字符串资源的引用。这样它们就能和其他东西一样被定位,比如@string/app_name。当然,为了开发方便,你也可以定义一个原始字符串。

Beschreiben Sie kurz die Funktion von AndroidManifest.xml?

android:theme

Dieses Attribut definiert das von der Anwendung verwendete Thema. Es ist ein Verweis auf die Stilressource. Jede Aktivität kann auch ihr eigenes Thema festlegen, indem sie ihr eigenes Themenattribut verwendet.

Beschreiben Sie kurz die Funktion von AndroidManifest.xml?

android:name

Der vollständige Name der Anwendungsunterklasse. Beinhaltet den vorherigen Pfad. Zum Beispiel com.sample.teapot.TeapotApplication. Beim Start der Anwendung wird zunächst eine Instanz dieser Klasse erstellt. Dieses Attribut ist optional und die meisten Apps erfordern dieses Attribut nicht. Fehlt dieses Attribut, startet Android eine Instanz der Application-Klasse.

-Element

Dieses Element deklariert eine Aktivität (Unterklasse der Aktivitätsklasse), die die visuelle Schnittstelle der Anwendung implementiert. Dies ist ein erforderliches untergeordnetes Element des -Elements. Alle Aktivitäten müssen durch ein -Element in der Manifestdatei dargestellt werden. Jede dort nicht deklarierte Aktivität ist für das System nicht sichtbar und wird niemals ausgeführt.

android:name

Der Name der Aktivitätsklasse, die eine Unterklasse der Aktivitätsklasse ist. Der Eigenschaftswert ist der vollständig qualifizierte Klassenname, z. B. com.sample.teapot.TeapotNativeActivity. Wenn das erste Zeichen ein Punkt ('.') ist, müssen Sie der Einfachheit halber den Paketnamen im -Element hinzufügen. Sobald die App veröffentlicht ist, sollte der Name nicht mehr geändert werden.

Es gibt keinen Standardwert, der Name muss angegeben werden.

android:label

Aktivitätslabel, das vom Benutzer gelesen werden kann. Diese Beschriftung wird auf dem Bildschirm angezeigt, wenn die Aktivität aktiviert ist. Wenn es nicht festgelegt ist, wird das Label-Attribut in verwendet. Die Anforderungen zum Festlegen von Eigenschaften sind dieselben wie in .

android:configChanges

Listet Konfigurationsänderungsmeldungen auf, die die Aktivität selbstständig verarbeiten wird. Wenn zur Laufzeit eine Konfigurationsänderung auftritt, wird die Aktivität standardmäßig geschlossen und neu gestartet. Wenn Sie die Konfiguration jedoch mit diesem Attribut deklarieren, wird der Neustart der Aktivität verhindert. Stattdessen bleibt die Aktivität aktiv und ihre onConfigurationChanged()-Methode wird aufgerufen.

Hinweis: Dieses Attribut sollte vermieden und nur als letztes Mittel verwendet werden. Weitere Informationen zum ordnungsgemäßen Umgang mit Neustarts aufgrund von Konfigurationsänderungen finden Sie unter Umgang mit Laufzeitänderungen.

Es gibt viele Elemente, die für dieses Attribut festgelegt werden können:

  • Ausrichtung
    Keine Sorge, der Bildschirm hat sich geändert, zum Beispiel hat der Benutzer das Gerät gedreht
  • Tastatur ausgeblendet
    Die Die Funktion zur Barrierefreiheit der Tastatur hat sich geändert, z. B. die Benutzeranzeige Hardware-Tastatur
  • android:launchMode
    Anweisungen zum Starten der Aktivität. Insgesamt gibt es vier Anweisungen:
    "Standard"
    "singleTop"
    "singleTask"
    "singleInstance"
    standardmäßig. Diese Modi sind in zwei Hauptkategorien unterteilt: „Standard“ und „SingleTop“ sind eine Kategorie. Aktivitäten in diesem Modus können mehrfach instanziiert werden. Instanzen können zu jeder Aufgabe gehören und sich an einer beliebigen Stelle im Aktivitätsstapel befinden. „singleTask“ und „singleInstance“ sind dieselbe Klasse. In diesem Modus können nur Aufgaben gestartet werden, die sich immer im Stammverzeichnis des Aktivitätsstapels befinden. Darüber hinaus kann das Gerät jeweils nur eine Aktivitätsinstanz enthalten.
    Nachdem es auf „singleTask“ gesetzt wurde, erstellt das System die Aktivität im Stammverzeichnis der neuen Aufgabe und sendet die Absicht an diese. Wenn bereits eine Aktivitätsinstanz vorhanden ist, überträgt das System die Absicht auf diese, indem es die onNewIntent()-Methode der Instanz aufruft, anstatt eine neue Aktivitätsinstanz zu erstellen.

android:theme

Legen Sie das Designformat fest, ähnlich dem Design in . Das

-Element

gibt ein zusätzliches Datenelement an, bei dem es sich um ein Name-Wert-Paar handelt, das der übergeordneten Komponente bereitgestellt wird. Diese Daten bilden ein Bundle-Objekt, das vom Feld PackageItemInfo.metaData verwendet werden kann. Obwohl es möglich ist, mehrere -Element-Tags zu verwenden, wird dies nicht empfohlen. Wenn mehrere Datenelemente angegeben werden müssen, besteht der empfohlene Ansatz darin, die mehreren Datenelemente in einer Ressource zu kombinieren und sie dann mithilfe von einzubinden.

Dieses Element hat drei Attribute:

  • android:name

    Datenelementname, der ein eindeutiger Wert ist.

  • android:resource

    Ein Verweis auf eine Ressource.

  • android:value

    Der Wert des Datenelements. Das

-Element

gibt an, mit welcher Absicht (Absicht) diese Aktivität gestartet werden kann. Dieses Element kann mehrere untergeordnete Elemente enthalten. Stellen wir zunächst die beiden vor, auf die wir gestoßen sind:

Element

gibt an, als welche Aktion die Aktivität gestartet wird, android.intent.action.MAIN gibt an, dass sie als Hauptaktivität gestartet wird.

Element

Dies sind zusätzliche Kategorieinformationen des Aktionselements android.intent.category.LAUNCHER, die angeben, dass diese Aktivität die Aktivität mit der höchsten Priorität in der aktuellen Anwendung ist.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmieren lernen! !

Das obige ist der detaillierte Inhalt vonBeschreiben Sie kurz die Funktion von AndroidManifest.xml?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn