Android - 第一章 基本認識
1. 分析目錄
1.1 自動生成無需關心
.gradle .idea bulid build.gradle
1.2 需要了解的
- .gitignore 該文件用來將指定的目錄或者文件排除子啊版本控制之外。
- gradle.properties 該文件是全局的gradle配置文件,在這裏配置的屬性將會影響到項目中所有的gradle編譯腳本。
- gradlew 和 gradlew.bat 用來子啊命令行界面執行gradle命令,gradlew在Linux或Mac系統中使用,gradlew.bat在Windows系統中使用。
- xxxx.iml iml文件是所有IntelliJ IDEA項目都會自動生成的一個文件,用來標識這個是一個IntelliJ IDEA項目,無須修改。
- local.properties 指定本機的Android SDK路徑,如果Android SDK位置改變則需修改。
- settings.gradle 用來指定項目中所有引入的模塊。一般都是自動完成。
1.3 app目錄下
- build 編譯中自動生成,無須修改。
- libs 項目中第三方jar包的目錄,自動添加到構建路徑中。
- androidTest 用來編寫Android Test 測試用例,可以對項目進行一些自動化測試。
- java 放置java 代碼的地方。
- res 資源目錄,drawable 圖片,layout 佈局,values 字符串、樣式、顏色等配置,mipmap 放應用圖標。
- AndroidMainifest.xml 整個Android項目的配置文件,四大組件需要在這注冊,可以給application添加權限聲明。
- test 用來編寫Unit Test 測試用例。
- .gitignore 作用與外層的.gitignore文件類似。
- app.iml IntelliJ IDEA項目都會自動生成的一個文件.
- build.gradle app模塊的gradle構建腳本,指定很多項目構建相關的配置。
- proguard-rules.pro 指定項目代碼的混淆規則,代碼開發完成後打成安裝包的保密措施。
2. 詳解res中資源
例子:引用res中字符串方式:
- 在代碼中通過R.stirng.hellow_world可以獲得該字符串的引用。
- 在XML中通過@string/hello_world可以獲得該字符串的引用。
例子:
<application
android:allowBackup=“true”
android:icon="@mipmap/ic_launcher"應用圖標
android:lablel="@striing/app_name"應用名稱
android:supportRtl=:true"
…
</application>
3.詳解build.gradle文件
Gradle 是一個項目構建工具,使用力基於groovy的領域特定語言DSL來聲明項目設置,摒棄了XML的配置。
最外層build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.toos.build:gradle:2.2.0'
}
allprojects {
repositories {
jcenter()
}
}
jcenter 代碼託管倉庫。
classpath 聲明一個Gradle插件,說明使用Gradle來構建Android項目。
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buldToolsVersion "24.0.2"
defaultConfig {
applicationId "com.exanple.helloworld"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildType {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependences {
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 指定項目編譯版本;
buildToolsVersion 指定項目構建工具版本;
defaultConfig 閉包:項目更多細節
applicationId 指定項目包名;
minSdkVersion 指定項目最低兼容的Android系統版本;
targetSdkVersion 指定的值表示在該目標版本已經做過測試;
versionCode 指定項目的版本號;
versionName 指定項目的版本名。
buildType閉包:指定生成安裝文件的相關配置;
debug 子閉包:指定生成測試版安裝文件的配置(可以忽略不寫);
release 子閉包:指定生成正式版安裝文件的配置
minifyEnabled 指定是否對項目的代碼進行混淆;
proguardFiles 指定混淆時使用的規則文件,proguard-android.txt 是Android SDK目錄下的,所有項目通用的混淆規則,proguard-rules.pro 是當前項目根目錄下編寫的特有混淆規則。注意,通過Android Studio 直接運行項目生成的都是測試版安裝文件。
dependencies 閉包:指定當前項目所有依賴關係。
三種依賴方式:
- 本地依賴:可以對本地的jar包或目錄添加依賴關係;
- 庫依賴:可以對項目中的庫模塊添加依賴關係;
- 遠程依賴:可以對jcenter庫上的開源項目添加依賴關係。
compile fileTree 表示將libs目錄下所有.jar後綴的文件都添加到項目的構建路徑中;
compile 遠程依賴,
com.android.support是域名部分,
appcompat -v7是組名稱,區分同一公司不同的庫,
24.2.1是版本號,區分同一庫不同版本;
compile project(‘:helper’)依賴helper庫模塊;
testCompile 聲明測試用例庫;
4. 使用日誌工具Log
4.1 五個等級
verbose
debug
info
warn
error
4.2 快捷鍵
logt + Tab 補全生成當前類名的一個TAG常量;
logd + Tab 補全生成debug級別打印日誌,以此類推。
4.3 logcat過濾器
過濾日誌