การกําหนดอุปกรณ์เป้าหมายช่วยให้คุณควบคุมได้ละเอียดยิ่งขึ้นว่าส่วนใดของแอป Bundle ที่จะนําส่งไปยังอุปกรณ์ที่เฉพาะเจาะจง เช่น คุณสามารถตรวจสอบว่าชิ้นงานขนาดใหญ่จะแสดงเฉพาะในอุปกรณ์ที่มี RAM สูง หรือจะแสดงชิ้นงานเวอร์ชันต่างๆ ในอุปกรณ์ต่างๆ ก็ได้
คุณสามารถกําหนดเป้าหมายพร็อพเพอร์ตี้ของอุปกรณ์ได้ เช่น
- รุ่นของอุปกรณ์
- RAM ของอุปกรณ์
- ฟีเจอร์ของระบบ
- ระบบวงจรรวมบนชิป (สำหรับอุปกรณ์ที่มี API ระดับ 31 เป็นอย่างน้อย)
ภาพรวมของขั้นตอนที่จำเป็น
คุณต้องทําตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การกําหนดเป้าหมายอุปกรณ์
- กำหนดกลุ่มอุปกรณ์ในไฟล์ XML
- ระบุว่าส่วนใดของแพ็กเกจควรส่งไปยังกลุ่มอุปกรณ์ใด
- [ไม่บังคับ] ทดสอบการกําหนดค่าในเครื่อง
- อัปโหลด App Bundle (ที่มีไฟล์ XML) ไปยัง Google Play
ตรวจสอบเวอร์ชันปลั๊กอิน Android Gradle
หากต้องการใช้การกำหนดเป้าหมายอุปกรณ์ โปรดตรวจสอบว่าปลั๊กอิน Android Gradle (AGP) ของคุณเป็นเวอร์ชัน 8.10.0-alpha01 เป็นอย่างน้อย เครื่องมือนี้มาพร้อมกับ Android Studio Meerkat 2 ขึ้นไป
เปิดใช้การกำหนดอุปกรณ์เป้าหมายในปลั๊กอิน Android Gradle
คุณต้องเปิดใช้การกำหนดอุปกรณ์เป้าหมายอย่างชัดเจนในไฟล์ gradle.properties
android.experimental.enableDeviceTargetingConfigApi=true
สร้างไฟล์ XML การกำหนดค่าการกำหนดอุปกรณ์เป้าหมาย
ไฟล์การกําหนดค่าการกําหนดเป้าหมายอุปกรณ์คือไฟล์ XML ที่คุณใช้กําหนดกลุ่มอุปกรณ์ที่กําหนดเอง เช่น คุณอาจกำหนดกลุ่มอุปกรณ์ชื่อ high_ram
ที่มีอุปกรณ์ทั้งหมดที่มี RAM อย่างน้อย 8 GB ดังนี้
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="high_ram">
<config:device-selector ram-min-bytes="8000000000"/>
</config:device-group>
</config:device-targeting-config>
กลุ่มอุปกรณ์ประกอบด้วยตัวเลือกอุปกรณ์สูงสุด 5 รายการ อุปกรณ์จะรวมอยู่ในกลุ่มอุปกรณ์หากเป็นไปตามตัวเลือกอุปกรณ์ใดก็ได้
ตัวเลือกอุปกรณ์จะมีพร็อพเพอร์ตี้อุปกรณ์ได้อย่างน้อย 1 รายการ ระบบจะเลือกอุปกรณ์หากตรงกับพร็อพเพอร์ตี้อุปกรณ์ของตัวเลือกทั้งหมด
พร็อพเพอร์ตี้อุปกรณ์ที่ใช้ได้
- device_ram: ข้อกำหนดของ RAM ของอุปกรณ์
- min_bytes (รวม): RAM ขั้นต่ำที่จำเป็น (เป็นไบต์)
- max_bytes (ไม่รวม): RAM สูงสุดที่จําเป็น (เป็นไบต์)
- included_device_ids: รุ่นอุปกรณ์ที่จะรวมไว้ในตัวเลือกนี้
(device_ids สูงสุด 10,000 รายการต่อกลุ่ม) พร็อพเพอร์ตี้นี้จะตรงตามเงื่อนไขหาก device ตรงกับ device_id ใดก็ได้ในรายการ
- build_brand: ผู้ผลิตอุปกรณ์
- build_device: รหัสรุ่นอุปกรณ์
- excluded_device_ids: รุ่นอุปกรณ์ที่จะยกเว้นในตัวเลือกนี้
(device_ids สูงสุด 10,000 รายการต่อกลุ่ม) พร็อพเพอร์ตี้นี้จะตรงตามเงื่อนไขหาก device ไม่ตรงกับ device_id ในรายการ
- build_brand: ผู้ผลิตอุปกรณ์
- build_device: รหัสรุ่นอุปกรณ์
required_system_features: ฟีเจอร์ที่อุปกรณ์ต้องมีเพื่อที่จะรวมอยู่ในตัวเลือกนี้ (สูงสุด 100 ฟีเจอร์ต่อกลุ่ม) อุปกรณ์ต้องมีฟีเจอร์ระบบทั้งหมดในรายการนี้จึงจะตรงตามพร็อพเพอร์ตี้นี้
ข้อมูลอ้างอิงฟีเจอร์ของระบบ
- name: ฟีเจอร์ของระบบ
forbidden_system_features: ฟีเจอร์ที่ตัวเลือกนี้ต้องไม่รวมไว้ในอุปกรณ์ (สูงสุด 100 ฟีเจอร์ต่อกลุ่ม) หากอุปกรณ์มีฟีเจอร์ระบบใดก็ตามในรายการนี้ แสดงว่าอุปกรณ์ไม่เป็นไปตามพร็อพเพอร์ตี้นี้
ข้อมูลอ้างอิงฟีเจอร์ของระบบ
- name: ฟีเจอร์ของระบบ
System-on-chip: ระบบวงจรรวมบนชิปที่จะรวมอยู่ในตัวเลือกนี้ อุปกรณ์ต้องมีชิปในรายการนี้จึงจะตรงกับพร็อพเพอร์ตี้นี้ ชิประบบออนสามารถกำหนดเป้าหมายได้ในอุปกรณ์ที่มีAPI ระดับ 31 เป็นอย่างน้อยเท่านั้น
- manufacturer: ผู้ผลิตระบบวงจรรวมบนชิป
- model: รุ่นระบบวงจรรวมบนชิป
การรวมพร็อพเพอร์ตี้หลายรายการในตัวเลือกเดียวจะสร้างตรรกะ AND เช่น
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
จะสร้างเงื่อนไขสำหรับอุปกรณ์ทั้งหมดที่มี RAM มากกว่า 7 GB และเป็น Pixel 4 และยังเขียนได้อีกดังนี้
หากต้องการเงื่อนไข "หรือ" ให้สร้างตัวเลือกแยกต่างหากในกลุ่มอุปกรณ์เดียว ตัวอย่างเช่น
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
จะสร้างเงื่อนไขสำหรับอุปกรณ์ทั้งหมดที่มี RAM มากกว่า 7 GB หรือเป็น Pixel 4 ซึ่งเขียนได้อีกอย่างดังนี้
ต่อไปนี้คือตัวอย่างที่แสดงพร็อพเพอร์ตี้อุปกรณ์ที่เป็นไปได้ทั้งหมด
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="myCustomGroup1">
<config:device-selector ram-min-bytes="8000000000">
<config:included-device-id brand="google" device="redfin"/>
<config:included-device-id brand="google" device="sailfish"/>
<config:included-device-id brand="good-brand"/>
<config:excluded-device-id brand="google" device="caiman"/>
<config:system-on-chip manufacturer="Sinclair" model="ZX80"/>
<config:system-on-chip manufacturer="Commodore" model="C64"/>
</config:device-selector>
<config:device-selector ram-min-bytes="16000000000"/>
</config:device-group>
<config:device-group name="myCustomGroup2">
<config:device-selector ram-min-bytes="4000000000" ram-max-bytes="8000000000">
<config:required-system-feature name="android.hardware.bluetooth"/>
<config:required-system-feature name="android.hardware.location"/>
<config:forbidden-system-feature name="android.hardware.camera"/>
<config:forbidden-system-feature name="mindcontrol.laser"/>
</config:device-selector>
</config:device-group>
</config:device-targeting-config>
รหัสผู้ผลิตอุปกรณ์อย่างเป็นทางการและรหัสรุ่นอุปกรณ์
คุณดูการจัดรูปแบบที่ถูกต้องสำหรับรหัสผู้ผลิตและรุ่นอุปกรณ์ได้โดยใช้แคตตาล็อกอุปกรณ์ใน Google Play Console โดยทำอย่างใดอย่างหนึ่งต่อไปนี้
การตรวจสอบอุปกรณ์แต่ละเครื่องโดยใช้แคตตาล็อกอุปกรณ์ และค้นหารหัสผู้ผลิตและรหัสรุ่นในตำแหน่งที่แสดงในตัวอย่างด้านล่าง (สำหรับ Google Pixel 4a ผู้ผลิตคือ "Google" และรหัสรุ่นคือ "sunfish")
ดาวน์โหลด CSV ของอุปกรณ์ที่รองรับ และใช้ผู้ผลิตและรหัสรุ่นสำหรับช่อง build_brand และ build_device ตามลำดับ
รวมไฟล์การกําหนดค่าการกําหนดอุปกรณ์เป้าหมายไว้ใน App Bundle
เพิ่มโค้ดต่อไปนี้ลงในไฟล์ build.gradle
ของโมดูลหลัก
android {
...
bundle {
deviceTargetingConfig = file('device_targeting_config.xml')
deviceGroup {
enableSplit = true // split bundle by #group
defaultGroup = "other" // group used for standalone APKs
}
}
...
}
device_targeting_config.xml
คือเส้นทางของไฟล์การกําหนดค่าที่สัมพันธ์กับข้อบังคับหลัก ซึ่งจะทำให้ไฟล์การกําหนดค่าได้รับการบรรจุไว้ใน App Bundle
ประโยค deviceGroup
ช่วยให้มั่นใจว่า APK ที่สร้างขึ้นจาก App Bundle ของคุณจะแยกตามกลุ่มอุปกรณ์
การกำหนดอุปกรณ์เป้าหมายสำหรับการนำส่งฟีเจอร์ Play
หากต้องการใช้การกำหนดอุปกรณ์เป้าหมายกับ Play Feature Delivery โปรดดูเอกสารประกอบสำหรับการนำส่งแบบมีเงื่อนไข