การตั้งค่าไลบรารีการสนับสนุน

หมายเหตุ: เมื่อเปิดตัว Android 9.0 (API ระดับ 28) จะมี ไลบรารีการสนับสนุนเวอร์ชันใหม่ที่ชื่อ AndroidX ซึ่งเป็นส่วนหนึ่งของ Jetpack ไลบรารี AndroidX มีไลบรารีการสนับสนุนที่มีอยู่และยังมีคอมโพเนนต์ Jetpack ล่าสุดด้วย

คุณสามารถใช้ไลบรารีการสนับสนุนต่อไปได้ อาร์ติแฟกต์ย้อนหลัง (เวอร์ชัน 27 และก่อนหน้า รวมถึงที่แพ็กเกจเป็น android.support.*) จะยังคงพร้อมให้บริการใน Google Maven อย่างไรก็ตาม การพัฒนาไลบรารีใหม่ทั้งหมด จะเกิดขึ้นในไลบรารี AndroidX

เราขอแนะนำให้ใช้ไลบรารี AndroidX ในโปรเจ็กต์ใหม่ทั้งหมด นอกจากนี้ คุณควรพิจารณาย้ายข้อมูลโปรเจ็กต์ที่มีอยู่ไปยัง AndroidX ด้วย

วิธีตั้งค่าไลบรารีการสนับสนุน Android ในโปรเจ็กต์การพัฒนาจะขึ้นอยู่กับฟีเจอร์ที่คุณต้องการใช้และช่วงเวอร์ชันแพลตฟอร์ม Android ที่คุณต้องการรองรับด้วยแอปพลิเคชัน

เอกสารนี้จะแนะนำขั้นตอนการดาวน์โหลดแพ็กเกจ Support Library และการเพิ่มไลบรารี ลงในสภาพแวดล้อมการพัฒนา

ตอนนี้ไลบรารีการสนับสนุนพร้อมให้บริการผ่านที่เก็บ Maven ของ Google แล้ว เราไม่รองรับการดาวน์โหลดไลบรารีผ่าน SDK Manager อีกต่อไป และจะนำฟังก์ชันดังกล่าวออกในเร็วๆ นี้

การเลือกไลบรารีการสนับสนุน

ก่อนเพิ่มไลบรารีการสนับสนุนลงในแอปพลิเคชัน ให้ตัดสินใจว่าต้องการรวมฟีเจอร์ใด และต้องการรองรับ Android เวอร์ชันต่ำสุดใด ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ ที่ไลบรารีต่างๆ มีให้ได้ที่ ฟีเจอร์ของ Support Library

การเพิ่มไลบรารีการสนับสนุน

หากต้องการใช้ไลบรารีการสนับสนุน คุณต้องแก้ไขการอ้างอิง classpath ของโปรเจ็กต์แอปพลิเคชันภายในสภาพแวดล้อมการพัฒนา คุณต้องทำตามขั้นตอนนี้สำหรับ Support Library แต่ละรายการที่ต้องการใช้

วิธีเพิ่มไลบรารีการสนับสนุนลงในโปรเจ็กต์แอปพลิเคชัน

  1. รวมที่เก็บ Maven ของ Google ไว้ในไฟล์ settings.gradle ของโปรเจ็กต์
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
    
            // If you're using a version of Gradle lower than 4.1, you must
            // instead use:
            //
            // maven {
            //     url 'https://maven.google.com'
            // }
        }
    }
  2. สำหรับแต่ละโมดูลที่คุณต้องการใช้ Support Library ให้เพิ่มไลบรารีในบล็อก dependencies ของไฟล์ build.gradle ของโมดูล ตัวอย่างเช่น หากต้องการเพิ่มไลบรารี core-utils v4 ให้เพิ่มข้อมูลต่อไปนี้
    dependencies {
        ...
        implementation "com.android.support:support-core-utils:28.0.0"
    }

ข้อควรระวัง: การใช้การอ้างอิงแบบไดนามิก (เช่น palette-v7:23.0.+) อาจทำให้เกิดการอัปเดตเวอร์ชันที่ไม่คาดคิดและ ความเข้ากันไม่ได้ของการถดถอย เราขอแนะนำให้คุณระบุเวอร์ชันไลบรารีอย่างชัดเจน (เช่น palette-v7:28.0.0)

การใช้ API ของไลบรารีการสนับสนุน

คลาส Support Library ที่รองรับ API ของเฟรมเวิร์กที่มีอยู่มักจะมี ชื่อเดียวกับคลาสเฟรมเวิร์ก แต่จะอยู่ในแพ็กเกจคลาส android.support หรือมีคำต่อท้าย *Compat

ข้อควรระวัง: เมื่อใช้คลาสจาก Support Library โปรดตรวจสอบว่าคุณได้นำเข้า คลาสจากแพ็กเกจที่เหมาะสม ตัวอย่างเช่น เมื่อใช้คลาส ActionBar

  • android.support.v7.app.ActionBar เมื่อใช้คลังข้อมูลสนับสนุน
  • android.app.ActionBar เมื่อพัฒนาสำหรับ API ระดับ 11 ขึ้นไปเท่านั้น

หมายเหตุ: หลังจากรวมไลบรารีการสนับสนุนไว้ในโปรเจ็กต์แอปพลิเคชันแล้ว เราขอ แนะนำเป็นอย่างยิ่งให้คุณลดขนาด ทำให้สับสน และเพิ่มประสิทธิภาพ แอปสำหรับการเผยแพร่ นอกเหนือจากการปกป้องซอร์สโค้ดด้วยการปรับให้ยากต่อการอ่าน (Obfuscation) แล้ว การย่อ ยังนำคลาสที่ไม่ได้ใช้ออกจากไลบรารีที่คุณรวมไว้ในแอปพลิเคชันด้วย ซึ่งจะช่วยให้ ขนาดการดาวน์โหลดของแอปพลิเคชันมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้

คำแนะนำเพิ่มเติมสำหรับการใช้ฟีเจอร์ Support Library บางอย่างมีอยู่ในชั้นเรียนการฝึกอบรม คำแนะนำ และตัวอย่างของนักพัฒนาแอป Android ดูข้อมูลเพิ่มเติมเกี่ยวกับคลาสและเมธอดของ Support Library แต่ละรายการได้ที่android.supportแพ็กเกจในเอกสารอ้างอิง API

การเปลี่ยนแปลงการประกาศไฟล์ Manifest

หากคุณเพิ่มความเข้ากันได้แบบย้อนหลังของแอปพลิเคชันที่มีอยู่เป็น Android API เวอร์ชันก่อนหน้าด้วยไลบรารีการสนับสนุน โปรดตรวจสอบว่าได้อัปเดตไฟล์ Manifest ของแอปพลิเคชันแล้ว โดยคุณควรอัปเดตองค์ประกอบ android:minSdkVersion ของแท็ก <uses-sdk> ในไฟล์ Manifest เป็นหมายเลขเวอร์ชันใหม่ที่ต่ำกว่า ดังที่แสดงด้านล่าง

  <uses-sdk
      android:minSdkVersion="14"
      android:targetSdkVersion="23" />

การตั้งค่าไฟล์ Manifest จะบอก Google Play ว่าแอปพลิเคชันของคุณสามารถติดตั้งในอุปกรณ์ที่ใช้ Android 4.0 (API ระดับ 14) ขึ้นไปได้

หากคุณใช้ไฟล์บิลด์ Gradle การตั้งค่า minSdkVersion ในไฟล์บิลด์ จะลบล้างการตั้งค่า Manifest

plugins {
  id 'com.android.application'
}

android {
    ...

    defaultConfig {
        minSdkVersion 16
        ...
    }
    ...
}

ในกรณีนี้ การตั้งค่าไฟล์บิลด์จะบอก Google Play ว่าสามารถติดตั้งตัวแปรบิลด์เริ่มต้นของแอปพลิเคชันในอุปกรณ์ที่ใช้ Android 4.1 (API ระดับ 16) ขึ้นไปได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรบิลด์ได้ที่ภาพรวมระบบบิลด์

หมายเหตุ: หากคุณรวมไลบรารีสนับสนุนหลายรายการ SDK เวอร์ชันขั้นต่ำต้องเป็นเวอร์ชันสูงสุดที่ไลบรารีที่ระบุต้องการ เช่น หากแอปมีทั้งไลบรารีการรองรับ Preference v14 และไลบรารี Leanback v17 เวอร์ชัน SDK ขั้นต่ำต้องเป็น 17 ขึ้นไป