AndroidManifest 存放在 app/src/main/ 目錄下
它的功能如下:
1. 命名Java package,這個命名提供了唯一的名稱,
2. 描述application的組成元件,再透過類別來啟動這些組成元件,例如運用 Intent 這個class
-activities
-services
-broadcast receivers
-content providers
3. 決定哪些processes主持application
4. 宣告這個App有哪些權限
5. 也宣告其他App要存取application components需要哪些權限
6. 列出Instrumentation這個class來分析application執行時的情形
7. 需告要執行此Application最低的API版本
8. 列出application需要link的library
Manifest架構
允許的Element,藍字是預設常見的Element,其中的<manifest>與<application>是必要且只能出現一次。每個Element有各自的屬性,屬性數量不一定,每個屬性有其預設值,可視需求進行設定。
<action>
<activity>
<activity-alias>
<application>
<category>
<data>
<grant-uri-permission>
<instrumentation>
<intent-filter>
<manifest>
<meta-data>
<permission>
<permission-group>
<permission-tree>
<provider>
<receiver>
<service>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-library>
<uses-permission>
<uses-sdk>
預設的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.bmi" 名稱空間
android:versionCode="1" 開發者使用流水版號
android:versionName="1.0" > 供使用者看的版本號
<uses-sdk
android:minSdkVersion="8" 最低相容SDK版本
android:targetSdkVersion="21" /> 目標版本,若沒設定預設為最低minSdkVersion
<application
android:allowBackup="true" 是否允許備份
android:icon="@drawable/ic_launcher" App Icon
android:label="@string/app_name" App名稱
android:theme="@style/AppTheme" > App風格
<activity activity, service, receiver, provider是組成application的4個主要項目
android:name=".MainActivity" activity名稱,可和manifest package串在一起
android:label="@string/app_name" > APP開啟後,顯示在畫面上方的名稱
<intent-filter> activity操作方式
<action android:name="android.intent.action.MAIN" /> .MAIN表示activity是APP進入點
<category android:name="android.intent.category.LAUNCHER" /> 顯示在應用程式列表
</intent-filter>
</activity>
</application>
</manifest>
完整的架構
<?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission /> <permission /> <permission-tree /> <permission-group /> <instrumentation /> <uses-sdk /> <uses-configuration /> <uses-feature /> <supports-screens /> <compatible-screens /> <supports-gl-texture /> <application> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> <activity-alias> <intent-filter> . . . </intent-filter> <meta-data /> </activity-alias> <service> <intent-filter> . . . </intent-filter> <meta-data/> </service> <receiver> <intent-filter> . . . </intent-filter> <meta-data /> </receiver> <provider> <grant-uri-permission /> <meta-data /> <path-permission /> </provider> <uses-library /> </application> </manifest>
沒有留言:
張貼留言