การกําหนดอุปกรณ์เป้าหมายช่วยให้คุณควบคุมได้ละเอียดยิ่งขึ้นว่าส่วนใดของแอป Bundle ที่จะนําส่งไปยังอุปกรณ์ที่เฉพาะเจาะจง เช่น คุณสามารถตรวจสอบว่าชิ้นงานขนาดใหญ่จะแสดงเฉพาะในอุปกรณ์ที่มี RAM สูง หรือจะแสดงชิ้นงานเวอร์ชันต่างๆ ในอุปกรณ์ต่างๆ ก็ได้
คุณสามารถกําหนดเป้าหมายพร็อพเพอร์ตี้ของอุปกรณ์ได้ เช่น
- รุ่นของอุปกรณ์
- RAM ของอุปกรณ์
- ฟีเจอร์ของระบบ
- ระบบวงจรรวมบนชิป (สำหรับอุปกรณ์ที่มี API ระดับ 31 เป็นอย่างน้อย)
ภาพรวมของขั้นตอนที่จำเป็น
คุณต้องทําตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การกําหนดเป้าหมายอุปกรณ์
- กําหนดกลุ่มอุปกรณ์ในไฟล์การกําหนดค่าการกําหนดอุปกรณ์เป้าหมาย
- ระบุว่าส่วนใดของแพ็กเกจควรส่งไปยังกลุ่มอุปกรณ์ใด
- ไม่บังคับ: ทดสอบการกําหนดค่าในเครื่อง
- อัปโหลด Bundle (ที่มีไฟล์การกําหนดค่า) ไปยัง Google Play
ปลั๊กอิน Android Gradle กับปลั๊กอิน Play Unity
ขั้นตอนที่แน่นอนที่จำเป็นจะแตกต่างกันไป ขึ้นอยู่กับว่าคุณกำลังสร้างแอปด้วยปลั๊กอิน Android Gradle หรือปลั๊กอิน Play Unity เลือกการตั้งค่าบิลด์ก่อนดำเนินการต่อ
ตรวจสอบเวอร์ชันปลั๊กอิน 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 โปรดดูเอกสารประกอบสำหรับการนำส่งแบบมีเงื่อนไข
การกำหนดอุปกรณ์เป้าหมายสําหรับ Play Asset Delivery
หากต้องการใช้การกำหนดเป้าหมายอุปกรณ์กับ Play Asset Delivery โปรดดูเอกสารประกอบสำหรับ Asset Pack
รายงานข้อบกพร่อง
รายงานข้อบกพร่องในเครื่องมือติดตามปัญหาสาธารณะ