從0系統學Android--1.3創建你的第一個 Android 項目

從0系統學Android--1.3創建你的第一個 Android 項目
1.3 創建你的第一個 Android 項目
環境搭建完成後,我們就可以寫下我們的第一個項目了。

1.3.1 創建 HelloWorld 項目
在 Android Studio 的歡迎頁面點擊 Start a new Android Studio project 就會自動爲我們創建一個項目。(首次開啓項目,可能構建時間很長,需要下載很多東西,和你的網速有關係)

1.3.2 啓動模擬器
我們還可以通過 Android Studio 來創建一個模擬器,供我們運行程序。不過建議使用真機測試。

1.3.3 運行程序
手機和 Android Studio 連接上後,我們就往手機上面運行程序了。

1.3.4 分析你的第一個 Android 程序
gradle 和 .idea

這兩個目錄下放置的都是 Android Studio 自動生成的一些文件,我們無需關心。也不要去手動編輯

app

項目中的代碼、資源等內容幾乎都放在這個目錄下。

build

無需關心,編譯產生的文件

gradle

這個目錄下包含了 gradle wrapper 的配置文件,使用 gradle wrapper 的方式不需要提前將 gradle 下載好,而是會根據本地的緩存情況決定是否需要聯網下載。

.gitignore

版本控制有關

build.gradle

全局的 gradle 構建腳本。

gradle.properties

全局的 gradle 配置文件。在這裏配置的屬性會影響到項目中所有的 gradle 編譯腳本。

gradlew 和 gradlew.bat

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

HelloWorld.iml

是所有的 IntelliJ IDEA 項目都會自動生成一個文件,用於標識這是一個 IntelliJ IDEA 項目。

local.properties

指定本機中的 SDK 路徑

setting.gradle

指定項目中所引入的模塊。

除了 APP 目錄以外,大多的文件和目錄都是自動生成的,不需要我們去修改。app 目錄纔是我們關注的重點。

APP 目錄下進行分析

build

編譯時自動生成的文件

libs

使用了第三方 jar ,存放目錄

androidTest

編寫 Android Test 測試用例的,可以對項目進行一些自動化測試

Java

放置代碼的地方

res

存放資源,這裏面又有很多目錄,後面詳解介紹

AndroidMainfest.xml

Android 項目的配置文件。我們所使用的四大組件都需要在這裏註冊,權限的申請也在這裏,經常使用

test

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

.gitignore

版本控制(app 模塊內),用於設備版本控制的時候忽略的內容

app.iml

IntelliJ IEDA 項目自動生成的文件

build.gradle

app 模塊的 gradle 構建腳本。項目構建相關的配置

proguard-rules.pro

混淆規則。作用:防止我們編譯的 apk 包被別人反編譯後可以輕鬆查看。

介紹完這些目錄,是不是感覺到很混亂呢,感覺都不知道在說什麼,沒關係,這些東西后面慢慢接觸就清楚了。

介紹 HelloWorld 項目是如何啓動的

首先查看 清單文件 AndroidManifest.xml

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


這段代碼就表示對 HelloWorldActiviy 進行註冊,如果不註冊的話是會報錯的。

其中



表示這個項目的主 Activity 就是這個,啓動程序的時候會首先打開這個 Activity。

Activity 就是我們所看到的頁面,下面看一下代碼是怎麼寫的

public class HelloWorldActivity extends AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.hello_world_layout);
}

}
HelloWorldActiviyt 是繼承 APPCompatActivity 的,這是一種向下兼容的 Activity,這樣可以使用 Activity 在不同系統版本中增加的新特性和功能可以在比較舊的系統上仍然使用(兼容到 Android 2.1)。

Android 程序設計講究邏輯和視圖的分離。界面是不在 Activity 中直接編寫的。而是在佈局文件中編寫界面。

1.3.5 詳解項目中的資源
res 目錄介紹

drawable

用來存放圖片

mipmap

存放應用圖標

values

string、color、樣式等配置

layout

存放佈局

有這麼多的 mipmap 開頭的目錄是爲了讓程序更好的兼容各種分辨率的手機。drawable 文件夾也應該是相同的道理,我們應該自己創建多個目錄:drawable-hdpi drawable-xhdpi drawable-xxhdpi drawable-xxxhdpi 圖片最好分別制定多個,分別放到不同的目錄下,程序運行的時候會自動到對應的目錄查找。

只有一套圖的時候,把圖片放到 drawable-xxhdpi 文件夾

1.3.6 詳解 build.gradle 文件
Android Studio 是基於 Gradle 來構建項目的,Gradle 是一種非常先進的構建工具。它基於 Groovy 的領域特定語言(DSL)。擯棄了傳統的基於 xml (如 Ant、Maven)的各種繁瑣的配置。

注意:在新的版本中 compile 已經被 implementation 代替了,由於是在《第一行代碼》參考下,所以下面還是 compile

buildscript{
repositories{

jcenter()

}

dependencies{

classpath 'com.android.tools.build:gradle:2.2.0'

}

}

allprojects{
repositories{

jcenter()

}
}
jcenter 是一個代碼託管庫,很多的開源代碼都放在這個庫裏面,聲明瞭這個配置,我們就可以輕鬆的引用庫裏面的開源代碼了。

dependencies 閉包中使用 classpath 聲明瞭一個 Gradle 插件,之所聲明這個插件是因爲,Gradle 並不是專門爲 Android 項目開發的,Java 、C++ 等很多項目同樣可以使用 Gradle 來構建,如果我們想要用 Gradle 來構建 Android 項目就需要我們使用 Gradle 針對 Android 的插件工具了。

通常情況下我們不需要修改這裏面的內容,除非我們想要添加一些全局的項目構建配置。

內層 APP 目錄下的 build.gradle

apply plugin: com.android.application
android{

compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig{
    applicationId "com.example.helloworld"
    minSdkVersion 15
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
}
buildTypes{
    release{
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    }
}

}

dependecies{

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

}
第一行應用了一個插件,一般有兩種值可以選擇:com.android.application 表示這是一個應用程序模塊,可以直接運行。com.android.library 表示這是一個庫模塊,只能依附於別的應用程序運行。

下面是一個 android 大閉包,配置項目構建的各種屬性。

compileSdkVersion 指定編譯版本,這裏指定的 24 表示使用 Android 7.0 系統的 SDK 編譯。

buildToolsVersion 用於指定項目構建工具的版本

然後 android 包中又嵌套了一個 defaultConfig 閉包,對項目中的更多細節進行配置。

applicationId 用於指定項目的包名

minSdkVersion 指定項目最低兼容的 Android 版本

targetSdkVersion 表示你在該目標版本上已經做過充分的測試,系統會啓用這個版本的新的特性和功能。

versionCode 指定項目的版本號

versionName 指定項目的版本名

下面就是 buildType 閉包,這裏面的配置主要是生成安裝文件相關的配置,通常只有兩個子閉包,一個是 debug,一個是release 。debug 閉包用於配置測試包。release 用於配置正式包。debug 包可以忽略不寫。

查看 release 包中的內容:minifyEnabled 用於指定是否對項目的代碼進行混淆,true 表示是,false 表示否。proguardFiles 用於指定混淆使用的規則文件,這裏指定了兩個文件,一個是 proguard-android.txt ,這個在 Android SDK 下面,是所有項目通用的混淆規則,第二個是 proguard-rules.pro 在當前根目錄下,裏面編寫當前項目的混淆規則,通過 Android Studio 直接運行的都是測試安裝文件。

dependencies閉包

這裏面主要說明當前項目的依賴關係。Android Studio 項目一共有三種依賴關係:本地依賴、庫依賴、遠程依賴

本地依賴: 就是對本地 jar 包或者目錄添加依賴關係。

庫依賴: 對項目中的庫模塊進行依賴

遠程依賴: 對遠程倉庫上面的開源項目進行依賴。

compile fileTree 就是對一個本地依賴聲明。它表示將 libs 目錄下的所有 .jar 後綴的文件全部添加到項目的構建路徑中。

下面的 compile 'com.android.**' 就依賴的遠程倉庫。添加上這句後,Gradle 在構建項目的時候會首先檢查一下本地是否有這個庫的緩存,沒有就去對應的倉庫下載。

庫依賴的基本格式是:compile project 加上要依賴的庫名稱。例如有個庫模塊叫:helper,則:

compile project(':helper')
testCompile 這個是用於聲明測試用例庫的。
原文地址https://www.cnblogs.com/sydmobile/p/11220640.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章