การกําหนดอุปกรณ์เป้าหมาย (เบต้า)

การกําหนดอุปกรณ์เป้าหมายช่วยให้คุณควบคุมได้ละเอียดยิ่งขึ้นว่าส่วนใดของแอป Bundle ที่จะนําส่งไปยังอุปกรณ์ที่เฉพาะเจาะจง เช่น คุณสามารถตรวจสอบว่าชิ้นงานขนาดใหญ่จะแสดงเฉพาะในอุปกรณ์ที่มี RAM สูง หรือจะแสดงชิ้นงานเวอร์ชันต่างๆ ในอุปกรณ์ต่างๆ ก็ได้

คุณสามารถกําหนดเป้าหมายพร็อพเพอร์ตี้ของอุปกรณ์ได้ เช่น

  • รุ่นของอุปกรณ์
  • RAM ของอุปกรณ์
  • ฟีเจอร์ของระบบ
  • ระบบวงจรรวมบนชิป (สำหรับอุปกรณ์ที่มี API ระดับ 31 เป็นอย่างน้อย)

ภาพรวมของขั้นตอนที่จำเป็น

คุณต้องทําตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การกําหนดเป้าหมายอุปกรณ์

  1. กำหนดกลุ่มอุปกรณ์ในไฟล์ XML
  2. ระบุว่าส่วนใดของแพ็กเกจควรส่งไปยังกลุ่มอุปกรณ์ใด
  3. [ไม่บังคับ] ทดสอบการกําหนดค่าในเครื่อง
  4. อัปโหลด 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 เป็นอย่างน้อยเท่านั้น

การรวมพร็อพเพอร์ตี้หลายรายการในตัวเลือกเดียวจะสร้างตรรกะ 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")

    หน้า Pixel 4a ในแคตตาล็อกอุปกรณ์

    หน้า Pixel 4a ในแคตตาล็อกอุปกรณ์

  • ดาวน์โหลด 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 โปรดดูเอกสารประกอบสำหรับการนำส่งแบบมีเงื่อนไข