gradle 和 android plugin fore gradle 都是獨立于android studio 運行。
構建流程圖
您可以在模塊級 build.gradle 文件的 android {} 代碼塊內部創建和配置構建類型。當您創建新模塊時,Android Studio 會自動為您創建調試和發布這兩種構建類型。盡管調試構建類型不會出現在構建配置文件中,Android Studio 會將其配置為 debuggable true。這樣,您可以在安全的 Android 設備上調試應用并使用通用調試密鑰庫配置 APK 簽署。
如果您希望添加或更改特定設置,您可以將調試構建類型添加到您的配置中。以下示例為調試構建類型指定了 applicationIdSuffix,并配置了一個使用調試構建類型中的設置進行初始化的“jnidebug”構建類型。
android { ... defaultConfig {...} buildTypes { release { minifyEnabled true PRoguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { applicationIdSuffix ".debug" } /** * The 'initWith' property allows you to copy configurations from other build types, * so you don't have to configure one from the beginning. You can then configure * just the settings you want to change. The following line initializes * "jnidebug" using the debug build type, and changes only the * applicationIdSuffix and versionNameSuffix settings. */ jnidebug { // This copies the debuggable attribute and debug signing configurations. initWith debug applicationIdSuffix ".jnidebug" jniDebuggable true } }} buildTypes 可以配置各個版本需要的相應屬性,例如發布版本需要 混淆, 而debug版本不需要, 或者其他自定義版本的屬性。 在buildTypes區域中可以配置許多構建的屬性,例如: 混淆文件 --proguardFiles、是否過濾掉未使用的資源 -- shrinkResources (默認為false: 未使用 是指代碼中從未引用過的resource資源)、開啟多個Dex文件--multiDexEnabled (在android 5.0之前需要使用,用于突破65K方法數)等。更多的屬性可以參考官方文檔。創建產品風味與創建構建類型類似:只需將它們添加到 productFlavors {} 代碼塊并配置您想要的設置。產品風味支持與 defaultConfig 相同的屬性,這是因為 defaultConfig 實際上屬于 ProductFlavor 類。這意味著,您可以在 defaultConfig {} 代碼塊中提供所有風味的基本配置,每種風味均可替換任何默認值,例如 applicationId。
注:您仍需在 main/ 清單文件中使用 package 屬性指定程序包名稱。您還必須在源代碼中使用此程序包名稱引用 R 類或者解析任何相關的 Activity 或服務注冊。這樣,您可以使用 applicationId 為每個產品風味分配一個唯一的 ID,以用于打包和分發,而不必更改您的源代碼。以下代碼示例創建了一個“演示”和“完整”產品風味并賦予其自己的 applicationId 和 versionName
android { ... defaultConfig {...} buildTypes {...} productFlavors { demo { applicationId "com.example.myapp.demo" versionName "1.0-demo" } full { applicationId "com.example.myapp.full" versionName "1.0-full" } } }配置此參數之后,gradle可以根據你的配置生成相應的apk,每一個配置對應的一個apk。 配置完成后, 你也可以單獨的為每個flavors配置他們獨有的功能代碼??梢詤⒖?官網的 “構建配置”章節里面的”創建用于構建變體的源集” 小節
除非您為發布構建顯式定義簽署配置,否則,Gradle 不會簽署發布構建的 APK。您可以輕松創建發布密鑰并使用 Android Studio 簽署發布構建類型。
要使用 Gradle 構建配置為您的發布構建類型手動配置簽署配置:
1.創建密鑰庫。密鑰庫是一個二進制文件,它包含一組私鑰。您必須將密鑰庫存放在安全可靠的地方。 2.創建私鑰。私鑰代表將通過應用識別的實體,如某個人或某家公司。 3.將簽署配置添加到模塊級 build.gradle 文件中:
...android { ... defaultConfig {...} signingConfigs { release { storeFile file("myreleasekey.keystore") storePassWord "password" keyAlias "MyReleaseKey" keyPassword "password" } } buildTypes { release { ... signingConfig signingConfigs.release } }}因為andorid要求所有的apk先簽名才能安裝。所有你可以在這里配置相應的秘鑰,用于發布 和 調試版本。
新聞熱點
疑難解答