您好,登錄后才能下訂單哦!
本人作為一名android小白初次寫博客,不好之處請多多包含,歡迎各位大神指點迷津.....
初次接觸android不管是從學校還是培訓機構出來的,最先接觸的知識肯定是安裝開發工具了(Android Studio),這里就不再詳細介紹了(百度一大堆),其次就是學習工具的使用,比如一些常用的快捷鍵還有創建項目等等,最后就是各種控件以及各種知識點的學習了。
作為小白的一員,基本上我也是這么過來的,但是到真真工作的時候問題就來了,配置文件中各個參數是什么意思?引入三方庫時或者系統版本過高時都需要更改配置文件但無從下手,我不知道其他初學者是不是也會遇見這樣類似的問題,反正我是遇見了,于是乎下面就將新建項目中的文件做一詳細說明,希望對一些不懂的初學者有所幫助。
1..gradle和.idea
這兩者目錄下放置的都是Android Studio自動生成的一些文件,我們無需關心也不必要對其做修改。
2. app
這里面放置的是我們所寫的項目代碼以及資源等內容,我們后續的開發工作基本上都是在這個目錄下面進行的
3. build
這里面放置的時編譯時自動產生的文件,不需要修改,也不需要納入項目源代碼管理中。
4. gradle
這個目錄下包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前將gradle下載好,而是會自動工具本地緩存情況決定是否需要聯網下載gradle。Android Studio默認是沒有啟用gradle wrapper的方式,如果需要打開,可以在File-Setting-Build,Execution,Deployment-Gradle中配在修改。
5. .gitignore
這個文件是用來將指定的文件或者目錄排除在版本控制外的
6. build.gradle
這個是項目全局的gradle配置文件,通常這個文件是不需要修改的
7. gradle.properties
這個文件是全局的gradle配置文件,在這里配置的屬性將會影響到項目中所有的gradle編譯腳本
8. gradlew 和 gradlew.bat
這兩個文件是用來在命令行界面中執行gradle命令的,其中gradlew是在Linux或者Mac系統中使用的,gradlew.bat是在Windows系統中使用的
9. .iml
iml文件是所有IntelliJ IDEA項目都會自動生成的一個文件(Android Stuido 是基于IntelliJ IDEA 開發的),用于標識這是一個 IntelliJ IDEA項目,我們不需要修改這個文件中的任何內容
10. local.properties
這個文件用于指定本集中的Android SDK 路徑,通常內容都是自動生成的,我們并不需要修改。除非你本機中的SDK位置發生了變化,那么就將這個文件中的路徑改成新的位置即可
11. setting.gradle
這個文件用于指定項目中所有引入的模塊。通常情況下模塊的引入都是自動完成的,需要我們手動去修改這個文件的場景可能較少
下面我們來詳細看一下最外層的build.gradle
//設置腳本的運行環境
buildscript {
//使用maven的依賴,用于項目的依賴
repositories {
mavenCentral()
}
//依賴插件
dependencies {
//注意,插件使用這里的Gradle版本盡量要和你Android Studio的Gradle插件版本一致
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
//舉例
//共享配置
allprojects {
//所有的項目(包括當前項目以及其子項目)應用上idea插件。
apply plugin: 'idea'
}
app模塊下的build.gradle
//聲明當前構建的是 android 應用 還是 library
apply plugin: 'com.android.library'
apply plugin: 'com.android.application'
//依賴包
dependencies{
//加載本地目錄下的jar包
compile fileTree(dir:'libs',include:'*.jar')
//加載本地目錄下的.so庫,版本>2.4 Gradle可使用,低版本添加.so 請google
compile fileTree(dir: 'libs/armeabi', include: '*/so')
//直接指定依賴的包,地址是當前工程為根目錄
compile files('libs/android-support-v4.jar')
//引用當前目錄下的android-library項目,‘eventbuslib’為項目名稱,注意":"一定要有
compile project(':eventbuslib')
//配置遠程倉庫中的jar包,打包時,檢查本地有沒有,若沒有則下載到本地
//下載的位置:項目名/build/intermediates/exploded-arr/
compile 'com.android.support:appcompat-v7:22.0.0'
}
//設置編碼類型
tasks.withType(JavaCompile) { options.encoding = "UTF-8" }
//設置當前Android應用構建信息
android {
//打包SDK版本
compileSdkVersion 21
//編譯工具版本
buildToolsVersion "20.0.0"
//默認打包配置
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
//資源文件目錄
sourceSets{
main{
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
//打簽名設置
signingConfigs{
myConfig{
//key文件,絕對路徑和相對路徑都可以
storeFile file("doucument/pragram_key/bluekey")
storePassword "key鑰密碼"
keyAlias "別名"
keyPassword "別名密碼"
}
}
//構建簽名和混淆
buildTypes {
release {
//簽名文件
signingConfig signingConfigs.myConfig
//是否打開混淆
minifyEnabled false
//混淆配置文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//打包設置
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/ASL2.0'
}
//測試所在的路徑,這里假設是tests文件夾,沒有可以不寫這一行
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。