Android學習筆記2:Hello World程序解析

《第一行代碼——Android》郭霖著
Android Studio入門到精通java

更多內容,請訪問個人博客醒島android

Android Studio與Eclipse的一些不一樣

Android Studio是基於IDEA的,IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境。IDEA與Eclipse有很大的區別,它們主要的不一樣在這篇文章中有詳細的說明,在此就不贅述了。因此AS新建的時候有new application和new module開發。IDEA沒有工做空間這樣的說法。具體來講有如下三點:app

  1. android studio是單工程的開發模式eclipse

  2. android studio中的application至關於eclipse裏的workspace概念ide

  3. android studio中的module至關於eclipse裏的project概念工具

Android Studio目錄結構

新建工程項目後切換到「project」模式下的目錄結構以下圖所示:
目錄1.PNG佈局

  • .idea:AS生成的工程配置文件,相似Eclipse的project.properties。gradle

  • app:AS建立工程中的一個Module。ui

  • gradle:構建工具系統的jar和wrapper等,jar告訴了AS如何與系統安裝的gradle構建聯繫。idea

  • External Libraries:不是一個文件夾,只是依賴lib文件,如SDK等。

打開「app」摺疊項的目錄結構以下圖所示:
目錄2

  • build:構建目錄,至關於Eclipse中默認Java工程的bin目錄,鼠標放在上面右鍵Show in Exploer便可打開文件夾,編譯生成的apk也在這個目錄的outs子目錄,不過在AS的工程裏是默認不顯示out目錄的,就算有編譯結果也不顯示,右鍵打開經過文件夾直接能夠看。

  • libs:依賴包,包含jar包和jni等包。

  • src:包括java代碼和資源文件。在src目錄下有一個main的分組,同時劃分出java和res兩個文件夾,java文件夾則至關於Eclipse下的src文件夾,res目錄結構則同樣。同時在main中還有一個AndroidManifest.xml文件,它記錄着App基本信息(Android管理文件)。在src下的 build.gradle則是Module的Gradle構建腳本。

Hello World程序分析

首先打開AndroidManifest.xml文件,從中能夠找到以下代碼:

<activity android:name=".MainActivity">
     <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
</activity>

這段代碼表示對MainActivity這個活動進行註冊,沒有在AndroidManifest.xml裏註冊的活動是不能使用的。其中intent-filter裏的兩行代碼很是重要,<action android:name= "android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />表示MainActivity是這個項目的主活動,在手機上點擊應用圖標,首先啓動的就是這個活動。你在啓動時看到的界面,其實就是MainActivity。

而後,打開MainActivity.java。你能夠看到MainActivity是繼承自Activity的。。Activity是Android系統提供的一個活動基類,咱們項目中全部的活動都必需要繼承它才能擁有活動的特性。咱們來看一下onCreate方法。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
}

onCreate()方法是一個活動被建立時一定要執行的方法。方法中的第一行代碼很容易理解,就是執行父類中的onCreate()方法。第二行調用了setContentView()方法,就是這個方法給當前的活動引入了一個activity_main佈局。R.layout.activity_main是一種引用資源的格式,此處引用了layout中的activity_main佈局。(這是在代碼中引用資源的格式,在xml中能夠經過@xxx/xxxxx的方式來引用。)讓咱們打開layout中的activity_main.xml看看究竟寫了什麼吧。

打開activity_main.xml後在左下角選擇Text。(固然,Design視圖可讓咱們可視化地看到layout界面。)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.chamlhy.hello.helloworld.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

看到代碼中有有一個TextView,這是Android系統提供的一個控件,用於在佈局中顯示文字的。其中text設置爲「Hello World!」,這就是咱們應用界面上顯示的文字了。

相關文章
相關標籤/搜索