1. 程式人生 > 其它 >簡單瞭解AndroidManifest.xml檔案

簡單瞭解AndroidManifest.xml檔案

AndroidManifest.xml:資源清單檔案

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.java.activitytest">
    <!-- 允許聯網 -->
    <uses-permission android:name="android.permission.INTERNET" /> <!-- 獲取GSM(2g)、WCDMA(聯通3g)等網路狀態的資訊 
--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 獲取wifi網路狀態的資訊 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 保持CPU 運轉,螢幕和鍵盤燈有可能是關閉的,用於檔案上傳和下載 --> <uses-permission android:name="android.permission.WAKE_LOCK"
/> <!-- 獲取sd卡寫的許可權,用於檔案上傳和下載 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允許讀取手機狀態 用於建立BmobInstallation --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!--視訊播放許可權--> <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true"> <activity android:name=".ResultActivity"> </activity> <activity android:name=".QuestionActivity" android:screenOrientation="portrait"> </activity> <activity android:name=".MainActivity" android:screenOrientation="portrait" android:theme="@style/NoActionBarTheme" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
android:allowBackup="true"  ==> 允許備份
android:icon ==> 應用圖示
android:label ==> 應用名稱
android:supportsRtl ==> 支援從右到左佈局
android:theme ==> 主題
進入主題看看:
<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="NoActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
</resources>
 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">指定主題為:不帶ActinBar的淺色主題。
不帶ActionBar的主題通常有兩種:"Theme.AppCompat.Light.NoActionBar""Theme.AppCompat.NoActionBar" 前者表示淺色主題,後者表示深色主題。

<item name="colorPrimary">@color/colorPrimary</item> 是為colorPrimary屬性指定顏色。
下圖為各屬性指定顏色的位置:

 

 

回到清單檔案的<activity android:name=".ResultActivity"> </activity> 是對ResultActivity的註冊。(四大元件都需要註冊)

所有的Activity都要在AndroidManifest.xml檔案中註冊才能生效,每次建立新的Activity時,AndroidStudio會自動幫我們註冊。

使用android:name來指定具體註冊哪一個Activity,這裡的.ResultActivitycom.java.activitytest.ResultActivity的縮寫。

由於在最外層的<manifest xmlns:android="http://schemas.android.com/apk/res/android"        package="com.java.activitytest"> 標籤中已經通過package屬性指定了程式的包名是com.java.activitytest,因此在註冊Activity時,這一部分可以省略,直接使用.ResultActivity就可以了。

android:screenOrientation  ==>用於控制activity啟動時方向

可以取值:

 

landscape:限制介面為橫屏,旋轉螢幕也不會改變當前狀態。
portrait:限制介面為豎屏,旋轉螢幕也不會改變當前狀態。
sensor:根據感測器定位方向,旋轉手機90度,180,270,360,介面都會發生變化。
sensorLandscape:(橫屏的旋轉,不會出現豎屏的現象)根據感測器定位方向,旋轉手機180度介面旋轉。一般橫屏遊戲會是這個屬性。
sensorPortrait:(豎屏的旋轉,不會出現橫屏的現象)根據感測器定位方向,旋轉手機180度介面會旋轉。
unspecified:由系統選擇顯示方向,不同的裝置可能會有所不同。(旋轉手機,介面會跟著旋轉)
user:使用者當前的首選方向。
nosensor:不由感測器確定方向。旋轉裝置的時候,介面不會跟著旋轉。初始介面方向由系統提供。

 android:windowSoftInputMode ==> 設定視窗軟鍵盤的互動模式為adjustResize :該Activity總是調整螢幕的大小以便留出軟鍵盤的空間

再看<intent-filter> <action android:name="android.intent.action.MAIN"/> 
  <category android:name="android.intent.category.LAUNCHER"/> </intent-filter>
,為程式配置主Activity。