【Android開發入門教程】二.Android應用程式結構分析

六星_研鑫發表於2020-07-22

Java精品資料,Java 實戰專案,還有Android開發教程,內含多執行緒,結構,演算法,BATJ面試題等等大牛累積經驗~~ 需要更多資料,可以加入我們Java交流學習基地免費獲取: 925050116 !!!


一、新建HelloWorld專案:

1、開啟Eclipse,點選“File”->"New"->"Project"-Android Application Project"":

 

在彈出的“New Android Application”窗體中輸入相應的應用名稱、專案名稱、包名稱,並選擇相應的SDK版本和應用主題:

選擇專案儲存位置,一路“next”完成專案建立:

建立後的專案:

在建立後的專案名稱上右鍵單擊選擇“Run As”->“Android Application”執行剛建立的專案:

執行結果:

二、應用程式目錄結構簡析:

1、應用程式目錄結構:

2、各部分說明:

Activity檔案:雙擊目錄中的“MainActivity.java”,可以看到MainActivity的程式碼:


package android.basic.helloandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}


從程式碼中可以看到MainActivity繼承於Activity類,Activity是Android中的檢視部分,負責處理介面顯示。在MainActivity裡面重寫了父類的onCreate方法和onCreateOptionsMenu方法,在重寫的onCreate方法裡方法setContentView(R.layout.activity_main)給MainActivity設定了要顯示的檢視R.layout.activity_main,檢視由R類尋找並載入(感覺很像mvc,Activity相當於Controller而要顯示的layout就相當於具體的頁面)。

R檔案:在MainActivity的setContentView(R.layout.activity_main)方法中我們用R.layout.activity_main指定了要顯示的檢視,在應用程式目錄結構的截圖中可以看到R檔案位於gen目錄下面,雙擊顯示程式碼:

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */
package android.basic.helloandroid;
public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class id {
        public static final int menu_settings=0x7f070000;
    }
    public static final class layout {
        public static final int activity_main=0x7f030000;
    }
    public static final class menu {
        public static final int activity_main=0x7f060000;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
        public static final int hello_world=0x7f040001;
        public static final int menu_settings=0x7f040002;
    }
    public static final class style {
        /**
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        Base application theme for API 11+. This theme completely replaces
        AppBaseTheme from res/values/styles.xml on API 11+ devices.
 API 11 theme customizations can go here.
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
 API 14 theme customizations can go here.
         */
        public static final int AppBaseTheme=0x7f050000;
        /**  Application theme.
 All customizations that are NOT specific to a particular API-level can go here.
         */
        public static final int AppTheme=0x7f050001;
    }
}


從程式碼中可以看到R檔案裡面有很多類,每個類裡面又有很多變數,這些類和變數在我們新增、刪除控制元件或資原始檔(圖片、聲音等)由開發工具自動幫我們維護的,由它來呼叫應用程式的各種資源,在程式碼第一句的註釋中也說明了“AUTO-GENERATED FILE.  DO NOT MODIFY”。

layout檔案:res/layout/activity_main.xml – 佈局檔案,雙擊activity_main.xml會進入視覺化編輯介面,在這裡你可以根據需要選擇相應的控制元件:

 

也可以點選紅框部分進入文字編輯介面直接寫對應控制元件的程式碼(從截圖程式碼檔案可以看到該layout由一個相對佈局和一個文字框組成):

AndroidManifest檔案:在應用程式目錄截圖中倒數第四個可以看到一個AndroidManifest.xml檔案,它是應用程式的配置檔案包含在每個安卓應用程式中,它向系統描述了本程式所包括的元件、所實現的功能、所能處理的資料、要請求的資源等,可以近似看做網站中的Web.conig檔案,同樣它也可以由視覺化編輯器或文字編輯器編輯:

Android.jar檔案:Android.jar內部常用包作用概述,如下圖所示:

 

 

可以看到Android.jar裡面包含了很多包,常見包的作用如下:

android.app-----------提供高層的程式模型、提供基本的執行環境
android.content-------包含各種的對裝置上的資料進行訪問和釋出的類
android.database------透過內容提供者瀏覽和運算元據庫
android.graphics-------底層的圖形庫,包含畫布,顏色過濾,點,矩形,可以將他們直接繪製到螢幕上.
android.location-------定位和相關服務的類
android.media---------提供一些類管理多種音訊、影片的媒體介面
android.net------------提供幫助網路訪問的類,超過通常的java.net.* 介面
android.os-------------提供了系統服務、訊息傳輸、IPC 機制
android.opengl--------提供OpenGL 的工具
android.provider-------提供類訪問Android 的內容提供者
android.telephony-----提供與撥打電話相關的API 互動
android.view-----------提供基礎的使用者介面介面框架
android.util------------涉及工具性的方法,例如時間日期的操作
android.webkit---------預設瀏覽器操作介面
android.widget---------包含各種UI 元素(大部分是可見的)在應用程式的螢幕中使用


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69977571/viewspace-2706182/,如需轉載,請註明出處,否則將追究法律責任。

相關文章