Maison >Problème commun >Décrivez brièvement la fonction d'AndroidManifest.xml ?
Fonction : 1. Décrivez le nom du package de l'application ; 2. Décrivez les informations de version du système Android utilisé par l'application 3. Décrivez les informations de version de l'application elle-même, afin que le système puisse la distinguer. entre deux versions d'une même application. Quelle est la nouvelle version et quelle est l'ancienne version ? 4. Décrire les composants exposés par l'application, etc.
Nous rencontrons tous un fichier lors du développement d'une application : AndroidManifest.xml. Quelques mois se sont écoulés depuis que j'ai commencé à développer Android, et je connais encore peu ce fichier, je sais seulement qu'il est destiné à la configuration. Mais je n'ai jamais compris l'utilisation spécifique des éléments de ce fichier et comment les utiliser. Profitez de l’occasion de travailler sur le projet pour étudier attentivement ce document.
La meilleure façon d'étudier AndroidManifest.xml est naturellement de comprendre en détail le rôle de chaque champ dans le projet selon la documentation officielle, et d'apporter quelques modifications pour le vérifier.
Qu'est-ce qu'AndroidManifest ? Quel type de fichier est AndroidManifest.xml ?
L'explication officielle d'AndroidManifest est le manifeste de l'application (manifest signifie manifeste ), Chaque application doit en avoir un dans son répertoire racine et le nom du fichier doit être exactement le même. Ce fichier contient les informations de configuration de l'APP. Le système doit exécuter le code de l'APP et afficher l'interface en fonction du contenu qu'il contient.
AndroidManifest.xml est un fichier dans le répertoire racine de chaque fichier apk (zip) après décompression. Chaque apk doit contenir un fichier AndroidManifest.xml et le nom doit être exactement le même.
Quelle est la fonction d'AndroidManifest.xml ?
Décrivez le nom du package de l'application :
Les appareils Android distinguent les différentes applications en conséquence. Si chaque application est une personne, le nom du package est celui-ci. est équivalent au nom de cette personne (afin d'empêcher les logiciels malveillants de contrefaire d'autres applications, la mise à niveau et l'installation par écrasement ne peuvent réussir que si le nom du package et la signature de la nouvelle application sont les mêmes que ceux de l'ancienne application
Un vrai fichier AndroidManifest.xml <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>
Il s'agit d'un fichier du projet teapots dans l'exemple officiel de Google. Nous analyserons la signification des champs en fonction de ce fichier. La signification des champs fait référence à la documentation officielle.
Élément
Cette définition d'attribut Espace de noms Android. Doit être défini sur "http://schemas.android.com/apk/res/android". Ne le modifiez pas manuellement.
packageIl s'agit d'un nom complet de package de style langage Java. Le nom du package est composé de lettres anglaises (majuscules et minuscules), de chiffres et de traits de soulignement. Chaque nom individuel doit commencer par une lettre.
Lors de la création d'un APK, le système de construction utilise cette propriété pour faire deux choses :
包名也代表着唯一的application ID,用来发布应用。但是,要注意的一点是:在APK构建过程的最后一步,package名会被build.gradle文件中的applicationId属性取代。如果这两个属性值一样,那么万事大吉,如果不一样,那就要小心了。
android:versionCode
内部的版本号。用来表明哪个版本更新。这个数字不会显示给用户。显示给用户的是versionName。这个数字必须是整数。不能用16进制,也就是说不接受"0x1"这种参数
android:versionName
显示给用户看的版本号。
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引用的就是下面的资源
android:label
一个用户可读的标签,以及所有组件的默认标签。子组件可以用他们的label属性定义自己的标签,如果没有定义,那么就用这个标签。
标签必须设置成一个字符串资源的引用。这样它们就能和其他东西一样被定位,比如@string/app_name。当然,为了开发方便,你也可以定义一个原始字符串。
android:theme
Cet attribut définit le thème utilisé par l'application. C'est une référence à la ressource de style. Chaque activité peut également définir son propre thème à l'aide de son propre attribut de thème.
android:name
Le nom complet de la sous-classe Application. Inclut le chemin précédent. Par exemple com.sample.teapot.TeapotApplication. Lorsque l'application démarre, une instance de cette classe est créée en premier. Cet attribut est facultatif et la plupart des applications ne nécessitent pas cet attribut. En l’absence de cet attribut, Android démarrera une instance de la classe Application.
Élément
Cet élément déclare une activité (sous-classe de la classe Activity) qui implémente l'interface visuelle de l'application. Il s'agit d'un élément enfant obligatoire de l'élément
android:name
Le nom de la classe Activity, qui est une sous-classe de la classe Activity. La valeur de la propriété est le nom de classe complet, tel que com.sample.teapot.TeapotNativeActivity. Pour plus de commodité, si le premier caractère est un point ('.'), vous devez ajouter le nom du package dans l'élément
Il n'y a pas de valeur par défaut, le nom doit être précisé.
android:label
Étiquette d'activité, qui peut être lue par l'utilisateur. Cette étiquette s'affichera à l'écran lorsque l'activité sera activée. S’il n’est pas défini, l’attribut label dans
android:configChanges
Répertorie les messages de changement de configuration que l'activité gérera seule. Lorsqu'un changement de configuration se produit au moment de l'exécution, l'activité est fermée et redémarrée par défaut, mais déclarer la configuration avec cet attribut empêchera le redémarrage de l'activité. Au lieu de cela, l'activité reste en cours d'exécution et sa méthode onConfigurationChanged() est appelée.
Remarque : L'utilisation de cet attribut doit être évitée et ne doit être utilisée qu'en dernier recours. Pour plus d’informations sur la façon de gérer correctement les redémarrages dus à des modifications de configuration, lisez Gestion des modifications d’exécution.
De nombreux éléments peuvent être définis pour cet attribut. Voici les éléments couramment utilisés :
android:theme
Définissez le format du thème, similaire au thème dans
spécifie un élément de données supplémentaire, qui est une paire nom-valeur fournie à son composant parent. Ces données formeront un objet Bundle, qui pourra être utilisé par le champ PackageItemInfo.metaData. Bien qu'il soit possible d'utiliser plusieurs balises d'éléments
Cet élément a trois attributs :
android:name
Nom de l'élément de données, qui est une valeur unique.
android:resource
Une référence à une ressource.
android:value
La valeur de l'élément de données. L'élément
précise avec quelle intention (intention) cette activité peut être démarrée. Cet élément peut contenir plusieurs éléments enfants. Présentons d'abord les deux que nous rencontrons : l'élément
indique l'action sous laquelle l'activité est lancée, android.intent.action.MAIN indique l'action l'activité est démarrée comme. L'activité principale démarre.
Élément
Il s'agit d'informations de catégorie supplémentaires de l'élément d'action android.intent.category.LAUNCHER qui indique que cette activité est la plus haute priorité pour le. Activité actuelle de l’application.
Pour plus de connaissances sur la programmation, veuillez visiter : Apprendre la programmation ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!