หมายเหตุ: การเปิดตัว Android 9.0 (API ระดับ 28) มาพร้อมกับ
ไลบรารีการสนับสนุนเวอร์ชันใหม่ที่ชื่อ AndroidX
ซึ่งเป็นส่วนหนึ่งของ Jetpack
ไลบรารี AndroidX
มีไลบรารีการสนับสนุนที่มีอยู่และยังมีคอมโพเนนต์ Jetpack ล่าสุดด้วย
คุณสามารถใช้ไลบรารีการสนับสนุนต่อไปได้
อาร์ติแฟกต์ย้อนหลัง (เวอร์ชัน 27 และก่อนหน้า รวมถึงที่แพ็กเกจเป็น android.support.*
) จะยังคงพร้อมให้บริการใน Google Maven
อย่างไรก็ตาม การพัฒนาไลบรารีใหม่ทั้งหมด
จะเกิดขึ้นในไลบรารี AndroidX
เราขอแนะนำให้ใช้ไลบรารี AndroidX ในโปรเจ็กต์ใหม่ทั้งหมด นอกจากนี้ คุณควรพิจารณาย้ายข้อมูลโปรเจ็กต์ที่มีอยู่ไปยัง AndroidX ด้วย
ไลบรารีการสนับสนุนมีคลาสมากมายสำหรับการสร้างแอป ตั้งแต่ คอมโพเนนต์แอปพื้นฐาน ไปจนถึงวิดเจ็ตอินเทอร์เฟซผู้ใช้ การจัดการสื่อ และ คอมโพเนนต์แอปทีวี คลาสหลายรายการเป็นการใช้งานที่เข้ากันได้แบบย้อนหลัง แต่บางรายการก็เป็นฟีเจอร์ใหม่ในตัวของมันเอง
เอกสารนี้ให้ภาพรวมของหมวดหมู่ฟีเจอร์ที่สำคัญ ซึ่งมีอยู่ในคลังการสนับสนุน และคลาสที่เฉพาะเจาะจงที่คุณควรรู้ เมื่อสร้างแอป
ดูข้อมูลเกี่ยวกับวิธีเพิ่มโค้ดไลบรารีการสนับสนุนลงในโปรเจ็กต์การพัฒนาแอป ได้ที่การตั้งค่า ไลบรารีการสนับสนุน ดูข้อมูลเกี่ยวกับวิธีรวมแพ็กเกจไลบรารีการสนับสนุน ที่เฉพาะเจาะจงไว้ในโปรเจ็กต์ได้ที่ แพ็กเกจไลบรารีการสนับสนุน
คอมโพเนนต์ของแอป
คลาสในไลบรารีการสนับสนุนเหล่านี้มีการใช้งานที่เข้ากันได้แบบย้อนหลังสำหรับ ฟีเจอร์หลักที่สำคัญของแพลตฟอร์ม โดยปกติแล้วการติดตั้งใช้งานเหล่านี้จะขยาย คลาสเวอร์ชันก่อนหน้าเพื่อรองรับเมธอดและฟีเจอร์ใหม่ๆ ที่เพิ่มเข้ามาใน แพลตฟอร์มเวอร์ชันล่าสุด คลาสบางคลาสเหล่านี้เป็นคลาสที่สมบูรณ์ การใช้งานแบบคงที่ของ API เฟรมเวิร์ก
- กิจกรรม
ActivityCompat
- รวมถึง การติดตั้งใช้งานที่เข้ากันได้แบบย้อนหลังสำหรับฟีเจอร์สำคัญล่าสุดของ กิจกรรม เช่น สิทธิ์รันไทม์และการเปลี่ยนภาพเคลื่อนไหวFragmentActivity
- มี การติดตั้งใช้งานที่เข้ากันได้แบบย้อนหลังสำหรับกิจกรรมเพื่อใช้เวอร์ชันไลบรารีการสนับสนุนของ APIFragment
และLoader
AppCompatActivity
- มีธีมสี Material, การปรับสีวิดเจ็ต และการรองรับแถบแอป สำหรับอุปกรณ์รุ่นก่อนหน้า การใช้คลาสนี้กำหนดให้คุณต้องใช้ธีมเพื่อให้การนำเสนอภาพเป็นไปอย่างสอดคล้องกันTheme.AppCompat
Fragment
- Provides a stand-alone implementation of the frameworkFragment
class. ต้องใช้คลาสนี้กับFragmentActivity
ContextCompat
- ให้การสนับสนุน สำหรับฟีเจอร์ที่เปิดตัวในรุ่นล่าสุดของคลาสContext
ซึ่งรวมถึงการสนับสนุนสิทธิ์ การเข้าถึงไฟล์ และข้อมูลสีIntentCompat
- ให้การสนับสนุน สำหรับฟีเจอร์ที่เปิดตัวในรุ่นล่าสุดของคลาสIntent
ซึ่งรวมถึงวิธีการเลือกและ เริ่มกิจกรรมที่เฉพาะเจาะจงLoader
- มีการใช้งานแบบคงที่ของคลาสLoader
ของเฟรมเวิร์ก และเป็นคลาสพื้นฐานสำหรับคลาสการสนับสนุนAsyncTaskLoader
และCursorLoader
Preference
- คลาสนี้และคลาสย่อย ของคลาสนี้มีการติดตั้งใช้งานอินเทอร์เฟซผู้ใช้การตั้งค่าแอปในลักษณะ ที่เข้ากันได้แบบย้อนหลังContentResolverCompat
- ให้การรองรับฟีเจอร์ที่เปิดตัวในรุ่นล่าสุดของคลาสContentResolver
โดยเฉพาะquery()
เมธอด ที่รองรับการยกเลิกการค้นหาที่กำลังดำเนินการอยู่
อินเทอร์เฟซผู้ใช้
คลาสในไลบรารีการสนับสนุนเหล่านี้จะมีการติดตั้งใช้งานวิดเจ็ตและลักษณะการทำงานของอินเทอร์เฟซผู้ใช้ที่สำคัญ และช่วยให้คุณสร้างอินเทอร์เฟซแอปที่ทันสมัยมากขึ้นใน อุปกรณ์รุ่นเก่า วิดเจ็ตบางรายการเหล่านี้ใช้ได้ผ่านไลบรารีการสนับสนุนเท่านั้น
คอนเทนเนอร์เลย์เอาต์อเนกประสงค์
คลาสการสนับสนุนเหล่านี้มีคอนเทนเนอร์อินเทอร์เฟซผู้ใช้ที่ปรับเปลี่ยนได้ สำหรับกรณีการใช้งานการออกแบบที่แตกต่างกัน
RecyclerView
- สร้างเลย์เอาต์สำหรับ การแสดงรายการยาวๆ โดยใช้กลยุทธ์เพื่อหลีกเลี่ยงการใช้หน่วยความจำสูง คลาสนี้ช่วยให้คุณสร้างมุมมองแบบจำกัดของชุดข้อมูลขนาดใหญ่ได้ จึงไม่ต้องใช้หน่วยความจำจำนวนมากเมื่อแสดงรายการ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้RecyclerView
ได้ที่ คำแนะนำเกี่ยวกับ Recycler ViewViewPager
- จัดวางเลย์เอาต์ที่ช่วยให้ ผู้ใช้พลิกซ้ายและขวาผ่านหน้าข้อมูลได้GridLayout
- จัดวางวิดเจ็ตย่อยในตารางสี่เหลี่ยมผืนผ้า รองรับช่วงที่กำหนดเองของเซลล์ที่อยู่ติดกัน และการกระจายพื้นที่ที่ยืดหยุ่น คลาสนี้มีGridLayout
คลาสเวอร์ชันที่เข้ากันได้แบบย้อนหลัง ซึ่งเปิดตัวใน Android 4.0 (API ระดับ 14)PercentFrameLayout
และPercentRelativeLayout
- จัดเตรียมเลย์เอาต์ที่รองรับ ขนาดและขอบที่อิงตามเปอร์เซ็นต์สำหรับมุมมองและเนื้อหาขององค์ประกอบย่อย
หมายเหตุ: คลาส ViewPager
, RecyclerView
, PercentFrameLayout
และ PercentRelativeLayout
จะใช้ได้จากไลบรารีการสนับสนุนเท่านั้น
คอนเทนเนอร์เลย์เอาต์สำหรับวัตถุประสงค์พิเศษ
คลาสการรองรับเหล่านี้มีการใช้งานที่เข้ากันได้กับรูปแบบเลย์เอาต์ที่เฉพาะเจาะจง เช่น มุมมองลิ้นชักที่ดึงจากขอบของหน้าจอ แผงเลื่อน และการซ้อนรายการภายในรายการ
DrawerLayout
- สร้างเลย์เอาต์ที่ อนุญาตให้ดึง มุมมองลิ้นชักแบบอินเทอร์แอกทีฟออกมาจากขอบของหน้าต่างมุมมองSlidingPaneLayout
- มีเลย์เอาต์แบบหลายบานหน้าต่างแนวนอนสำหรับใช้ในระดับบนสุดของอินเทอร์เฟซผู้ใช้แอปเพื่อสร้างเลย์เอาต์ที่ปรับให้เข้ากับขนาดหน้าจอต่างๆ ได้อย่างราบรื่น ขยายบนหน้าจอขนาดใหญ่ และยุบให้พอดีกับหน้าจอขนาดเล็กNestedScrollView
- เลย์เอาต์แบบเลื่อน ที่รองรับการซ้อนมุมมองการเลื่อนอื่นๆ ซึ่งช่วยให้คุณสร้างรายการ ที่มีรายการซึ่งมีรายการย่อยเพิ่มเติม รายการที่ซ้อนกันเหล่านี้อาจมีรายการที่เลื่อนในแนวนอนหรือแนวตั้งแยกจากรายการระดับบนสุดSwipeRefreshLayout
- จัดวางเลย์เอาต์ เพื่อรองรับการรีเฟรชข้อมูลสำหรับรายการหรือเลย์เอาต์อื่นๆ ด้วยท่าทางสัมผัสการปัดนิ้ว
มุมมอง กล่องโต้ตอบ และวิดเจ็ต
ไลบรารีการสนับสนุนมีคลาสหลายคลาสสําหรับการแสดงเนื้อหาและ การจัดเตรียมองค์ประกอบการโต้ตอบของผู้ใช้ในเลย์เอาต์
CardView
- ไลบรารีการสนับสนุนคลาสที่กำหนดเอง สำหรับการสร้างการ์ดแสดงผลสไตล์ Material Design คลาสนี้อิงตาม FrameLayout ที่มีมุมโค้งและเงาตกกระทบAppCompatDialogFragment
- แสดงกล่องโต้ตอบที่มีรูปแบบสอดคล้องกันโดยการขยายDialogFragment
และใช้AppCompatDialog
NotificationCompat
- รองรับ รูปแบบการแจ้งเตือนใหม่ๆ ในลักษณะที่เข้ากันได้แบบย้อนหลังSearchView
- จัดเตรียมคลาสเพื่อให้ผู้ใช้ป้อนคำค้นหาและส่งคำขอไปยังผู้ให้บริการค้นหา ซึ่งมีไว้สำหรับการใช้งานในแถบแอปเป็นหลัก
ดีไซน์ Material
ไลบรารีการสนับสนุนมีคลาสหลายรายการสำหรับการใช้คำแนะนำเกี่ยวกับอินเทอร์เฟซผู้ใช้ของ Material Design
CoordinatorLayout
- จัดเตรียมคอนเทนเนอร์ระดับบนสุดสำหรับเลย์เอาต์ที่รวมคอมโพเนนต์และลักษณะการทำงานของ Material Design นอกจากนี้ คลาสนี้ยังใช้เป็นคอนเทนเนอร์สำหรับการโต้ตอบที่เฉพาะเจาะจง กับ View ย่อยอย่างน้อย 1 รายการได้ด้วยAppBarLayout
- มีการ ใช้งานฟีเจอร์การเลื่อนหลายอย่างของ แนวคิดแถบแอปของ Material DesignFloatingActionButton
- สร้าง ปุ่มลอยเพื่อแสดงการกระทําที่โปรโมตประเภทพิเศษ องค์ประกอบอินเทอร์เฟซผู้ใช้ของ Material Design นี้จะแสดงเป็นไอคอนวงกลมที่ลอยอยู่ เหนืออินเทอร์เฟซผู้ใช้ของแอป ดูข้อมูลเพิ่มเติมได้ที่เพิ่มปุ่มการทำงานแบบลอยDrawerLayout
- สร้างลิ้นชักการนำทาง ซึ่งเป็นแผง UI ที่แสดงเมนูการนำทางหลักของแอป โดยจะปรากฏขึ้นเมื่อผู้ใช้ ปัดนิ้วจากขอบด้านซ้ายของหน้าจอหรือแตะไอคอนลิ้นชักในแถบแอป ดูข้อมูลเพิ่มเติมได้ที่สร้างแถบนำทางTabLayout
- จัดวางเลย์เอาต์สำหรับ การแสดงหน้าแบบแท็บ วิดเจ็ตนี้ออกแบบมาเพื่อใช้กับชั้นเรียนViewPager
Snackbar
- จัดเตรียมวิดเจ็ตสำหรับ แสดงความคิดเห็นแบบเบาๆ เกี่ยวกับการดำเนินการโดยใช้ป๊อปอัป Snackbar
กราฟิก
แพ็กเกจ android.support.graphics.drawable
รองรับ
Vector Drawable
การใช้ภาพวาดแบบเวกเตอร์ช่วยให้คุณแทนที่ชิ้นงาน PNG หลายรายการด้วยกราฟิกแบบเวกเตอร์เดียวที่กำหนดไว้ใน XML ได้
VectorDrawableCompat
รองรับ
Vector Drawable ใน API ระดับ 9 ขึ้นไป AnimatedVectorDrawableCompat
รองรับ
ภาพวาดเวกเตอร์เคลื่อนไหวใน API ระดับ 11 ขึ้นไป
การช่วยเหลือพิเศษ
android.support.v4.view.accessibility
แพ็กเกจมี
คลาสความเข้ากันได้สำหรับการติดตั้งใช้งานฟีเจอร์การช่วยเหลือพิเศษที่เปิดตัวใน
API ระดับ 14 ขึ้นไป ซึ่งช่วยให้บริการการช่วยเหลือพิเศษสังเกตและ
ระบุการโต้ตอบของผู้ใช้กับรายการที่แสดงบนหน้าจอได้
ExploreByTouchHelper
- ให้การสนับสนุนการช่วยเหลือพิเศษใน View ที่กำหนดเอง ซึ่งแสดงถึงคอลเล็กชันของรายการเชิงตรรกะที่คล้ายกับ View
การเล่นสื่อ
Android Support Library มีฟังก์ชันการทำงานของเราเตอร์สื่อที่พอร์ตกลับไปยังอุปกรณ์ที่ใช้แพลตฟอร์มเวอร์ชันก่อนหน้า Android 4.1 (API ระดับ 16) คลาสเหล่านี้ช่วยให้ควบคุมการเล่นสื่อในอุปกรณ์ Android ที่เชื่อมต่อได้
MediaRouter
- ช่วยให้แอปพลิเคชัน ควบคุมการกำหนดเส้นทางของช่องและสตรีมสื่อจากอุปกรณ์ปัจจุบันไปยัง ลำโพงภายนอกและอุปกรณ์ปลายทางMediaControllerCompat
- อนุญาตให้ แอปโต้ตอบกับเซสชันสื่อที่กำลังดำเนินอยู่ แอปสามารถแสดงปุ่มควบคุมสื่อผ่านกลไกนี้และส่งคำสั่งการเล่นอื่นๆ ไปยังเซสชันได้MediaSessionCompat
- มี อินเทอร์เฟซรีโมตคอนโทรลสำหรับการเล่นสื่อ ซึ่งช่วยให้โต้ตอบกับตัวควบคุมสื่อ ปุ่มปรับระดับเสียง ปุ่มสื่อ และการควบคุมการขนส่งในแอปอื่นๆ หรือในอุปกรณ์แยกต่างหากได้
แอปสำหรับทีวี
Android SDK มีไลบรารีที่รองรับรูปแบบต่างๆ เช่น หน้าจอขนาดใหญ่ และคอนโทรลเลอร์ที่เกี่ยวข้อง แอปสามารถใช้ไลบรารีการสนับสนุนที่เหมาะสม เพื่อมอบฟังก์ชันการทำงานในแพลตฟอร์มเวอร์ชันต่างๆ และสามารถแสดงเนื้อหาบนหน้าจอภายนอก ลำโพง และอุปกรณ์ปลายทางอื่นๆ ได้
- android.support.v17.leanback.* packages
แอป Wear
Android SDK มีไลบรารีที่รองรับนาฬิกา ไลบรารีเหล่านี้มีฟังก์ชันการทำงาน สำหรับแอปที่พร้อมให้ผู้ใช้ใช้งานได้ทุกเมื่อที่สวมนาฬิกา
- android.support.wear.* packages
ยูทิลิตี
ไลบรารีการสนับสนุนของ Android มีฟีเจอร์หลายอย่างที่ไม่ได้สร้าง ไว้ในเฟรมเวิร์ก ไลบรารีเหล่านี้มีเครื่องมือต่างๆ ที่แอปสามารถใช้ได้