第一行程式碼第一章——你的第一行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專案。
開啟Android Studio,進入歡迎介面。
點選Start a new Android Studio project,進入建立新專案介面
進入設定專案的最低相容版本
進入選擇模板
給活動和佈局命名
點選Finish按鈕,進入到專案建立成功介面。
1.3.2 啟動模擬器
點選下圖中最左邊的按鈕就可以建立和啟動模擬器。
但個人覺得Android Studio原生的模擬器不是很好用,所以我平時選用的是第三方的genymotion模擬器。
genymotion下載網址如下:
需要先註冊。
1.3.3 執行HelloWorld
啟動模擬器
點選頂部工具欄中的執行按鈕
在Select Deployment Target選中模擬器,點選OK按鈕。
1.3.4 分析你的第一個Android程式
將專案結構模式切換成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目錄下的內容
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 小結與點評
無知識點