AndroidManifest.xml
describes essential information about an app to the Android build tools
What a AndroidManifest.xml
looks like
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.voting_frontend">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher"
android:allowBackup="false"
android:usesCleartextTraffic="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
package="com.voting_frontend"
is the app’s package name. The Android build tools use this to tdetermine the location of code when building an Android project. When packaging the app, the build tools replace this package name with the application ID from the Gradle build files. Google Play Store cannot publish two different apps with a same package name.
R.java
class like com.voting_frontend.R
.MainActivity
like com.voting_frontend.MainActivity
package
value is replaced with the applicationId
value in android/app/build.gradle
Components
like activitiy
, service
, broadcast receiver
, and content provider
. Each component must define basic properties such as the name of its Kotlin
or Java
class. The above example defines MainApplication.java
and MainActivity.java
The permissions
that the app needs in order to access protected parts of the system
The hardware
and software
features the app requires