Androidmanifest.xml在Android項目中的作用,androidmanifest
下面是一個項目中的AndroidManifest.xml檔案:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="tw.suggest" //指定項目中的程式檔案的包路徑
android:versionCode="1" //此項目的版本號碼
android:versionName="1.0" > //此項目的版本名稱
<uses-sdk
android:minSdkVersion="1" //此項目可啟動並執行最低API版本
android:targetSdkVersion="10" />//此項目期望可啟動並執行API版本
<application
android:allowBackup="true"//允許備份
android:icon="@drawable/ic_launcher"//程式執行時所顯示的小表徵圖
android:label="@string/app_name" //程式執行時顯示在在手機螢幕上方的資訊列中的程式名稱
android:theme="@style/AppTheme"//主題樣式
>
<activity //activity是Android程式啟動並執行基本執行單元
android:name=".MainActivity"//運行是進入此指定程式
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />//決定應用程式最先執行的程式
<category android:name="android.intent.category.LAUNCHER" />//決定應用程式是否顯示在程式列表裡
</intent-filter>
</activity>
</application>
</manifest>
android src中java、layout中xml與AndroidManifestxml檔案是通過什聯絡起來的?起什作用?
簡單說來就是映射。
你可以看到一個正常的android工程下面有個gen檔案夾,其中有個包名.R.java,就類似於map的key-value,R.java中就是存放了一個個key值,比如R.drawable.a就對應了res/drawable/a.png檔案,那麼我們通過此key就可以獲得此圖片檔案的路徑,通過載入圖片的方法載入為圖片,當然有人有疑惑為什麼不載入res/drawable-hdpi/a.png,這個是架構層或者底層讀取機器的屬性(比如解析度、密度資訊)分辨出究竟載入哪個檔案夾下面的檔案。
因為同屬於一個包,有規範的檔案夾命名方式,如果你將values檔案夾換成valuess,那麼就會報錯,這個就規定了路徑是寫死的,所以我們就可以通過id擷取寫死的路徑下面的檔案載入。
對於AndroidManifest.xml中載入res中的資源的原理,跟src中的.java如何載入res中的檔案是一個意思。
但是AndroidManifest.xml如何載入src中的.java,看圖片,這是一個apk中包含的檔案,classes.dex是所有.java檔案編譯過後組合的一個class檔案集合,包括R.java編譯過後的class檔案,resources.arsc中放的是匹配資訊,就相當於map資訊,哪個key(就是id)對應哪個value。
程式啟動的時候,先讀取AndroidManifest.xml檔案,知道包名,那麼此程式的路徑就無所遁形,AndroidManifest.xml中有些R.drawable.icon的id,它是先讀取classes.dex中的R class檔案,然後根據匹配表resources.arsc知道目標檔案是在哪兒,那麼就可以載入了。 當然classes.dex中某個控制項也想載入資源,那麼方式是一樣的。
AndroidManifestxml什時被調用它有什作用
Label是程式的名稱,,他的值==String.xml中的app_name變數的值。如strings.xml中有一個