Android - 第一章 基本認識

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過濾器

過濾日誌

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