Androidmanifest.xml在Android項目中的作用,androidmanifest

來源:互聯網
上載者:User

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中有一個
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.