§1.2 Android項目結構及“Hello World”應用解析

來源:互聯網
上載者:User

標籤:

書接上文,我們建立一個新的Android項目,進入Android Studio開發頁面,如:

左側為項目工具視窗,通過項目工具視窗可以管理整個項目的相關檔案
右側為代碼編輯區,我們可以在這裡進行Android程式的開發工作
底部為調試區,在調試區可以進行程式的斷點調試、日誌列印,可以監視整個程式的記憶體消耗,從而有針對性的進行效能最佳化。

首先,通過查看左側的項目工具視窗區,為大家介紹一個Android項目的基本結構:

如所示,在這裡我們只需要關注圖中app目錄下的內容:

  • build目錄:構建目錄,相當於Java SE開發中的bin目錄,該目錄為自動產生的,我們不需要關心裏面的內容,也沒必要改動其中的內容。

  • libs目錄:依賴包目錄,我們通常將第三方jar包放置在該目錄下

  • src目錄:src目錄是我們日常開發中經常打交道的一個目錄,其中androidTest目錄和test目錄用於測試,此處不做介紹,我們著重介紹的是main目錄,main目錄分為:java目錄、res目錄、AndroidManifest.xml檔案

????java目錄:存放Java代碼

????res目錄:存放資源檔,其中:
????drawable存放圖片資源
????layout存放布局檔案
????mipmap也是存放映像資源的,在使用上和drawable沒什麼區別,但在縮放方面做了一定的最佳化,因此,我們通常將表徵圖存在在mipmap中。
????value存放了一些字串資源,我們在後面章節會詳細介紹

????AndroidManifest檔案:是對整個Android項目的設定檔

運行代碼,得到運行結果:

可以看到,在手機上顯示出了“Hello World”字串

以蓋房子為例,我們首先要有一張圖紙,即我們要蓋什麼樣的房子;
然後,我們要根據圖紙建造房子;當然,我們還要為房子在“有關部門”登記。

 

其實Android程式的運行和蓋房子的流程是類似的。

首先,查看xml布局檔案代碼:activty_main.xml

 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     xmlns:tools="http://schemas.android.com/tools" 4     android:id="@+id/activity_main" 5     android:layout_width="match_parent" 6     android:layout_height="match_parent" 7     android:paddingBottom="@dimen/activity_vertical_margin" 8     android:paddingLeft="@dimen/activity_horizontal_margin" 9     android:paddingRight="@dimen/activity_horizontal_margin"10     android:paddingTop="@dimen/activity_vertical_margin"11     tools:context="com.rongma.helloworld.MainActivity">12 13     <TextView14         android:layout_width="wrap_content"15         android:layout_height="wrap_content"16         android:text="Hello World!" />17 </RelativeLayout>

暫時不必知道這個布局檔案代碼的含義,我們只需要知道,這個檔案是用來“告訴機器”,我們要在手機上顯示“Hello World”字串。(類比到蓋房子,其實這就是圖紙)

然後,查看Java代碼:MainActivity.java

1 public class MainActivity extends Activity {2     @Override3     protected void onCreate(Bundle savedInstanceState) {4         super.onCreate(savedInstanceState);5         setContentView(R.layout.activity_main);6     }7 }

不是什麼人都可以蓋房子的,為瞭解鎖“蓋房子”的技能,我們要讓MainActivity繼承自Activity類,即所有描述獨立頁面的類都要繼承自Activity類(或Activity的後代類),以此來獲得“蓋房子”技能。

然後,我們可以看到在onCreate方法中,調用了setContentView方法來擷取布局。其中傳入的參數為R.layout.activity_main. 這個方法用於擷取到我們的“圖紙”,並根據“圖紙”來蓋這個房子,並對房子進行操作。那麼,此處的圖紙就是R.layout.activity_main.

R.java檔案是根據應用的資源檔自動產生的Android應用字典,在這個檔案裡,我們可以找到Android布局資源、圖片資源、字串資源等相關的映射。在這裡,R.layout.activity_main 其實相當於調用了layout資源檔夾下的activity_main.xml布局檔案

最後,要將“房子”登記到“有關部門”:

Android程式的“有關部門”------AndroidManifest.xml

之所以稱AndroidManifest請單檔案為“有關部門”,因為它是整個Android應用的全域描述檔案,它說明了該應用的名稱、表徵圖、許可權、組件等。
這是初始狀態下,系統產生的AndroidManifest.xml資訊清單檔:

 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3     package="com.rongma.helloworld"> 4  5     <application 6         android:allowBackup="true" 7         android:icon="@mipmap/ic_launcher" 8         android:label="@string/app_name" 9         android:supportsRtl="true"10         android:theme="@style/AppTheme">11         <activity android:name=".MainActivity">12             <intent-filter>13                 <action android:name="android.intent.action.MAIN" />14                 <category android:name="android.intent.category.LAUNCHER" />15             </intent-filter>16         </activity>17     </application>18 </manifest>

在activity節點,我們可以看到android:name=".MainActivity" 此處相對應的就是com.rongma.helloworld.MainActivity檔案。也就是對MainActivity這個檔案進行了登記。
每一個頁面建立之後,都需要在資訊清單檔下進行註冊,註冊方法:

<activity android:name="Activity的檔案名稱"></activity>

如果這個頁面是“首頁”,即剛進入app時顯示的第一個頁面,其註冊方法:

<activity android:name="Activity的檔案名稱"><intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter></activity>
總結:

我們要讓“Hello World”顯示在介面上:

首先,要在res/layout檔案夾下,寫一個xml布局檔案(圖紙)
然後,建立一個類,繼承自Activity(解鎖建造技能),通過setContentView方法擷取布局檔案(擷取圖紙)
最後,在AndroidManifest.xml檔案下,進行註冊(有關部門處登記)

 

§1.2 Android項目結構及“Hello World”應用解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.