1. 程式人生 > >第一行程式碼第一章——你的第一行Android程式碼

第一行程式碼第一章——你的第一行Android程式碼

第一行程式碼第一章—你的第一行Android程式碼

知識點目錄

  • 1.1 瞭解全貌——Android王國簡介

    • 1.1.1 Android系統架構
    • 1.1.2 Android已釋出的版本
    • 1.1.3 Android應用開發特色
  • 1.2 手把手帶你搭建開發環境

    • 1.2.1 準備所需要的工具
    • 1.2.2 搭建開發環境
  • 1.3 建立你的第一個Android專案

    • 1.3.1 建立HelloWorld專案
    • 1.3.2 啟動模擬器
    • 1.3.3 執行HelloWorld
    • 1.3.4 分析你的第一個Android程式
    • 1.3.5 詳解專案中的資源
    • 1.3.6 詳解build.gradle檔案
  • 1.4 前行必備——掌握日誌工具的使用

    • 1.4.1 使用Android的日誌工具
    • 1.4.2 為什麼使用Log而不使用System.out
  • 1.5 小結與點評

知識點回顧

1.1 瞭解全貌——Android王國簡介

無知識點

1.1.1 Android系統架構
  • Linux核心層

    為Android裝置的各種硬體提供底層的驅動

  • 系統執行庫層

    通過一些C/C++庫為Android系統提供特性支援;還有Android執行時的庫。

  • 應用框架層

    提供了構建應用程式時可能用到的各種API。

  • 應用層

    安裝在手機上的應用程式

1.1.2 Android已釋出的版本

最新資料可以訪問如下網址:

1.1.3 Android應用開發特色
  • 四大元件

    Activity、Service、BroadcastReceiver、ContentProvider

  • 豐富的系統控制元件

  • SQLite資料庫

  • 強大的多媒體

  • 地理位置地位

  • and so on

1.2 手把手帶你搭建開發環境

無知識點

1.2.1 準備所需要的工具

能翻牆的前提下,到Android官網下載開發工具

如果不能翻牆,則到下面的網址去下載。

1.2.3 搭建開發環境

下載Android Studio後,根安裝普通軟體一樣,一路Next即可。

1.3 建立你的第一個Android專案

無知識點

1.3.1 建立HelloWorld專案。
  1. 開啟Android Studio,進入歡迎介面。
    AS的歡迎介面

  2. 點選Start a new Android Studio project,進入建立新專案介面
    建立新專案

  3. 進入設定專案的最低相容版本
    設定專案的最低相容版本

  4. 進入選擇模板
    選擇模板

  5. 給活動和佈局命名
    給活動和佈局命名

  6. 點選Finish按鈕,進入到專案建立成功介面。

1.3.2 啟動模擬器

點選下圖中最左邊的按鈕就可以建立和啟動模擬器。

建立和啟動模擬器

但個人覺得Android Studio原生的模擬器不是很好用,所以我平時選用的是第三方的genymotion模擬器。

genymotion下載網址如下:

需要先註冊。

1.3.3 執行HelloWorld
  • 啟動模擬器

  • 點選頂部工具欄中的執行按鈕

  • 在Select Deployment Target選中模擬器,點選OK按鈕。

1.3.4 分析你的第一個Android程式

將專案結構模式切換成Project

Project模式的專案結構

下面介紹整個專案的外層目錄結構。

  • .gradle和.idea

    Android Studio自動生成的檔案,無需關心

  • app

    專案的程式碼和資原始檔

  • build

    包含編譯時自動生成的檔案

  • gradle

    包含gradle wrapper的配置檔案

  • .gitgnore

    將指定的目錄或檔案排除在版本控制之外

  • build.gradle

    專案全域性的gradle構建指令碼,一般都不需要修改

  • gradle.properties

    全域性的gradle配置檔案,直接影響專案中所有的gradle編譯指令碼

  • gradlew和gradlew.bat

    用來在命令列中執行gradle命令,其中gradlew是在Linux或Mac系統中使用的,gradlew.bat是在Windows系統中使用。

  • HelloWorld.xml

    iml檔案是所有IntelliJ IDEA專案都會自動生成的一個檔案,用於標識這是一個IntelliJ IDEA專案,無需修改該檔案中的任何內容。

  • local.properties

    用於指定本機中SDK的路徑,自動生成,無需修改。

  • settings.gradle

    指定專案中所有引入的模組

展開app目錄:

app目錄

下面詳細介紹下app目錄下的內容

  • build

    編譯時自動生成的檔案,無需關心

  • libs

    存放第三方jar包,放在該目錄下的jar包會自動新增到構建路徑中去。

  • androidTest

    編寫Android Test測試用例,對專案進行一些自動化測試。

  • Java

    存放所有Java程式碼

  • res

    存放專案中所有圖片、佈局、字串等資原始檔

  • AndroidManifest.xml

    Android專案配置檔案

  • test

    編寫Unit Test 測試用例,是對專案進行自動化測試的另一種方式

  • .gitgnore

    將app模組內指定的目錄排除在版本控制之外

  • app.iml

    IntelliJ IDEA專案自動生成的檔案

  • build.gradle

    app模組的gradle構建指令碼

  • proguard-rules.pro

    指定專案程式碼的混淆規則

1.3.5 詳解專案中的資原始檔

無知識點

1.3.6 詳解build.gradle檔案

最外層目錄下的build.gradle檔案,程式碼如下:

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.3.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

這些程式碼都是自動生成的,通常情況下不需要修改這個檔案中的內容。兩處repositories閉包中都聲明瞭jcenter(),jcenter是一個程式碼託管倉庫,從而使得我們在專案中可以引用任何jcenter上的開源專案。dependencies閉包中使用classpath聲明瞭一個Gradle外掛,因為Gradle並不是專門為構建Android專案而開發的,Java、C++等很多種專案都可以使用Gradle來構建。如果想要使用Gradle來構建Android專案,則需要宣告com.android.tools.build:gradle:2.3.3這個外掛,其中,後面是外掛的版本號。

app目錄下的build.gradle檔案,程式碼如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "27.0.0"
    defaultConfig {
        applicationId "com.example.helloworld"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:26.+'
    testCompile 'junit:junit:4.12'
}

首先第一行應用了一個外掛,一般有兩種值可選:com.android.application表示這是一個應用程式模組;com.android.library表示是一個庫模組。應用程式模組是可以直接執行的,庫模組只能作為程式碼庫附於在別的應用程式模組來執行。

android閉包:

compileSdkVersion:指定專案的編譯版本。

buildToolsVersion:指定專案構建工具的版本。

defaultConfig閉包:

applicationId:指定專案的包名

minSdkVersion:指定專案最低相容的Android系統版本

targetSdkVersion:指定專案的目標版本

versionCode:指定專案的版本號

versionName:指定專案的版本名

buildTypes閉包:

通常只會有兩個子閉包:debug和release。其中debug閉包可以忽略不寫。debug閉包用於指定生成測試版安裝檔案的配置;release閉包用於指定生成正式版安裝檔案的配置。

release閉包

minifyEnabled:指定是否對專案的程式碼進行混淆。

proguardFiles:指定混淆時使用的規則檔案。proguard-android.txt是在Android SDK目錄下,裡面是所有專案通用的混淆規則;proguard-rules.pro是在當前專案的根目錄下,裡面可以編寫當前專案特有的混淆規則。

dependencies閉包

指定當前專案所有的依賴關係。

compile fileTree:宣告本地依賴,表示將libs目錄下所有.jar字尾的檔案都新增到專案的構建路徑中。

compile:宣告遠端依賴。

testCompile:宣告測試用例庫。

1.4 前行必備——掌握日誌工具的使用

無知識點

1.4.1 使用Android的日誌工具Log
  • Log.v():列印最為瑣碎的、意義最小的日誌資訊。(verbose)

  • Log.d():列印除錯資訊。(debug)

  • Log.i():列印重要的日誌資訊。(info)

  • Log.w():列印一些警告資訊。(warn)

  • Log.e():列印程式中的錯誤資訊。(error)

日誌等級由低到高:v -> d -> i -> w -> e

執行程式的快捷鍵

Windows : Shift + F10

Mac : control + R

1.4.2 為什麼使用Log而不使用System.out
  • logcat中能新增過濾器

  • 可以控制日誌級別

1.5 小結與點評

無知識點