โมดูลฟีเจอร์ช่วยให้คุณแยกฟีเจอร์และทรัพยากรบางอย่างได้ จากโมดูลฐานของแอปและรวมไว้ใน App Bundle คุณสามารถ จากนั้นปรับแต่งตัวเลือกการนำส่ง เพื่อควบคุมเวลาและวิธีที่อุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 21) ขึ้นไป ดาวน์โหลดฟีเจอร์ของแอป
โปรดจำไว้ว่าการแยกส่วนประเภทนี้ต้องใช้ความพยายามมากขึ้น และ การเปลี่ยนโครงสร้างภายในโค้ดที่มีอยู่ของแอปคุณ ดังนั้นควรพิจารณาอย่างรอบคอบว่าโค้ดใด ฟีเจอร์ของแอปจะได้รับประโยชน์มากที่สุดเมื่อพร้อมให้บริการแก่ผู้ใช้แบบออนดีมานด์
หากต้องการค่อยๆ ทำให้ฟีเจอร์ของแอปค่อยๆ แยกเป็นส่วนๆ เมื่อเวลาผ่านไป เปลี่ยนการทำงานของแอป หรือปรับแต่งตัวเลือกการแสดงโฆษณาขั้นสูง โดยการสร้างโมดูลฟีเจอร์ที่กำหนดค่าสำหรับเวลาติดตั้ง กล่าวคือ คุณสามารถทำให้ฟีเจอร์เป็นโมดูลฟีเจอร์ได้ แต่ เปิดใช้ตัวเลือกขั้นสูงเพื่อให้ฟีเจอร์นี้พร้อมใช้งานเมื่อผู้ใช้ติดตั้ง แอป
นอกจากนี้ โมดูลฟีเจอร์ที่กำหนดค่าสำหรับการนำส่งเวลาติดตั้งจะมีตัวเลือกให้ถอนการติดตั้งในภายหลังหากไม่จำเป็นต้องใช้แล้ว อุปกรณ์เหล่านั้นต้องตั้งค่าให้ถอดออกได้
ส่วนนี้จะอธิบายวิธีสร้างโมดูลฟีเจอร์สำหรับเวลาติดตั้ง ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณ ใช้ Android Studio 3.5 ขึ้นไปและปลั๊กอิน Android Gradle 3.5.0 หรือสูงกว่า
กำหนดค่าโมดูลใหม่สำหรับการนำส่งเวลาติดตั้ง
วิธีที่ง่ายที่สุดในการสร้างโมดูลฟีเจอร์ใหม่คือการใช้ Android Studio 3.5 ขึ้นไป เนื่องจากโมดูลฟีเจอร์มี การขึ้นต่อกันโดยธรรมชาติของโมดูลแอปพื้นฐาน คุณจะสามารถเพิ่มโมดูลเหล่านั้นลงใน โปรเจ็กต์ของแอป
วิธีเพิ่มโมดูลฟีเจอร์ลงในโปรเจ็กต์แอปโดยใช้ Android Studio โดยทำตามขั้นตอนต่อไปนี้
- เปิดโปรเจ็กต์แอปใน IDE หากยังไม่ได้เปิด
- เลือก ไฟล์ > ใหม่ > โมดูลใหม่จากแถบเมนู
- ในกล่องโต้ตอบสร้างโมดูลใหม่ ให้เลือก Dynamic Feature Module แล้วคลิก Next
- ในส่วนกำหนดค่าโมดูลใหม่ ให้กรอก
ดังต่อไปนี้:
- เลือกโมดูลแอปพลิเคชันพื้นฐานสำหรับโปรเจ็กต์แอปจาก เมนูแบบเลื่อนลง
- ระบุชื่อโมดูล IDE ใช้ชื่อนี้เพื่อระบุ
เป็นโปรเจ็กต์ย่อย Gradle ใน
ไฟล์การตั้งค่า Gradle เมื่อคุณ
สร้าง App Bundle โดย Gradle จะใช้องค์ประกอบสุดท้ายของโปรเจ็กต์ย่อย
ชื่อที่จะแทรกแอตทริบิวต์
<manifest split>
ใน ไฟล์ Manifest ของโมดูลฟีเจอร์ - ระบุชื่อแพ็กเกจของโมดูล โดยค่าเริ่มต้น Android Studio แนะนำชื่อแพ็กเกจที่รวมชื่อแพ็กเกจรูทของ โมดูลฐานและชื่อโมดูลที่คุณระบุไว้ในขั้นตอนก่อนหน้า
- เลือกระดับ API ขั้นต่ำที่คุณต้องการให้โมดูลรองรับ ค่านี้ควรตรงกับของโมดูลฐาน
- คลิกถัดไป
ในส่วนตัวเลือกการดาวน์โหลดโมดูล ให้กรอกข้อมูลต่อไปนี้
ระบุชื่อโมดูลโดยใช้อักขระได้สูงสุด 50 ตัว ฐานแอปของคุณ โมดูลต้องมีชื่อโมดูลเป็น สตริงทรัพยากร ซึ่งคุณ แปลได้ เมื่อสร้างโมดูลโดยใช้ Android Studio, IDE เพิ่มทรัพยากรสตริงลงในโมดูลฐานให้คุณ และแทรกพารามิเตอร์ รายการต่อไปนี้ในไฟล์ Manifest ของโมดูลฟีเจอร์
<dist:module ... dist:title="@string/feature_title"> </dist:module>
ในเมนูแบบเลื่อนลงภายใต้การรวมเวลาติดตั้ง ให้เลือกรวม ณ เวลาติดตั้ง Android Studio จะแทรกข้อมูลต่อไปนี้ใน ไฟล์ Manifest ของโมดูลดังกล่าวเพื่อแสดงสิ่งที่คุณเลือก
<dist:module ... > <dist:delivery> <dist:install-time /> </dist:delivery> </dist:module>
หากต้องการดูวิธีสร้างโมดูลฟีเจอร์ ที่คุณสามารถดาวน์โหลดหลังจากติดตั้งแอป อ่าน กำหนดค่าการแสดงโฆษณาแบบออนดีมานด์
เลือกช่อง Fusing หากต้องการให้โมดูลนี้พร้อมใช้งาน สำหรับอุปกรณ์ที่ใช้ Android 4.4 (API ระดับ 20) และต่ำกว่า และรวมอยู่ใน APK หลายรายการ ซึ่งหมายความว่าคุณสามารถยกเว้นการเข้าถึงบนอุปกรณ์ที่ไม่รองรับ การดาวน์โหลดและติดตั้ง APK แยกส่วน Android Studio จะแทรก ต่อไปนี้ในไฟล์ Manifest ของโมดูลเพื่อให้สอดคล้องกับตัวเลือกของคุณ
<dist:module ...> <dist:fusing dist:include="true | false" /> </dist:module>
คลิกเสร็จสิ้น
หลังจากที่ Android Studio สร้างโมดูลเสร็จแล้ว ให้ตรวจสอบเนื้อหา เองจากแผงโปรเจ็กต์ (เลือกมุมมอง > หน้าต่างเครื่องมือ > โปรเจ็กต์ จากแถบเมนู) โค้ด ทรัพยากร และองค์กรเริ่มต้นควรเป็น คล้ายกับโมดูลแอปมาตรฐาน
ทำให้โมดูลเวลาติดตั้งแบบถอดออกได้
การสร้างโมดูลฟีเจอร์สำหรับการนำส่งเวลาติดตั้งที่มีตัวเลือกให้ถอนการติดตั้งในภายหลังได้หากไม่จำเป็นอีกต่อไป อาจเป็นประโยชน์ ตัวอย่างเช่น หากต้องการลดขนาดที่ติดตั้งของ คุณสามารถกำหนดเนื้อหาที่จำเป็นสำหรับการฝึกอบรมหรือการเตรียมความพร้อม จากนั้น ถอนการติดตั้งโมดูลฟีเจอร์โดยใช้ Play Core API หลังจากที่ผู้ใช้ตั้งค่าให้ใช้แอปของคุณแล้ว
โดยค่าเริ่มต้น คุณจะนำโมดูลเวลาติดตั้งออกได้ หากต้องการทำเครื่องหมายโมดูลว่านำออกได้และอนุญาตให้ถอนการติดตั้งได้ ให้เพิ่มแท็ก removable
แล้วตั้งค่าเป็น true
:
<dist:module ... >
<dist:delivery>
<dist:install-time>
<dist:removable dist:value="true"/>
</dist:install-time>
</dist:delivery>
</dist:module>