天天看點

從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 目錄下進行分析

編譯時自動生成的檔案

libs

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

androidTest

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

Java

放置代碼的地方

res

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

AndroidMainfest.xml

Android 項目的配置檔案。我們所使用的四大元件都需要在這裡注冊,權限的申請也在這裡,經常使用

test

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

版本控制(app 子產品内),用于裝置版本控制的時候忽略的内容

app.iml

IntelliJ IEDA 項目自動生成的檔案

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{

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