รูปแบบการแสดงแอปของ Google Play ใช้แอป Android แพ็กเกจเพื่อสร้างและให้บริการ APK ที่เพิ่มประสิทธิภาพสำหรับผู้ใช้แต่ละคน การกำหนดค่าอุปกรณ์ เพื่อให้ผู้ใช้ดาวน์โหลดเฉพาะโค้ดและทรัพยากรที่จำเป็น เรียกใช้แอปของคุณ
การนำส่งฟีเจอร์ Play ใช้ความสามารถขั้นสูงของ App Bundle ซึ่งช่วยให้ ฟีเจอร์บางอย่างของแอปเพื่อให้นำส่งอย่างมีเงื่อนไขหรือดาวน์โหลดตามคำขอได้ ถ้าจะทำแบบนั้น คุณต้องแยกฟีเจอร์เหล่านี้จากแอปหลักเป็น โมดูลฟีเจอร์
การกำหนดค่าบิลด์ของโมดูลฟีเจอร์
เมื่อคุณสร้างโมดูลฟีเจอร์ใหม่โดยใช้ Android Studio, IDE
ใช้ปลั๊กอิน Gradle ต่อไปนี้กับไฟล์ build.gradle
ของโมดูล
// The following applies the dynamic-feature plugin to your feature module.
// The plugin includes the Gradle tasks and properties required to configure and build
// an app bundle that includes your feature module.
plugins {
id 'com.android.dynamic-feature'
}
ที่พักมากมายที่พร้อมให้บริการ ปลั๊กอินแอปพลิเคชันมาตรฐาน สำหรับโมดูลฟีเจอร์ได้ด้วย ส่วนต่อไปนี้ อธิบายถึงพร็อพเพอร์ตี้ที่คุณควรและไม่ควรระบุใน การกำหนดค่าบิลด์ของโมดูลฟีเจอร์
สิ่งที่ไม่ต้องระบุในการกำหนดค่าบิลด์ของโมดูลฟีเจอร์
เนื่องจากโมดูลฟีเจอร์แต่ละรายการจะขึ้นอยู่กับโมดูลฐานด้วย
รับช่วงการกำหนดค่าบางอย่าง ดังนั้น คุณไม่ควรใส่ข้อมูลต่อไปนี้ใน
ไฟล์ build.gradle
ของโมดูลฟีเจอร์:
- การกำหนดค่าการรับรอง: App Bundle มีการรับรองโดยใช้ Signing การกำหนดค่าที่คุณระบุไว้ในโมดูลฐาน
- พร็อพเพอร์ตี้
minifyEnabled
: คุณสามารถ เปิดใช้การย่อโค้ด สำหรับทั้งโปรเจ็กต์แอปจากบิลด์ของโมดูลฐานเท่านั้น การกำหนดค่า ดังนั้น คุณควรละเว้นพร็อพเพอร์ตี้นี้ โมดูลฟีเจอร์ อย่างไรก็ตาม คุณสามารถ ระบุกฎ ProGuard เพิ่มเติม สำหรับแต่ละโมดูลฟีเจอร์ versionCode
และversionName
: เมื่อสร้าง App Bundle Gradle ใช้ข้อมูลเวอร์ชันแอปที่โมดูลฐานมีให้ คุณไม่ควรยกเว้นพร็อพเพอร์ตี้เหล่านี้จากโมดูลฟีเจอร์build.gradle
ไฟล์
สร้างความสัมพันธ์กับโมดูลฐาน
เมื่อ Android Studio สร้างโมดูลฟีเจอร์ ระบบจะแสดงโมดูลดังกล่าว
ลงในโมดูลฐานโดยเพิ่มพร็อพเพอร์ตี้ android.dynamicFeatures
ลงใน
ไฟล์ build.gradle
ของโมดูลฐานตามที่แสดงด้านล่าง
// In the base module’s build.gradle file.
android {
...
// Specifies feature modules that have a dependency on
// this base module.
dynamicFeatures = [":dynamic_feature", ":dynamic_feature2"]
}
นอกจากนี้ Android Studio ยังมีโมดูลฐานเป็นทรัพยากร Dependency ของโมดูลฟีเจอร์ดังที่แสดงด้านล่าง
// In the feature module’s build.gradle file:
...
dependencies {
...
// Declares a dependency on the base module, ':app'.
implementation project(':app')
}
ระบุกฎ ProGuard เพิ่มเติม
แม้ว่ามีเพียงการกำหนดค่าบิลด์ของโมดูลฐานเท่านั้นอาจทำให้เกิดการย่อโค้ด
สำหรับโปรเจ็กต์แอป คุณสามารถระบุกฎ ProGuard ที่กำหนดเอง
โดยใช้ฟังก์ชัน
proguardFiles
ตามที่แสดงด้านล่าง
android.buildTypes {
release {
// You must use the following property to specify additional ProGuard
// rules for feature modules.
proguardFiles 'proguard-rules-dynamic-features.pro'
}
}
โปรดทราบว่ากฎ ProGuard เหล่านี้ผสานรวมกับกฎจากโมดูลอื่นๆ (รวมถึงโมดูลฐาน) ณ เวลาบิลด์ ดังนั้นขณะที่แต่ละฟีเจอร์ อาจระบุกฎชุดใหม่ ซึ่งกฎเหล่านี้จะใช้กับโมดูลทั้งหมดใน โปรเจ็กต์ของแอป
ทำให้แอปใช้งานได้
ขณะที่คุณพัฒนาแอปด้วยการรองรับโมดูลฟีเจอร์ คุณจะทำสิ่งต่อไปนี้ได้
ทำให้แอปใช้งานได้ในอุปกรณ์ที่เชื่อมต่อตามปกติโดยการเลือก
เรียกใช้ > เรียกใช้จากแถบเมนู (หรือคลิกเรียกใช้ ใน
แถบเครื่องมือ)
หากโปรเจ็กต์แอปมีโมดูลฟีเจอร์อย่างน้อย 1 รายการ คุณจะทำสิ่งต่อไปนี้ได้ เลือกฟีเจอร์ที่จะรวมไว้เมื่อทำให้แอปใช้งานได้ด้วยการแก้ไข การกำหนดค่าการเรียกใช้/แก้ไขข้อบกพร่องที่มีอยู่เป็น ดังต่อไปนี้:
- เลือกเรียกใช้ > แก้ไขการกำหนดค่าจากแถบเมนู
- จากแผงด้านซ้ายของกล่องโต้ตอบการกำหนดค่าเรียกใช้/การแก้ไขข้อบกพร่อง ให้เลือก การกำหนดค่าแอป Android ที่ต้องการ
- ในส่วนฟีเจอร์แบบไดนามิกที่จะติดตั้งใช้งานในแท็บทั่วไป ให้เลือก ช่องถัดจากโมดูลฟีเจอร์แต่ละรายการที่คุณต้องการใส่เมื่อ ในการทำให้แอปของคุณใช้งานได้
- คลิกตกลง
โดยค่าเริ่มต้น Android Studio จะไม่ทำให้แอปของคุณใช้งานได้โดยใช้ App Bundle ในการทำให้ใช้งานได้ แอปของคุณ แต่ IDE สร้างและติดตั้ง APK ลงในอุปกรณ์ของคุณซึ่งมีการเพิ่มประสิทธิภาพด้านความเร็วในการทำให้ใช้งานได้ แทนที่จะเป็นขนาด APK เพื่อกำหนดค่า Android Studio เพื่อสร้างและทำให้ใช้งานได้แทน APK และประสบการณ์แบบ Instant จาก App Bundle แก้ไขการเรียกใช้/แก้ไขข้อบกพร่อง การกำหนดค่า
ใช้โมดูลฟีเจอร์สำหรับการนำส่งที่กำหนดเอง
ประโยชน์ที่ไม่เหมือนใครของโมดูลฟีเจอร์คือความสามารถในการปรับแต่งวิธีและเวลา ฟีเจอร์ต่างๆ ของแอปจะดาวน์โหลดลงในอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 21) ขึ้นไป ตัวอย่างเช่น หากต้องการลดขนาดการดาวน์โหลดเริ่มต้นของ แอปพลิเคชันของคุณ คุณสามารถกำหนดค่าคุณลักษณะบางอย่างให้ดาวน์โหลดได้ตามความจำเป็น ออนดีมานด์ หรือเฉพาะโดยอุปกรณ์ที่รองรับความสามารถบางอย่าง เช่น ความสามารถในการถ่ายภาพหรือรองรับฟีเจอร์ Augmented Reality
แม้ว่าคุณจะได้รับยอดดาวน์โหลดที่มีการเพิ่มประสิทธิภาพสูงโดยค่าเริ่มต้นเมื่ออัปโหลดแอป เป็น App Bundle แต่ตัวเลือกการนำส่งฟีเจอร์ขั้นสูงและปรับแต่งได้มากขึ้น ต้องมีการกำหนดค่าเพิ่มเติมและแยกส่วนฟีเจอร์ของแอปโดยใช้ โมดูลฟีเจอร์ กล่าวคือ โมดูลฟีเจอร์จะช่วยให้ สำหรับสร้างฟีเจอร์แบบแยกส่วนที่คุณสามารถกำหนดค่าให้กับแต่ละรายการ ดาวน์โหลดได้ตามต้องการ
ลองใช้แอปที่ช่วยให้ผู้ใช้ซื้อและขายสินค้าทางออนไลน์ ในมาร์เก็ตเพลส คุณสามารถปรับเปลี่ยนฟังก์ชันการทำงานต่อไปนี้อย่างละเอียดได้ ของแอปไว้ในโมดูลฟีเจอร์แยกกันดังนี้
- การเข้าสู่ระบบและการสร้างบัญชี
- การท่องเว็บใน Marketplace
- การวางสินค้าเพื่อขาย
- กำลังประมวลผลการชำระเงิน
ตารางด้านล่างนี้จะอธิบายตัวเลือกการแสดงโฆษณาต่างๆ ที่ฟีเจอร์ การสนับสนุนโมดูล และวิธีการใช้งานเพื่อเพิ่มประสิทธิภาพการดาวน์โหลดเบื้องต้น ขนาดของแอปตัวอย่างใน Marketplace
ตัวเลือกการจัดส่ง | ลักษณะการทำงาน | ตัวอย่างกรณีการใช้งาน | เริ่มต้นใช้งาน |
---|---|---|---|
การนำส่งเวลาติดตั้ง | โมดูลฟีเจอร์ที่ไม่ได้กำหนดค่าตัวเลือกการแสดงโฆษณาใดๆ
ดังที่อธิบายไว้ข้างต้นจะมีการดาวน์โหลดเมื่อติดตั้งแอปโดยค่าเริ่มต้น นี่คือ
พฤติกรรมที่สำคัญเนื่องจากหมายความว่าคุณใช้การแสดงโฆษณาขั้นสูง
ตัวเลือกทีละน้อย ตัวอย่างเช่น คุณสามารถได้ประโยชน์จากการปรับ
ฟีเจอร์ต่างๆ ของแอปและเปิดใช้การนำส่งแบบออนดีมานด์ได้หลังจากที่คุณ
ที่ทำการดาวน์โหลดแบบออนดีมานด์
โดยใช้ไลบรารีการนำส่งฟีเจอร์ Play
นอกจากนี้ แอปยังขอถอนการติดตั้งฟีเจอร์ต่างๆ ในภายหลังได้ด้วย ดังนั้น หากคุณต้องการใช้ฟีเจอร์บางรายการขณะติดตั้งแอป คุณลดขนาดการติดตั้งได้โดยขอให้นำฟีเจอร์ออกจาก อุปกรณ์ |
หากแอปมีกิจกรรมการฝึกอบรมบางอย่าง เช่น คำแนะนำแบบอินเทอร์แอกทีฟ
วิธีซื้อและขายสินค้าในตลาดกลาง คุณอาจรวม
ฟีเจอร์นี้จะอยู่ที่การติดตั้งแอปโดยค่าเริ่มต้น
แต่หากต้องการลดขนาดที่ติดตั้งของแอป แอปจะส่งคำขอเพื่อ ลบฟีเจอร์หลังจากที่ผู้ใช้ฝึกอบรมเสร็จเรียบร้อยแล้ว |
แยกแอปเป็นโมดูลโดยใช้ฟีเจอร์
โมดูลที่กำหนดค่าไม่มีตัวเลือกการส่งขั้นสูง
หากต้องการเรียนรู้วิธีการลดขนาดแอปที่ติดตั้งไว้โดยการนำ โมดูลฟีเจอร์ ที่ผู้ใช้ไม่จำเป็นต้องใช้อีกต่อไปแล้ว โปรดอ่าน จัดการ โมดูลที่ติดตั้งแล้ว |
การนำส่งตามคำขอ | อนุญาตให้แอปขอและดาวน์โหลดโมดูลฟีเจอร์ตามที่จำเป็น | หากมีเพียง 20% ของผู้ใช้แอป Marketplace ที่โพสต์สินค้าเพื่อขาย
กลยุทธ์ที่ดีในการลดขนาดการดาวน์โหลดเริ่มต้นสำหรับผู้ใช้ส่วนใหญ่
คือการทำให้ฟังก์ชันต่างๆ สำหรับการถ่ายภาพ ซึ่งรวมถึงรายการ
คำอธิบาย และวางสินค้าเพื่อขายแบบออนดีมานด์
ดาวน์โหลด กล่าวคือ คุณสามารถกำหนดค่าโมดูลฟีเจอร์สำหรับ
ฟังก์ชันการขายของแอปที่สามารถดาวน์โหลดได้เฉพาะเมื่อผู้ใช้แสดง
ความสนใจในการวางสินค้าเพื่อขายในมาร์เก็ตเพลส
นอกจากนี้ หากผู้ใช้ไม่ได้ขายสินค้าอีกต่อไปหลังจากระยะเวลาหนึ่ง แอปสามารถลดขนาดที่ติดตั้งโดยคำขอเพื่อถอนการติดตั้งแอป |
สร้างโมดูลฟีเจอร์และ กำหนดค่าตามคำขอ การจัดส่ง จากนั้นแอปของคุณจะสามารถใช้ ไลบรารีการนำส่งฟีเจอร์ Play เพื่อขอ ดาวน์โหลดโมดูลได้ตามคำขอ |
การนำส่งแบบมีเงื่อนไข | ให้คุณระบุข้อกำหนดบางอย่างในอุปกรณ์ของผู้ใช้ได้ เช่น ฮาร์ดแวร์ ฟีเจอร์ ภาษา และระดับ API ขั้นต่ำเพื่อพิจารณาว่า ฟีเจอร์จะดาวน์โหลดเมื่อติดตั้งแอป | หากแอปใน Marketplace เข้าถึงผู้ใช้ได้ทั่วโลก คุณอาจต้องขอรับการสนับสนุน วิธีการชำระเงินที่ได้รับความนิยมในบางภูมิภาคหรือในท้องถิ่นเท่านั้น ใน เพื่อลดขนาดการดาวน์โหลดแอปเริ่มต้น คุณสามารถสร้าง โมดูลสำหรับการประมวลผลวิธีการชำระเงินบางประเภท ให้ติดตั้งแอปแบบมีเงื่อนไขในอุปกรณ์ของผู้ใช้ ภาษาที่ลงทะเบียน | สร้างโมดูลฟีเจอร์และ กำหนดค่าการนำส่งตามเงื่อนไข |
จัดส่งทันที | Google Play Instant
ช่วยให้ผู้ใช้โต้ตอบกับแอปของคุณได้โดยไม่ต้องติดตั้งแอป
บนอุปกรณ์ของตน แต่พวกเขาสามารถใช้แอปของคุณได้ผ่าน "ลอง
Now" ใน Google Play Store หรือ URL ที่คุณสร้าง แบบฟอร์มนี้
ทำให้คุณสามารถเพิ่มการมีส่วนร่วมกับ
แอป
การนำส่งทันทีช่วยให้คุณสามารถใช้ Google Play Instant เพื่ออนุญาต ผู้ใช้จะได้สัมผัสกับคุณลักษณะบางประการของแอปได้ทันที ของคุณ |
ลองนึกถึงเกมที่มี 2-3 ระดับแรกๆ ของเกมใน โมดูลฟีเจอร์น้ำหนักเบา คุณสามารถเปิดใช้งานโมดูลดังกล่าวได้ทันทีเพื่อ เพื่อให้ผู้ใช้สามารถสัมผัสเกมได้ทันทีผ่านลิงก์ URL หรือ "ลอง Now" โดยไม่ต้องติดตั้งแอป | สร้างโมดูลฟีเจอร์และ
กำหนดค่า
การจัดส่งแบบทันที จากนั้นแอปของคุณจะสามารถใช้
ไลบรารีการนำส่งฟีเจอร์ Play เพื่อขอ
ดาวน์โหลดโมดูลได้ตามคำขอ
โปรดทราบว่า การพัฒนาฟีเจอร์ของแอปเป็นโมดูลโดยใช้ฟีเจอร์ โมดูลดังกล่าวเป็นเพียงขั้นตอนแรกเท่านั้น เพื่อรองรับ Google Play Instant ขนาดการดาวน์โหลดของโมดูลฐานของแอปและโมดูลที่เปิดใช้ Instant ที่กำหนด คุณลักษณะต้องเป็นไปตามข้อจำกัดเรื่องขนาดที่เข้มงวด หากต้องการทราบข้อมูลเพิ่มเติม อ่าน เปิดใช้งาน ประสบการณ์แบบทันใจด้วยการลดขนาดแอปหรือเกม |
การสร้าง URI สำหรับทรัพยากร
หากต้องการเข้าถึงทรัพยากรที่จัดเก็บไว้ในโมดูลฟีเจอร์โดยใช้
URI ต่อไปนี้เป็นวิธีสร้าง URI ทรัพยากรโมดูลฟีเจอร์โดยใช้
Uri.Builder()
:
Kotlin
val uri = Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded .appendPath(resources.getResourceTypeName(resId)) .appendPath(String.format("%s:%s", resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace. resources.getResourceEntryName(resId) )) .build()
Java
String uri = Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded .appendPath(resources.getResourceTypeName(resId)) .appendPath(String.format("%s:%s", resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace. resources.getResourceEntryName(resId) )) .build().toString();
แต่ละส่วนของเส้นทางไปยังทรัพยากรจะสร้างขึ้นในเวลารันไทม์ เพื่อให้แน่ใจว่า สร้างเนมสเปซที่ถูกต้องหลังจากโหลด APK ที่แยกแล้ว
ในตัวอย่างของวิธีสร้าง URI สมมติว่าคุณมีแอปและ โมดูลฟีเจอร์ที่มีชื่อเหล่านี้
- ชื่อแพ็กเกจแอป:
com.example.my_app_package
- ชื่อแพ็กเกจทรัพยากรของฟีเจอร์:
com.example.my_app_package.my_dynamic_feature
หาก resId
ในข้อมูลโค้ดด้านบนอ้างอิงทรัพยากรไฟล์ดิบที่ชื่อ
“my_video” ในโมดูลฟีเจอร์ โค้ด Uri.Builder()
ด้านบนจะ
เอาต์พุตต่อไปนี้
android.resource://com.example.my_app_package/raw/com.example.my_app_package.my_dynamic_feature:my_video
แอปสามารถใช้ URI นี้เพื่อเข้าถึงทรัพยากรของโมดูลฟีเจอร์ได้
หากต้องการตรวจสอบเส้นทางใน URI คุณสามารถใช้เครื่องมือวิเคราะห์ APK ได้ เพื่อตรวจสอบ APK โมดูลฟีเจอร์และระบุชื่อแพ็กเกจ ดังนี้
รูปที่ 2 ใช้เครื่องมือวิเคราะห์ APK เพื่อตรวจสอบชื่อแพ็กเกจในไฟล์ทรัพยากรที่คอมไพล์แล้ว
ข้อควรพิจารณาสำหรับโมดูลฟีเจอร์
โมดูลฟีเจอร์จะช่วยให้คุณปรับปรุงความเร็วและความรวดเร็วทางวิศวกรรม รวมถึงปรับแต่งการนำส่งฟีเจอร์ของแอปได้อย่างครอบคลุมเพื่อลดขนาดของแอป อย่างไรก็ตาม มีข้อจำกัดและข้อยกเว้นบางประการที่ควรคำนึงถึงเมื่อใช้โมดูลฟีเจอร์ ดังนี้
- การติดตั้งโมดูลฟีเจอร์ 50 โมดูลขึ้นไปบนอุปกรณ์เครื่องเดียว ผ่านเงื่อนไขหรือ การแสดงโฆษณาแบบออนดีมานด์ อาจทำให้เกิดปัญหาด้านประสิทธิภาพ โมดูลเวลาติดตั้ง ซึ่ง ไม่ได้กําหนดค่าให้นำออกได้ และจะรวมอยู่ในฐานโดยอัตโนมัติ และนับเป็น 1 โมดูลฟีเจอร์ในอุปกรณ์แต่ละเครื่องเท่านั้น
- จำกัดจำนวนโมดูลที่คุณกำหนดค่าเป็นโมดูลแบบถอดได้สำหรับเวลาติดตั้ง การจัดส่งเป็น 10 หรือน้อยกว่า มิเช่นนั้น แอตทริบิวต์ เวลาดาวน์โหลดและติดตั้งแอปของคุณอาจเพิ่มขึ้น
- เฉพาะอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 21) และการสนับสนุนที่สูงกว่าเท่านั้น ให้ดาวน์โหลดและติดตั้งฟีเจอร์ต่างๆ ได้ตามต้องการ เพื่อให้ใช้ฟีเจอร์ของคุณได้ ไปยัง Android เวอร์ชันก่อนหน้า การรวมเมื่อคุณสร้างโมดูลฟีเจอร์
- เปิดใช้ SplitCompat เพื่อให้แอปของคุณมีสิทธิ์เข้าถึงโมดูลฟีเจอร์ที่ดาวน์โหลดซึ่งแสดงใน ความต้องการของคุณ
- โมดูลฟีเจอร์ไม่ควรระบุกิจกรรมในไฟล์ Manifest ที่มี
ตั้งค่า
android:exported
เป็นtrue
เพราะไม่สามารถรับประกันได้ว่าอุปกรณ์ ได้ดาวน์โหลดโมดูลฟีเจอร์แล้วเมื่อแอปอื่นพยายามเปิด กิจกรรม นอกจากนี้ แอปควรยืนยันว่าฟีเจอร์ ที่ดาวน์โหลดก่อนที่จะพยายามเข้าถึงโค้ดและทรัพยากร หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน จัดการโมดูลที่ติดตั้ง - เนื่องจากการนำส่งฟีเจอร์ Play กำหนดให้คุณเผยแพร่แอปโดยใช้ App Bundle ตรวจสอบว่าคุณรู้จัก App Bundle ปัญหาที่ทราบแล้ว
การอ้างอิงไฟล์ Manifest ของโมดูลฟีเจอร์
เมื่อสร้างโมดูลฟีเจอร์ใหม่โดยใช้ Android Studio, IDE รวมแอตทริบิวต์ส่วนใหญ่ของไฟล์ Manifest ที่โมดูลต้องมีเพื่อทำงาน เช่น โมดูลฟีเจอร์ นอกจากนี้ จะมีการแทรกแอตทริบิวต์โดยแท็ก สร้างระบบในเวลาคอมไพล์ คุณจึงไม่ต้องระบุหรือแก้ไขระบบเหล่านั้นด้วยตัวเอง ตารางต่อไปนี้อธิบายแอตทริบิวต์ของไฟล์ Manifest ที่มีความสําคัญต่อ โมดูลฟีเจอร์
แอตทริบิวต์ | คำอธิบาย |
---|---|
<manifest |
นี่คือแอปทั่วไป
บล็อก <manifest> |
xmlns:dist="http://schemas.android.com/apk/distribution" |
ระบุเนมสเปซ XML ใหม่ของ dist:
ดังที่อธิบายไว้ด้านล่าง |
split="split_name" |
เมื่อ Android Studio สร้าง App Bundle จะมีส่วนนี้รวมอยู่ด้วย
ให้คุณ ดังนั้น คุณไม่ควรรวมหรือแก้ไข
แอตทริบิวต์นี้ด้วยตัวคุณเอง
กำหนดชื่อโมดูลซึ่งแอประบุ เมื่อขอโมดูลออนดีมานด์โดยใช้ไลบรารีการนำส่งฟีเจอร์ Play วิธีที่ Gradle กำหนดค่าสำหรับแอตทริบิวต์นี้มีดังนี้ โดยค่าเริ่มต้น เมื่อคุณสร้างโมดูลฟีเจอร์โดยใช้ Android Studio, IDE จะใช้สิ่งที่คุณระบุเป็น ชื่อโมดูลสำหรับระบุโมดูลเป็นโปรเจ็กต์ย่อย Gradle ใน ของคุณ ไฟล์การตั้งค่า Gradle
เมื่อคุณสร้าง App Bundle แล้ว Gradle จะใช้องค์ประกอบสุดท้ายของ
เส้นทางโปรเจ็กต์ย่อยเพื่อแทรกแอตทริบิวต์ไฟล์ Manifest นี้ในไฟล์
ไฟล์ Manifest ตัวอย่างเช่น หากคุณสร้างโมดูลฟีเจอร์ใหม่ใน
ไดเรกทอรี |
android:isFeatureSplit="true | false"> |
เมื่อสร้าง App Bundle ของ Android Studio จะมี
แอตทริบิวต์นี้ให้คุณ ดังนั้น คุณไม่ควรใส่
หรือแก้ไขแอตทริบิวต์นี้ด้วยตนเอง
ระบุว่าโมดูลนี้เป็นโมดูลฟีเจอร์
Manifest ในโมดูลฐานและ APK การกำหนดค่า
ละเว้นแอตทริบิวต์นี้หรือตั้งค่าเป็น |
<dist:module |
องค์ประกอบ XML ใหม่นี้จะระบุแอตทริบิวต์ที่ใช้กำหนดวิธีการ ถูกจัดแพ็กเกจและแจกจ่ายเป็น APK |
dist:instant="true | false" |
ระบุว่าโมดูลควรพร้อมใช้งานผ่าน
Google Play Instant ในแบบ
ประสบการณ์แบบทันใจ
หากแอปของคุณมีฟีเจอร์ที่เปิดใช้ Instant อย่างน้อย 1 รายการ คุณต้องเปิดใช้งานโมดูลฐานโดยทันทีด้วย เมื่อใช้ Android Studio 3.5 ขึ้นไป IDE จะดำเนินการดังกล่าวให้คุณเมื่อ สร้างฟีเจอร์ที่เปิดใช้ Instant โมดูลฟีเจอร์ คุณไม่สามารถตั้งค่าองค์ประกอบ XML นี้เป็น |
dist:title="@string/feature_name" |
ระบุชื่อที่แสดงต่อผู้ใช้สำหรับโมดูล ตัวอย่างเช่น
อุปกรณ์อาจแสดงชื่อนี้เมื่อขอให้ดาวน์โหลด
ยืนยัน
คุณต้องรวมทรัพยากรสตริงสำหรับชื่อนี้
ใน |
<dist:fusing dist:include="true | false" />
|
ระบุว่าจะรวมโมดูลไว้ใน APK หลายรายการที่
กำหนดเป้าหมายเป็นอุปกรณ์ที่ใช้ Android 4.4 (API ระดับ 20) และต่ำกว่า
นอกจากนี้ เมื่อคุณ
ใช้ |
<dist:delivery> |
สรุปตัวเลือกที่ปรับแต่งการนำส่งโมดูล ตามที่แสดงด้านล่าง โปรดทราบว่าโมดูลฟีเจอร์แต่ละโมดูลต้องกำหนดค่า ตัวเลือกการแสดงโฆษณาที่กำหนดเองเหล่านี้ |
<dist:install-time> |
ระบุว่าโมดูลควรพร้อมใช้งาน ณ เวลาติดตั้ง นี่คือ
ลักษณะการทำงานเริ่มต้นของโมดูลฟีเจอร์ที่ไม่ได้ระบุ
ของตัวเลือกการแสดงโฆษณาที่กำหนดเอง
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการดาวน์โหลดเมื่อติดตั้ง โปรดอ่าน กำหนดค่าการนำส่งเวลาติดตั้ง โหนดนี้ยังสามารถระบุเงื่อนไขที่จำกัดโมดูลไว้เฉพาะ อุปกรณ์ที่มีคุณสมบัติตรงตามข้อกำหนดบางประการ เช่น ฟีเจอร์ของอุปกรณ์ ผู้ใช้ ประเทศ หรือระดับ API ขั้นต่ำ หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน กำหนดค่าการนำส่งแบบมีเงื่อนไข |
<dist:removable dist:value="true | false" /> |
เมื่อไม่ได้ตั้งค่าหรือตั้งค่าเป็น เมื่อตั้งค่า ค่าเริ่มต้นคือ หมายเหตุ: ฟีเจอร์นี้ใช้ได้เฉพาะเมื่อใช้ Android Gradle ปลั๊กอิน 4.2 หรือเมื่อใช้ Bundletool v1.0 จากบรรทัดคำสั่ง |
</dist:install-time> |
|
<dist:on-demand/> |
ระบุว่าโมดูลควรพร้อมใช้งานแบบออนดีมานด์
ดาวน์โหลด กล่าวคือ โมดูลจะไม่พร้อมใช้งานในเวลาติดตั้ง แต่
อาจขอดาวน์โหลดภายหลัง
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการดาวน์โหลดแบบออนดีมานด์ โปรดอ่าน กำหนดค่าการแสดงโฆษณาแบบออนดีมานด์ |
</dist:delivery> |
|
<application
|
หากโมดูลฟีเจอร์ไม่ได้สร้างไฟล์ DEX กล่าวคือโมดูลดังกล่าวจะมี
ไม่มีโค้ดที่จะคอมไพล์เป็นรูปแบบไฟล์ DEX ในภายหลัง คุณต้องทำ
ดังต่อไปนี้ (ไม่เช่นนั้น คุณอาจได้รับข้อผิดพลาดเกี่ยวกับรันไทม์)
|
แหล่งข้อมูลเพิ่มเติม
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้โมดูลฟีเจอร์ ลองดูแหล่งข้อมูลต่อไปนี้
บล็อกโพสต์
- ฟีเจอร์ใหม่ที่จะช่วยคุณพัฒนา เผยแพร่ และทำให้ธุรกิจเติบโตใน Google Play
- การอัปเดต Android App Bundle ล่าสุดรวมถึง API ภาษาเพิ่มเติม
- Patchwork Plaid เรื่องราวของการแยกแอปออกเป็นโมดูลย่อย
วิดีโอ
- การนำส่งที่ปรับแต่งได้ด้วย App Bundle และการแชร์บิลด์ทดสอบอย่างง่ายดาย
- เครื่องมือใหม่เพื่อเพิ่มประสิทธิภาพขนาดของแอปและเพิ่มจำนวนการติดตั้งใน Google Play
ข้อกำหนดในการให้บริการและความปลอดภัยของข้อมูล
การเข้าถึงหรือใช้ไลบรารีการนำส่งฟีเจอร์ Play หมายความว่าคุณยอมรับ ข้อกำหนดในการให้บริการของ Play Core Software Development Kit โปรดอ่าน รวมถึงทำความเข้าใจข้อกำหนดและนโยบายที่เกี่ยวข้องทั้งหมดก่อนเข้าถึงไลบรารี
ความปลอดภัยของข้อมูล
ไลบรารี Play Core เป็นอินเทอร์เฟซรันไทม์ของแอปของคุณกับ Google Play Store ด้วยเหตุนี้ เมื่อคุณใช้ Play Core ในแอป Play Store จึงเรียกใช้แอปของตนเอง กระบวนการต่างๆ ซึ่งรวมถึงการจัดการข้อมูลที่อยู่ในบังคับของ ข้อกำหนดในการให้บริการของ Google Play ข้อมูลด้านล่างอธิบายวิธีที่ไลบรารี Play Core จัดการข้อมูลเพื่อวัตถุประสงค์ต่อไปนี้ ดำเนินการตามคำขอที่เจาะจงจากแอปของคุณ
API ภาษาเพิ่มเติม
ข้อมูลที่เก็บรวบรวมตามการใช้งาน | รายการภาษาที่ติดตั้ง |
วัตถุประสงค์ของการเก็บรวบรวมข้อมูล | ข้อมูลที่รวบรวมจะใช้เพื่อแสดงแอปเวอร์ชันภาษาอื่น และเพื่อรักษาภาษาที่ติดตั้งไว้หลังจากอัปเดตแอป |
การเข้ารหัสข้อมูล | ระบบจะเข้ารหัสข้อมูล |
การแชร์ข้อมูล | จะไม่มีการโอนข้อมูลไปยังบุคคลที่สาม |
การลบข้อมูล | ระบบจะลบข้อมูลหลังจากระยะเวลาเก็บรักษาที่คงที่ |
การนำส่งฟีเจอร์ Play
ข้อมูลที่เก็บรวบรวมตามการใช้งาน |
ข้อมูลเมตาของอุปกรณ์ เวอร์ชันของแอปพลิเคชัน |
วัตถุประสงค์ของการเก็บรวบรวมข้อมูล | เราจะใช้ข้อมูลที่เก็บรวบรวมเพื่อแสดงโมดูลที่ถูกต้องไปยังอุปกรณ์ และเพื่อรักษาโมดูลที่ติดตั้งไว้หลังจากการอัปเดต การสำรองและกู้คืนข้อมูล |
การเข้ารหัสข้อมูล | ระบบจะเข้ารหัสข้อมูล |
การแชร์ข้อมูล | จะไม่มีการโอนข้อมูลไปยังบุคคลที่สาม |
การลบข้อมูล | ระบบจะลบข้อมูลหลังจากระยะเวลาเก็บรักษาที่คงที่ |
แม้ว่าเราจะมุ่งมั่นที่จะสร้างความโปร่งใสที่สุดเท่าที่จะเป็นไปได้ แต่คุณเป็นผู้รับผิดชอบแต่เพียงผู้เดียว สำหรับการตัดสินใจว่าจะตอบอย่างไรในแบบฟอร์มส่วนความปลอดภัยของข้อมูลของ Google Play เกี่ยวกับแนวทางปฏิบัติด้านการรวบรวม การแชร์ และการรักษาความปลอดภัยของข้อมูลผู้ใช้ของแอป