關於android應用程式的入口

關於android應用程式的入口

關於android應用程式的入口

 

資料來源:http://www.cnblogs.com/leipei2352/archive/2011/08/11/2135600.html

    android應用程式,由一到多個Activity組成.每個Activity沒有很緊密的聯繫,因為我們可以在自己的程式中調用其他Activity,特別是調用自己的代碼之外生成的Activity,比如android提供的發短信或者打電話的Activity.

        Intent call = new Intent(Intent.ACTION_CALL,Uri.parse(“tel:”+phonenumber); 
        startActivity(call);
 
       
 
        Intent sms = new Intent(Intent.ACTION_SENDTO,Uri.parse(“smsto:”+phonenumber);
 
        startActivity(sms);
 
   
從這點上看,android應用程式實際上是由多個Activity按照一定的次序拼裝起來的,只不過拼裝的過程中,後臺傳遞了一些資料,使得各個Activity之間能比較好的銜接起來. 
   
扯了這麼多,其實我的意思還是想說,android應用程式中,並沒有像c++java這樣有main函數來作為應用程式的入口.android應用程式提供的是入口Activity,而非入口函數. 
   
eclipse中創建一個android應用程式的時候,默認會創建一個Activity.這個Activity實際上就是入口Activity.從哪里定義它是Activity?AndroidManifest.xml文件中定義了整個android應用所包含的Activity.默認生成的Activity的定義為: 
 &
nbsp;      <activity android:name=“.activity01” android:label=”@string/app_name”>
 
            <intent-filter>
 
                <action android:name=”android.intent.action.MAIN” />
 
                <category android:name=”android.intent.category.LAUNCHER” />
 
            </intent-filter>
 
        </activity>
 
    action
節點中的android.intent.action.MAIN表明它所在的Activity是整個應用程式的入口點.category中的android.intent.category.LAUNCHER意思是把這個Activityg歸屬到載入器類,即把這個Activity標注為自動會載入和啟動的Activity,這樣程式啟動時候就先載入這個Activity.參考手冊上是這麼說的—-“the LAUNCHER category says that this entry point should be listed in the application launcher.”意思和我理解的有出入.不過意思都是說這個Activity要被應用程式載入. 
   
我們可以對比下eclipseconsole端輸出的日誌來看下.初始,我把    <category android:name=”android.intent.category.LAUNCHER” />這一行在原先的xml文件中注釋掉了.可以看到控制臺會報錯“No Launcher activity found!”,實際上此時在虛擬設備上的應用程式列表中找不到“lifecycle_test”這個app,而且也沒法運行,根本載入不起來.後面把注釋去掉,還原到最初始的狀態,然後在啟動應用,可以看到“No Launcher activity found!”這部分報錯資訊沒有了,而且虛擬設備的螢幕上,可以看到“lifecycle_test”這個app已經成功運行了.

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *