ข้อควรระวัง: ตั้งแต่เดือนสิงหาคม 2021 เป็นต้นไป แอปต้องเผยแพร่เป็น App Bundle หากคุณเผยแพร่แอปใน Google Play สร้างและอัปโหลด Android App Bundle วันและเวลา Google Play จะสร้างและแสดง APK ที่เพิ่มประสิทธิภาพแล้วโดยอัตโนมัติสำหรับ การกำหนดค่าอุปกรณ์ของผู้ใช้แต่ละรายเพื่อให้ผู้ใช้ดาวน์โหลดเฉพาะโค้ดและทรัพยากรเท่านั้น ที่จำเป็นต่อการเรียกใช้แอป การเผยแพร่ APK หลายรายการมีประโยชน์ในกรณีที่คุณ การเผยแพร่ไปยังร้านค้าที่ไม่รองรับรูปแบบ AAB ในกรณีนี้ ต้องสร้าง รับรอง และจัดการ APK แต่ละรายการด้วยตนเอง
แม้ว่าการสร้าง APK เดียวเพื่อรองรับอุปกรณ์เป้าหมายทั้งหมดจะดีกว่า หากเป็นไปได้ ก็อาจทำให้ APK ขนาดใหญ่มากเนื่องจากไฟล์ สนับสนุน หลายรายการ ความหนาแน่นของหน้าจอหรือไบนารีแอปพลิเคชัน Interface (ABI) วิธีหนึ่งในการลดขนาด APK คือการสร้าง APK หลายรายการที่ มีไฟล์สำหรับความหนาแน่นของหน้าจอหรือ ABI ที่เฉพาะเจาะจง
Gradle สร้าง APK แยกต่างหากที่มีเฉพาะโค้ดและทรัพยากรที่เจาะจงได้ ของความหนาแน่นหรือ ABI แต่ละรายการ หน้านี้อธิบายวิธีกำหนดค่าบิลด์เพื่อ สร้าง APK หลายรายการ หากต้องการสร้างแอปเวอร์ชันอื่น ที่ไม่ได้อิงตามความหนาแน่นของหน้าจอหรือ ABI ให้ใช้สร้างตัวแปรแทน
กำหนดค่าบิลด์สำหรับ APK หลายรายการ
หากต้องการกำหนดค่าบิลด์สำหรับ APK หลายรายการ ให้เพิ่ม
splits
บล็อกที่ระดับโมดูล
build.gradle
ไฟล์ ภายใน
บล็อก splits
ระบุ
บล็อก density
ที่ระบุวิธีที่คุณต้องการให้ Gradle สร้าง
APK ตามความหนาแน่นหรือการบล็อก abi
ที่ระบุวิธีที่คุณต้องการ Gradle
เพื่อสร้าง APK ตาม ABI แต่ละรุ่น คุณสามารถระบุทั้งความหนาแน่นและการบล็อก ABI และ
ระบบบิลด์จะสร้าง APK สำหรับการรวมความหนาแน่นและ ABI แต่ละรายการ
กำหนดค่า APK หลายรายการสำหรับความหนาแน่นของหน้าจอ
หากต้องการสร้าง APK แยกต่างหากสำหรับความหนาแน่นของหน้าจอที่แตกต่างกัน ให้เพิ่ม
density
บล็อกใน
บล็อก splits
ในบล็อก density
ให้ระบุ
รายการความหนาแน่นหน้าจอที่ต้องการและขนาดหน้าจอที่เข้ากันได้ ใช้เฉพาะรายการ
ขนาดหน้าจอที่ใช้งานร่วมกันได้หากคุณต้องการ
<compatible-screens>
ในไฟล์ Manifest ของ APK แต่ละรายการ
ตัวเลือก Gradle DSL ต่อไปนี้ใช้เพื่อกำหนดค่า APK หลายรายการสำหรับ ความหนาแน่นของหน้าจอ:
-
enable
สำหรับ Groovy,isEnable
สำหรับสคริปต์ Kotlin -
หากตั้งค่าองค์ประกอบนี้เป็น
true
Gradle จะสร้าง APK หลายรายการ ตามความหนาแน่นของหน้าจอที่คุณกำหนด ค่าเริ่มต้นคือfalse
-
exclude
-
ระบุรายการความหนาแน่นที่คั่นด้วยคอมมาซึ่งคุณไม่ต้องการให้ Gradle
เพื่อสร้าง APK แยกต่างหากสำหรับ ใช้
exclude
หากคุณ ต้องการสร้าง APK สำหรับความหนาแน่นส่วนใหญ่ แต่ต้องยกเว้นบางรายการ ที่แอปของคุณไม่รองรับ -
reset()
-
ล้างรายการความหนาแน่นหน้าจอเริ่มต้น ใช้เมื่อใช้ร่วมกับ
include
สำหรับระบุความหนาแน่นที่คุณต้องการ เพิ่มข้อมูลโค้ดต่อไปนี้ตั้งค่ารายการความหนาแน่นเป็น
ldpi
และxxhdpi
โดยโทรหาreset()
เพื่อล้างรายการ แล้วใช้include
:reset() // Clears the default list from all densities // to no densities. include "ldpi", "xxhdpi" // Specifies the two densities to generate APKs // for.
-
include
-
ระบุรายการความหนาแน่นที่คั่นด้วยคอมมาที่คุณต้องการให้ Gradle สร้าง
APK สำหรับ ใช้ร่วมกับ
reset()
เท่านั้นเพื่อระบุ รายการความหนาแน่นที่แน่นอน -
compatibleScreens
-
ระบุรายการขนาดหน้าจอที่เข้ากันได้ซึ่งคั่นด้วยคอมมา การดำเนินการนี้จะแทรก ที่ตรงกัน
<compatible-screens>
โหนดในไฟล์ Manifest สำหรับ APK แต่ละรายการการตั้งค่านี้ช่วยให้จัดการทั้ง 2 หน้าจอได้อย่างสะดวกสบาย ความหนาแน่นและขนาดหน้าจอในส่วน
build.gradle
เดียวกัน อย่างไรก็ตาม การใช้<compatible-screens>
จำกัดประเภทของอุปกรณ์ได้ ของแอปของคุณได้อย่างไร สำหรับวิธีอื่นๆ ในการสนับสนุน ขนาดหน้าจอ ภาพรวมความเข้ากันได้ของหน้าจอ
เนื่องจากแต่ละ APK ที่อิงตามความหนาแน่นของหน้าจอจะมี
แท็ก <compatible-screens>
ที่มีข้อจำกัดเฉพาะ
เกี่ยวกับประเภทหน้าจอที่ APK รองรับ แม้ว่าคุณจะเผยแพร่
APK - อุปกรณ์ใหม่บางรุ่นไม่ตรงกับตัวกรอง APK หลายรายการ ด้วยเหตุนี้
Gradle สร้าง APK สากลเพิ่มเติมที่มีเนื้อหาซึ่งมีเนื้อหาอยู่เสมอ
สำหรับความหนาแน่นของหน้าจอทั้งหมดและไม่รวม
แท็ก <compatible-screens>
เผยแพร่สิ่งนี้
APK สากล และ APK ต่อความหนาแน่นของคุณ เพื่อให้เป็นวิดีโอสำรองสำหรับ
อุปกรณ์ที่ไม่ตรงกับ APK ที่มี
แท็ก <compatible-screens>
ตัวอย่างต่อไปนี้สร้าง APK แยกกันสำหรับแต่ละ
หน้าจอ
ความหนาแน่น ยกเว้น ldpi
, xxhdpi
และ
xxxhdpi
ซึ่งทำได้โดยใช้ exclude
เพื่อลบ
ความหนาแน่นทั้ง 3 รายการดังกล่าวจากรายการความหนาแน่นทั้งหมดตามค่าเริ่มต้น
ดึงดูด
android { ... splits { // Configures multiple APKs based on screen density. density { // Configures multiple APKs based on screen density. enable true // Specifies a list of screen densities you don't want Gradle to create multiple APKs for. exclude "ldpi", "xxhdpi", "xxxhdpi" // Specifies a list of compatible screen size settings for the manifest. compatibleScreens 'small', 'normal', 'large', 'xlarge' } } }
Kotlin
android { ... splits { // Configures multiple APKs based on screen density. density { // Configures multiple APKs based on screen density. isEnable = true // Specifies a list of screen densities you don't want Gradle to create multiple APKs for. exclude("ldpi", "xxhdpi", "xxxhdpi") // Specifies a list of compatible screen size settings for the manifest. compatibleScreens("small", "normal", "large", "xlarge") } } }
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการปรับแต่งบิลด์ต่างๆ ของแอปในเวอร์ชันต่างๆ ของอุปกรณ์และประเภทหน้าจอที่เฉพาะเจาะจง โปรดดู ประกาศว่าถูกจำกัด การรองรับหน้าจอ
กำหนดค่า APK หลายรายการสำหรับ ABI
หากต้องการสร้าง APK แยกต่างหากสำหรับ ABI ที่แตกต่างกัน ให้เพิ่มการบล็อก abi
ภายใน
บล็อก splits
ในบล็อก abi
ให้ระบุรายการ
ABI ที่ต้องการ
ตัวเลือก Gradle DSL ต่อไปนี้ใช้เพื่อกำหนดค่า APK หลายรายการต่อ ABI:
-
enable
สำหรับ Groovy หรือisEnable
สำหรับสคริปต์ Kotlin - หากคุณตั้งค่าองค์ประกอบนี้เป็น
true
Gradle จะสร้างหลายรายการ APK ที่อิงตาม ABI ที่คุณกำหนด ค่าเริ่มต้นคือfalse
-
exclude
-
ระบุรายการ ABI ที่คั่นด้วยคอมมาซึ่งไม่ต้องการให้ Gradle
สร้าง APK แยกต่างหากสำหรับ ใช้
exclude
หากต้องการสร้าง APK สำหรับ ABI ส่วนใหญ่ แต่ต้องยกเว้น ABI บางรายการที่แอปของคุณไม่ได้ การสนับสนุน -
reset()
-
ล้างรายการ ABI เริ่มต้น ใช้เมื่อใช้ร่วมกับ
include
สำหรับระบุ ABI ที่ต้องการเพิ่มข้อมูลโค้ดต่อไปนี้ตั้งค่ารายการ ABI เป็น
x86
เท่านั้น และx86_64
โดยโทรไปที่reset()
เพื่อล้างรายการ และ จากนั้นใช้include
:reset() // Clears the default list from all ABIs to no ABIs. include "x86", "x86_64" // Specifies the two ABIs we want to generate APKs for.
-
include
-
ระบุรายการ ABI ที่คั่นด้วยคอมมาที่คุณต้องการให้ Gradle สร้าง APK
สำหรับ ใช้ร่วมกับ
reset()
เท่านั้นเพื่อระบุ รายชื่อ ABI -
universalApk
สำหรับ Groovy หรือisUniversalApk
สำหรับ สคริปต์ Kotlin -
หากเป็น
true
Gradle จะสร้าง APK สากลนอกเหนือจาก APK ของ ABI แต่ละรายการ APK สากลจะมีโค้ดและทรัพยากรสำหรับ ABI ทั้งหมดใน APK เดียว ค่าเริ่มต้นคือfalse
โปรดทราบว่าตัวเลือกนี้มีเพียง มีอยู่ในบล็อก
splits.abi
เมื่อสร้าง APK หลายรายการ Gradle สร้าง APK สากลเสมอ ทั้งนี้ขึ้นอยู่กับความหนาแน่นของหน้าจอ มีโค้ดและทรัพยากรสำหรับความหนาแน่นของหน้าจอทุกขนาด
ตัวอย่างต่อไปนี้สร้าง APK แยกต่างหากสำหรับ ABI แต่ละรายการ: x86
และ x86_64
ซึ่งทำได้โดยใช้ reset()
เริ่มต้นด้วยรายการ ABI ที่ว่างเปล่า ตามด้วย include
ที่มี
ABI ที่แต่ละรายการได้รับ APK
ดึงดูด
android { ... splits { // Configures multiple APKs based on ABI. abi { // Enables building multiple APKs per ABI. enable true // By default all ABIs are included, so use reset() and include to specify that you only // want APKs for x86 and x86_64. // Resets the list of ABIs for Gradle to create APKs for to none. reset() // Specifies a list of ABIs for Gradle to create APKs for. include "x86", "x86_64" // Specifies that you don't want to also generate a universal APK that includes all ABIs. universalApk false } } }
Kotlin
android { ... splits { // Configures multiple APKs based on ABI. abi { // Enables building multiple APKs per ABI. isEnable = true // By default all ABIs are included, so use reset() and include to specify that you only // want APKs for x86 and x86_64. // Resets the list of ABIs for Gradle to create APKs for to none. reset() // Specifies a list of ABIs for Gradle to create APKs for. include("x86", "x86_64") // Specifies that you don't want to also generate a universal APK that includes all ABIs. isUniversalApk = false } } }
ดูรายการ ABI ที่รองรับได้ที่ รองรับ ABI
โปรเจ็กต์ที่ไม่มีโค้ดเนทีฟ/C++
สำหรับโปรเจ็กต์ที่ไม่มีโค้ดเนทีฟ/C++ แผงตัวแปรบิลด์จะมี 2 แบบ คอลัมน์: โมดูลและบิลด์ที่ใช้งานอยู่ ตัวแปรดังที่แสดงในรูปที่ 1
รูปที่ 1 แผงตัวแปรบิลด์มี 2 คอลัมน์สําหรับโปรเจ็กต์ที่ไม่มี
โค้ดเนทีฟ/C++
ค่าตัวแปรบิลด์ที่ใช้งานอยู่สำหรับ โมดูลจะกำหนดตัวแปรของบิลด์ที่ทำให้ใช้งานได้และมองเห็นได้ในตัวแก้ไข หากต้องการสลับระหว่างตัวแปร ให้คลิกเซลล์ตัวแปรบิลด์ที่ใช้งานอยู่เพื่อดูโมดูล แล้วเลือกรูปแบบที่ต้องการจากช่องรายการ
โปรเจ็กต์ที่ใช้โค้ดเนทีฟ/C++
สำหรับโปรเจ็กต์ที่มีโค้ดเนทีฟ/C++ แผงตัวแปรของบิลด์จะมี 3 รูปแบบ คอลัมน์: โมดูล, บิลด์ที่ใช้งานอยู่ ตัวแปร และ ABI ที่ใช้งานอยู่ดังที่แสดงในรูปที่ 2
รูปที่ 2 แผง Build Variants เพิ่มคอลัมน์ ABI ที่ใช้งานอยู่สำหรับ ที่มีโค้ดเนทีฟ/C++
ค่าตัวแปรบิลด์ที่ใช้งานอยู่สำหรับโมดูล กำหนดตัวแปรของบิลด์ที่ทำให้ใช้งานได้และมองเห็นได้ในตัวแก้ไข สำหรับโมดูลเนทีฟ ค่า ABI ที่ใช้งานอยู่จะกำหนด ABI ที่เครื่องมือแก้ไข ใช้งาน แต่ไม่มีผลกับสิ่งที่ทำให้ใช้งานได้แล้ว
หากต้องการเปลี่ยนประเภทบิลด์หรือ ABI ให้ทำดังนี้
- คลิกเซลล์สำหรับตัวแปรบิลด์ที่ใช้งานอยู่ หรือคอลัมน์ ABI ที่ใช้งานอยู่
- เลือกตัวแปรหรือ ABI ที่ต้องการจากรายการ ด้วย การซิงค์ใหม่จะทำงานโดยอัตโนมัติ
การเปลี่ยนคอลัมน์สำหรับแอปหรือโมดูลไลบรารีจะใช้การเปลี่ยนแปลงกับทั้งหมด แถวที่สัมพันธ์กัน
กำหนดค่าการกำหนดเวอร์ชัน
โดยค่าเริ่มต้น เมื่อ Gradle สร้าง APK หลายรายการ แต่ละ APK จะมีค่าเหมือนกัน
ข้อมูลเวอร์ชัน ตามที่ระบุไว้ในระดับโมดูล
build.gradle
หรือ build.gradle.kts
เนื่องจาก
Google Play Store ไม่อนุญาต APK หลายรายการสำหรับแอปเดียวกันที่ทั้งหมดมี
ข้อมูลเวอร์ชันเดียวกัน คุณต้องตรวจสอบว่า APK แต่ละรายการ
versionCode
ก่อนที่จะอัปโหลดไปยัง Play Store
คุณสามารถกำหนดค่าไฟล์ build.gradle
ระดับโมดูลเป็น
ลบล้าง versionCode
สำหรับแต่ละ APK สร้างการแมป
ที่กำหนดค่าตัวเลขที่ไม่ซ้ำกันสำหรับ ABI แต่ละรายการและความหนาแน่นที่คุณกำหนดค่า
APK หลายรายการ คุณสามารถลบล้างรหัสเวอร์ชันเอาต์พุตด้วยค่าที่
รวมรหัสเวอร์ชันที่กำหนดไว้ภายใน defaultConfig
หรือ
บล็อก productFlavors
ที่มีค่าตัวเลขซึ่งกำหนดให้
ความหนาแน่นหรือ ABI
ในตัวอย่างต่อไปนี้ APK สำหรับ ABI x86
ได้รับ versionCode
ของปี 2004 และ ABI x86_64
ได้รับ versionCode
ของ 3004
การกำหนดรหัสเวอร์ชันครั้งละมากๆ เช่น 1000
คุณสามารถกำหนดรหัสเวอร์ชันที่ไม่ซ้ำได้ในภายหลังหากจำเป็นต้องอัปเดตแอป สำหรับ
ตัวอย่างเช่น ถ้า defaultConfig.versionCode
ปรับปรุงเป็น 5 ใน
การอัปเดตต่อมา Gradle กำหนด versionCode
ของปี 2005 ให้กับ
APK ของ x86
และ 3005 ไปยัง x86_64
APK
เคล็ดลับ: หากบิลด์ของคุณมี APK สากล ให้กำหนด
versionCode
ต่ำกว่า APK อื่นๆ ของคุณ
เนื่องจาก Google Play Store จะติดตั้งแอปเวอร์ชันที่
เข้ากันได้กับอุปกรณ์เป้าหมายและ
versionCode
โดยกำหนด versionCode
ที่ต่ำลงให้กับ
APK สากลจะทำให้มั่นใจว่า Google Play Store จะพยายามติดตั้ง
APK ก่อนที่จะกลับไปใช้ APK สากล โค้ดตัวอย่างต่อไปนี้
จัดการกับเรื่องนี้โดย
การลบล้าง APK สากล
ค่าเริ่มต้น versionCode
ดึงดูด
android { ... defaultConfig { ... versionCode 4 } splits { ... } } // Map for the version code that gives each ABI a value. ext.abiCodes = ['armeabi-v7a':1, x86:2, x86_64:3] // For per-density APKs, create a similar map: // ext.densityCodes = ['mdpi': 1, 'hdpi': 2, 'xhdpi': 3] import com.android.build.OutputFile // For each APK output variant, override versionCode with a combination of // ext.abiCodes * 1000 + variant.versionCode. In this example, variant.versionCode // is equal to defaultConfig.versionCode. If you configure product flavors that // define their own versionCode, variant.versionCode uses that value instead. android.applicationVariants.all { variant -> // Assigns a different version code for each output APK // other than the universal APK. variant.outputs.each { output -> // Stores the value of ext.abiCodes that is associated with the ABI for this variant. def baseAbiVersionCode = // Determines the ABI for this variant and returns the mapped value. project.ext.abiCodes.get(output.getFilter(OutputFile.ABI)) // Because abiCodes.get() returns null for ABIs that are not mapped by ext.abiCodes, // the following code doesn't override the version code for universal APKs. // However, because you want universal APKs to have the lowest version code, // this outcome is desirable. if (baseAbiVersionCode != null) { // Assigns the new version code to versionCodeOverride, which changes the // version code for only the output APK, not for the variant itself. Skipping // this step causes Gradle to use the value of variant.versionCode for the APK. output.versionCodeOverride = baseAbiVersionCode * 1000 + variant.versionCode } } }
Kotlin
android { ... defaultConfig { ... versionCode = 4 } splits { ... } } // Map for the version code that gives each ABI a value. val abiCodes = mapOf("armeabi-v7a" to 1, "x86" to 2, "x86_64" to 3) // For per-density APKs, create a similar map: // val densityCodes = mapOf("mdpi" to 1, "hdpi" to 2, "xhdpi" to 3) import com.android.build.api.variant.FilterConfiguration.FilterType.* // For each APK output variant, override versionCode with a combination of // abiCodes * 1000 + variant.versionCode. In this example, variant.versionCode // is equal to defaultConfig.versionCode. If you configure product flavors that // define their own versionCode, variant.versionCode uses that value instead. androidComponents { onVariants { variant -> // Assigns a different version code for each output APK // other than the universal APK. variant.outputs.forEach { output -> val name = output.filters.find { it.filterType == ABI }?.identifier // Stores the value of abiCodes that is associated with the ABI for this variant. val baseAbiCode = abiCodes[name] // Because abiCodes.get() returns null for ABIs that are not mapped by ext.abiCodes, // the following code doesn't override the version code for universal APKs. // However, because you want universal APKs to have the lowest version code, // this outcome is desirable. if (baseAbiCode != null) { // Assigns the new version code to output.versionCode, which changes the version code // for only the output APK, not for the variant itself. output.versionCode.set(baseAbiCode * 1000 + (output.versionCode.get() ?: 0)) } } } }
ดูตัวอย่างเพิ่มเติมของรูปแบบรหัสเวอร์ชันสำรองได้ที่ กำลังกำหนดรหัสเวอร์ชัน
สร้าง APK หลายรายการ
เมื่อกำหนดค่า build.gradle
ระดับโมดูลหรือ
build.gradle.kts
เพื่อสร้าง APK หลายรายการ ให้คลิก
สร้าง > สร้าง APK เพื่อสร้าง APK ทั้งหมดสำหรับ
โมดูลที่เลือกไว้ในแผงโปรเจ็กต์ Gradle สร้าง APK
สำหรับความหนาแน่นแต่ละรายการหรือ ABI ในbuild/outputs/apk/
ของโปรเจ็กต์
ไดเรกทอรี
Gradle สร้าง APK สำหรับความหนาแน่นหรือ ABI แต่ละรายการที่คุณกำหนดค่า APK หลายรายการ หากคุณเปิดใช้ APK หลายรายการสำหรับทั้งความหนาแน่นและ ABI ทาง Gradle จะสร้าง APK สำหรับความหนาแน่นและการรวม ABI แต่ละรายการ
ตัวอย่างเช่น URL ต่อไปนี้
ข้อมูลโค้ด build.gradle
ช่วยให้สร้าง APK หลายรายการสำหรับ mdpi
และ
ความหนาแน่น hdpi
รวมถึง x86
และ ABI x86_64
ด้วย
ดึงดูด
... splits { density { enable true reset() include "mdpi", "hdpi" } abi { enable true reset() include "x86", "x86_64" } }
Kotlin
... splits { density { isEnable = true reset() include("mdpi", "hdpi") } abi { isEnable = true reset() include("x86", "x86_64") } }
เอาต์พุตจากการกำหนดค่าตัวอย่างจะมี APK จำนวน 4 รายการต่อไปนี้
app-hdpiX86-release.apk
: มีโค้ดและทรัพยากรสำหรับ ความหนาแน่นของhdpi
และ ABIx86
app-hdpiX86_64-release.apk
: มีโค้ดและทรัพยากรสำหรับ ความหนาแน่นของhdpi
และ ABIx86_64
app-mdpiX86-release.apk
: มีโค้ดและทรัพยากรสำหรับ ความหนาแน่นของmdpi
และ ABIx86
app-mdpiX86_64-release.apk
: มีโค้ดและทรัพยากรสำหรับ ความหนาแน่นของmdpi
และ ABIx86_64
เมื่อสร้าง APK หลายรายการตามความหนาแน่นของหน้าจอ Gradle สร้าง APK สากลที่มีโค้ดและทรัพยากรสำหรับทุกความหนาแน่น นอกเหนือจาก APK ต่อความหนาแน่น
เมื่อสร้าง APK หลายรายการที่อิงจาก
ABI, Gradle จะสร้างเฉพาะ APK ที่มีโค้ดและทรัพยากรสำหรับ
ABI หากคุณระบุ universalApk true
ใน
บล็อก splits.abi
ในไฟล์ build.gradle
ของคุณ
(สำหรับ Groovy) หรือ isUniversalApk = true
ใน
บล็อก splits.abi
ในไฟล์ build.gradle.kts
ของคุณ
(สำหรับสคริปต์ Kotlin)
รูปแบบชื่อไฟล์ APK
เมื่อสร้าง APK หลายรายการ Gradle สร้างชื่อไฟล์ APK โดยใช้ข้อมูลต่อไปนี้ สคีม:
modulename-screendensityABI-buildvariant.apk
องค์ประกอบของรูปแบบมีดังนี้
-
modulename
- ระบุชื่อโมดูลที่กำลังสร้าง
-
screendensity
-
หากมีการเปิดใช้ APK หลายรายการสำหรับความหนาแน่นของหน้าจอ ให้ระบุหน้าจอ
ความหนาแน่นของ APK เช่น
mdpi
-
ABI
-
หากมีการเปิดใช้ APK สำหรับ ABI หลายรายการ ให้ระบุ ABI สำหรับ APK เช่น ในชื่อ
x86
หากเปิดใช้ APK หลายรายการสำหรับทั้งความหนาแน่นของหน้าจอและ ABI Gradle เชื่อมชื่อความหนาแน่นด้วยชื่อ ABI ตัวอย่างเช่น
mdpiX86
หากเปิดใช้universalApk
สำหรับต่อ ABI APK, Gradle ใช้universal
เป็นส่วน ABI ของ APK สากล ชื่อไฟล์ -
buildvariant
-
ระบุตัวแปรของบิลด์ที่กำลังสร้าง เช่น
debug
ตัวอย่างเช่น เมื่อสร้าง APK ความหนาแน่นของหน้าจอ mdpi
รายการสำหรับ
เวอร์ชันที่แก้ไขข้อบกพร่องของ myApp ชื่อไฟล์ APK คือ
myApp-mdpi-debug.apk
ผลงาน
เวอร์ชันของแอปของฉันที่กำหนดค่าให้สร้าง APK หลายรายการสำหรับทั้ง
ความหนาแน่นของหน้าจอ mdpi
และ ABI ของ x86
มีชื่อไฟล์ APK เป็น
myApp-mdpiX86-release.apk