Build Variants
前因:
跳槽到Android Studio ,發現Android Studio 超好用的!但我不會用XD
這裏完全是紀錄:“)
-------------------------------------------------------------------------------------------
這裏是結論:
最後還是把這些用好了放在github,好像跳得有點快!哈哈。
https://github.com/liliyou/Build-Variants2
-------------------------------------------------------------------------------------------
文章開始:
參考:http://avatarqing.github.io/Gradle-Plugin-User-Guide-Chinese-Verision/build_variants/README.html
新构建系统的一个目标就是允许为同一个应用创建不同的版本。
这里有两个主要的使用情景:
- 同一个应用的不同版本。 例如一个免费的版本和一个收费的专业版本。
- 同一个应用需要打包成不同的apk以发布Google Play Store。 点击此处查看更多详细信息。
- 综合1和2两种情景。
这个目标就是要让在同一个项目里生成不同的APK成为可能,以取代以前需要使用一个库项目和两个及两个以上的应用项目分别生成不同APK的做法。
-------------------------------------------------------------------------------------------
參考:http://tulipemoutarde.be/2013/10/06/gradle-build-variants-for-your-android-project.html
這裏是github可以直接下載的檔案。但因為我下載不下來,夠厲害的直接看完就會了喔!
由於下載不下來我只好繼續找別的方法:“(
-------------------------------------------------------------------------------------------
參考:https://www.youtube.com/watch?v=yGK8DCKB-H0
這個方法和debug以及release版本
其實他有附網址:http://tools.android.com/tech-docs/new-build-system/user-guide
學習力較好的應該看這個叫懂了,但因為我不好所以繼續XD
-------------------------------------------------------------------------------------------
//開始不負責任的教學
我們可以看到Android studio 左下角有Build Variants,點開裡面Build Variants(按下debug)後我們可以看到Build Variants有兩個版本,release & debug,
仔細觀察youtube 的code 我們的buile.gradle 和他的有幾處不同。
以下是我的程式碼不同的地方樣子
apply plugin: 'com.android.application'
applicationId "com.example.hollow"
minifyEnabled false
然後我就困惑了?不一樣會不會發生問題呢?
以下是他的樣子:
『
apply plugin: 'android'
applicationId "com.example.hollow"
minifyEnabled false => runProguardfalse
』
關於apply plugin: 'android'=>這是google的回答:http://stackoverflow.com/questions/27342458/apply-plugin-android-or-apply-plugin-com-android-application
關於runProguard=>:http://www.v2ex.com/t/145676
好像是自動去油機,幫APK變瘦.
但我還是不太清楚.
我決定test看看會發生什麼事!
如果什麼都不做執行是可以跑的,然後release會跳出警告視窗說不行!!沒簽名。
所以我們去建立一個key這是為什麼一開始影片教怎麼申請一個key
//先不用因為我有key而且照著影片做就可以了
我們在 defaultConfig {}和 buildTypes {}之間插入 signingConfigs {} 發現現在跑是不會出錯的!
但應該是沒有跑進的XD
後來我找到一篇:
http://www.hawk007.com/index/index.php?s=/Home/Article/detail/id/44.html
大概是在說怎麼使用不簽名的方式build
-------------------------------------------------------------------------------------------
///莫名其面跳躍線
在File =>Structure 裡就可以直接設置了,跟影片上不一樣可能是版本問題,
最後我的程式碼是這樣:
apply plugin: 'com.android.application'
android {
signingConfigs {
signed {
//這裏是我的key 是在File =>Structure=>signing 設定,我將jks放到程式資料夾底下跟影片一樣,
//影片應該是在說要放在project理財不會錯的樣子,所以我也沒試著撞撞看?
keyAlias 'kkskks'
keyPassword 'kkskks'
storeFile file('kkskks.jks')
storePassword 'kkskks'
}
}
//SDK 版本名稱
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.winho.myapplication"
minSdkVersion 18
targetSdkVersion 21
versionCode 1
versionName "1.0"
signingConfig signingConfigs.signed
}
buildTypes {
//在這裡新增可以看到其他版本(有問題時先看看有沒有build過,有時build太慢IDE沒顯示是對的就傻傻以為還是錯的!)
release {
minifyEnabled false
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//這裏是看你上面的檔怎麼設定的
signingConfig signingConfigs.signed
}
unsignedBuild {
debuggable false
versionNameSuffix '-unsigned'
signingConfig signingConfigs.signed
}
debug {
debuggable true
//最後這裡!!!!!查到要用這個!因為我的一直卡在這!跟影片不一樣喔!不是使用packageNameSuffix!
applicationIdSuffix ".debug"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
-------------------------------------------------------------------------------------------
有了這些知識之後就可以看
https://www.youtube.com/watch?v=7JDEK4wkN5I
然後照著步驟做就是了.