- 1
AppCompatActivity 是一種向下兼容的Activity,可以將Activity在各個(gè)系統(tǒng)版本中增強(qiáng)的特性和功能
最低兼容到Android 2.1 系統(tǒng) - 2
對(duì)于資源的使用一般都是通過(guò)兩種,R.string.app_name或者是@string/app_name都可以找到位于
目錄下面的內(nèi)容。 - 3
Gradle 是一個(gè)項(xiàng)目構(gòu)建工具厂镇,基于Groovy領(lǐng)域特定語(yǔ)言(DSL)來(lái)申明項(xiàng)目設(shè)置。
最外層的build.gradle文件:里面代碼大部分是自動(dòng)生成的叁丧。
repositories {
jcenter()
}
聲明的jcenter()這個(gè)配置,就是一個(gè)代碼托管倉(cāng)庫(kù)椿息,我們可以輕松引用任何jcenter上的開(kāi)源項(xiàng)目了
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
這是引用了gradle插件歹袁,因?yàn)間radle不僅僅是給android用的,還有java 等寝优,這里是聲明是給android用条舔,后面是版本
最內(nèi)層的build.gradle,就是項(xiàng)目中的gradle:
apply plugin: 'com.android.application'//可以選擇兩種:com.android.application表示這是一個(gè)應(yīng)用程序模塊乏矾,
//com.android.library 表示這是一個(gè)庫(kù)模塊,前者可以直接運(yùn)行孟抗,后者作為代碼庫(kù)依附于別的應(yīng)用程序模塊運(yùn)行
android {
compileSdkVersion 25 //表示指定項(xiàng)目的編譯版本迁杨,
buildToolsVersion "25.0.1"http://表示指定項(xiàng)目構(gòu)建工具的版本,
defaultConfig {//里面對(duì)于項(xiàng)目進(jìn)行細(xì)節(jié)配置
applicationId "com.yuyi.myapplication" //表示指定的包名
minSdkVersion 15 //表示項(xiàng)目最低兼容的android系統(tǒng)版本
targetSdkVersion 25//表示你已經(jīng)在目標(biāo)版本做過(guò)了充分的測(cè)試凄硼,會(huì)為你展示當(dāng)前版本的新的功能和特性
versionCode 1 //指定項(xiàng)目的版本號(hào)
versionName "1.0" //指定的項(xiàng)目的版本名
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes { //用于指定生成安裝文件的相關(guān)配置铅协,通常有debug和release兩個(gè)閉包
release { //用于指定生成正式版安裝文件的配置。
minifyEnabled false //表示是否對(duì)項(xiàng)目的代碼進(jìn)行混淆摊沉,false表示不混淆狐史。
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//表示指定混淆使用的規(guī)則文件,一般指定兩個(gè)文件proguard-android.txt是指在Android SDK目錄下说墨,里面是所有項(xiàng)目通用的混淆規(guī)則骏全,
//proguard.rules.pro 實(shí)在當(dāng)前項(xiàng)目的根目錄下的,里面可以編寫(xiě)當(dāng)前項(xiàng)目特有的混淆規(guī)則尼斧,姜贡。
}
}
}
dependencies { //這里面是指定當(dāng)前項(xiàng)目所有的依賴(lài)關(guān)系。通常有三種依賴(lài)方式棺棵,本地依賴(lài)楼咳、庫(kù)依賴(lài)、遠(yuǎn)程依賴(lài)烛恤、
compile fileTree(include: ['*.jar'], dir: 'libs') //本地依賴(lài)聲明母怜,它表示將libs目錄下所有.jar后綴的文件都添加到項(xiàng)目的構(gòu)建路徑當(dāng)中。
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})//表示聲明測(cè)試用例庫(kù)的缚柏。
compile 'com.android.support:appcompat-v7:25.1.0' //表示的是標(biāo)準(zhǔn)的遠(yuǎn)程依賴(lài)庫(kù)格式糙申,com.android.support是域名部分,用于和其它公司區(qū)分船惨,appcompat-v7 是組名稱(chēng),
//用于和同一個(gè)公司中不同的庫(kù)做區(qū)分缕陕,Gradle 在構(gòu)建項(xiàng)目時(shí)候首先檢查本地是否有藏歌庫(kù)的緩存粱锐,如果沒(méi)有就回去自動(dòng)聯(lián)網(wǎng)下載。然后再添加到項(xiàng)目的構(gòu)建路徑當(dāng)中扛邑。
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.1.0'
compile 'com.loopj.android:android-async-http:1.4.9'
//庫(kù)依賴(lài)的聲明怜浅,compile project 后面加上依賴(lài)的庫(kù)名稱(chēng),比如:compile project(':helper)這句聲明就可以
}