這個檔案超重要,我之前是拿default file改一改就直接使用了,現在來了解一下內容。
檔案的主要目的為宣吿APP的所有元件、權限、API級別、所需的其他API等。
以下為Android Studio產生的default AndroidManifest.xml 檔案:
<?xml version="1.0" encoding="utf-8"?>
<!-- manifest 必要標籤,只可出現一次 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hana.helloworld">
<!-- application 必要標籤,只可出現一次 -->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher" <!-- APP的icon,default給所有component使用 -->
android:label="@string/app_name" <!-- APP的名稱,default給所有component使用 -->
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"> <!-- 會根據package name被解析為com.example.hana.helloworld.MainActivity -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> <!-- application一定要放在manifest裡的最後面 -->
</manifest>
因為是default檔案,沒有非常多複雜的設定,所以一邊了解基本設定的同時,一邊詳細看一下官網,看看還有什麼有趣的設定可以使用吧。
對系統和Google Play來說的唯一識別,包含在<manifest>裡。這個package name也會是給R.java使用的namespace,例如com.example.hana.helloworld.R。不過,這個package name會被build.gradle裡的applicationId取代,所以兩個名稱最好取一樣才不會混淆。取不同名稱似乎是為了進階需求,我就先跳過了。
每個component都必須要出現在這,例如activity會寫在manifest>application>activity,可參考以上程式碼。
Activity的android name記得要是package name的相對路徑,如果要使用的activity是在sub-package裡面,要寫成.<sub-package name>.<activity name>。
<activity> <!-- Activity -->
<service> <!-- Service -->
<receiver> <!-- BroadcastReceiver -->
<provider> <!-- ContentProvider -->
小提醒:
四大基礎元件中的activity、service、broadcast receiver是透過intent啟動的,當某APP發起一個intent,系統就會去掃各個APP的intent filter,找最適合的給使用者。如果適合的不只一個,就給使用者自己選擇。
這個似乎滿多東西可研究的,之後再介紹。
AndroidManifest.xml 還沒講解完,明天繼續學習吧!