前面我們通過【Android實戰(zhàn)004:Hello World入門實例體驗 】先體驗了一個簡單的Hello World程序,Android Stduio為我們自動創(chuàng)建了一個Hello World的例子,我們沒有做任何操作直接運行項目到模擬器就會可以窗口中看到“Hello World”。那么它是怎么實現(xiàn)的呢?現(xiàn)在我們來手動創(chuàng)建一個Hello World程序。

創(chuàng)建新項目
這次我們新建一個項目,在現(xiàn)在活動模板的時候我們選擇一個不帶Activity的空模板,這里的Activity其實就是指Android應用中的界面,主要用于完成界面的交互功能。下一步配置項目名稱、項目包名、項目路徑、項目開發(fā)語言及最低兼容的API,都填寫好之后點擊“Finish”完成項目的創(chuàng)建。

AndroidManifest.xml文件
現(xiàn)在這個項目就沒有了Hello World示例,相比之前的項目結(jié)構(gòu)HelloWorldAppsrcmainJAVAcom.example.helloworld下是空的,res下也沒有了layout目錄。res文件夾主要用來存放程序的資源文件,這里看到的都是Android Stduio根據(jù)項目配置自動生成的文件。這個我們暫時不去了解,后面再來詳細解讀。這里我們主要來看下AndroidManifest.xml文件,這是程序的功能清單文件。里面中包含了APP的配置信息,系統(tǒng)會根據(jù)里面的內(nèi)容執(zhí)行代碼。

創(chuàng)建Activity
Activity是Android組件中最基本的組件之一,為用戶提供可視化界面及交互功能。每一個Activity都是一個繼承至Activity的獨立類,可以顯示控件和監(jiān)聽用戶事件并對事件做出響應。在Project模式下找到HelloWorldappsrcmainjavacom.example.helloworld右鍵new一個新的Empty Activity,程序會自動為我們生成一個activity_main.xml文件(這是個布局文件)。Activity文件主要用于完成界面的交互功能,布局文件用于顯示功能界面。

?Activity說明
Activity創(chuàng)建的時候會自動向AndroidManifest.xml中注冊Activity,注冊這個新增的MainActivity類后才能被順利調(diào)用。MainActivity繼承 AppCompatActivity,重寫Activity的onCreate方法。當MainActivity執(zhí)行時首先調(diào)用onCreate()的方法,在該方法中通過setContentView(R.layout.activity_main)將布局文件轉(zhuǎn)換成視圖對象顯示在界面上。

activity_main.xml布局
這個跟windows Form操作特別的像,直接拖動相應的控件到當前窗口即可顯示相應的功能。這里我們從左側(cè)的控件中找到Text->TextView控件,將其拖動到當前畫布中并通過右側(cè)的屬性設置將text屬性改成Hello World。

?Default Activity not found沒有找到默認的Activity
到這里一個最簡單的Hello World頁面就實現(xiàn)了,正常情況下一個Activity的布局、邏輯、注冊都好了就可以被訪問了,但是這里我們遇到了一個Default Activity not found錯誤。程序提示我們沒有默認的Activity,即缺少首次啟動程序時加載的頁面。

?配置Default Activity
在AndroidManifest.xml中找到你要最先啟動的Activity,在activity標簽中使用過濾器標簽intent-filter來表明Activity的意圖。設置action屬性表示設置當前Activity最先啟動,category屬性表示將當前應用顯示在桌面程序列表中。配置完成就可以啟動模擬器就可以測試該Hello World程序了,也就可以得到最上面的示圖效果了。

總結(jié):
通過手動創(chuàng)建Hello World程序我們可以簡單的了解到Android程序的運行機制,通過AndroidManifest.xml中注冊Activity來引導事件及頁面的響應。Activity必須有一個默認的主頁面,否則程序不知道從哪里開始載入。以上內(nèi)容是小編給大家分享的【Android實戰(zhàn)005:手動創(chuàng)建一個Hello World程序】,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。