<uses-sdk>

Google Play ใช้แอตทริบิวต์ <uses-sdk> ที่ประกาศในไฟล์ Manifest ของแอปเพื่อกรองแอปของคุณออกจากอุปกรณ์ที่ไม่เป็นไปตามข้อกำหนดเวอร์ชันแพลตฟอร์ม ก่อนตั้งค่าแอตทริบิวต์เหล่านี้ โปรดทำความเข้าใจตัวกรองของ Google Play

ไวยากรณ์:
<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />
อยู่ใน
<manifest>
description:

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

แม้จะมีชื่อเป็นเช่นนั้น แต่องค์ประกอบนี้ใช้เพื่อระบุระดับ API ไม่ใช่หมายเลขเวอร์ชันของชุดพัฒนาซอฟต์แวร์ (SDK) หรือแพลตฟอร์ม Android ระดับ API จะเป็นจำนวนเต็มเพียงรายการเดียวเสมอ คุณไม่สามารถอนุมานระดับ API จากหมายเลขเวอร์ชัน Android ที่เชื่อมโยง ตัวอย่างเช่น หมายเลขเวอร์ชันนี้ไม่เหมือนกับเวอร์ชันหลักหรือผลรวมของเวอร์ชันหลักและเวอร์ชันย่อย

นอกจากนี้ โปรดอ่านเอกสารเกี่ยวกับการกำหนดเวอร์ชันแอปพลิเคชัน

แอตทริบิวต์
android:minSdkVersion
จำนวนเต็มที่กำหนดระดับ API ขั้นต่ำที่จําเป็นเพื่อให้แอปพลิเคชันทํางานได้ ระบบ Android จะป้องกันไม่ให้ผู้ใช้ติดตั้งแอปพลิเคชันหากระดับ API ของระบบต่ำกว่าค่าที่ระบุในแอตทริบิวต์นี้ ประกาศแอตทริบิวต์นี้เสมอ

ข้อควรระวัง: หากคุณไม่ประกาศแอตทริบิวต์นี้ ระบบจะถือว่าค่าเริ่มต้นคือ "1" ซึ่งหมายความว่าแอปพลิเคชันของคุณเข้ากันได้กับ Android ทุกเวอร์ชัน หากไม่ใช่และคุณไม่ได้ประกาศ minSdkVersion ที่เหมาะสม เมื่อติดตั้งในระบบที่มีระดับ API ที่เข้ากันไม่ได้ แอปพลิเคชันจะขัดข้องระหว่างรันไทม์เมื่อพยายามเข้าถึง API ที่ไม่พร้อมใช้งาน ดังนั้น โปรดประกาศระดับ API ที่เหมาะสมในแอตทริบิวต์ minSdkVersion

android:targetSdkVersion
จำนวนเต็มที่กำหนดระดับ API ที่แอปพลิเคชันกำหนดเป้าหมาย หากไม่ได้ตั้งค่า ค่าเริ่มต้นจะเท่ากับค่าที่ระบุให้กับ minSdkVersion

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

เมื่อ Android พัฒนาไปด้วยแต่ละเวอร์ชันใหม่ๆ พฤติกรรมบางอย่างและแม้แต่รูปลักษณ์อาจมีการเปลี่ยนแปลง อย่างไรก็ตาม หากระดับ API ของแพลตฟอร์มสูงกว่าเวอร์ชันที่ targetSdkVersion ของแอปประกาศไว้ ระบบจะเปิดใช้ลักษณะการทำงานที่เข้ากันได้เพื่อให้แอปทำงานต่อไปได้ตามที่คาดไว้ คุณสามารถปิดใช้ลักษณะการทำงานที่เข้ากันได้ดังกล่าวได้โดยระบุ targetSdkVersion เพื่อให้ตรงกับระดับ API ของแพลตฟอร์มที่ใช้งาน

ตัวอย่างเช่น การตั้งค่านี้เป็น "11" ขึ้นไปจะช่วยให้ระบบใช้ธีมเริ่มต้น Holo กับแอปเมื่อทำงานบน Android 3.0 ขึ้นไป และปิดใช้โหมดความเข้ากันได้ของหน้าจอเมื่อทำงานบนหน้าจอขนาดใหญ่ด้วย เนื่องจากการรองรับ API ระดับ 11 จะรองรับหน้าจอขนาดใหญ่โดยปริยาย

ระบบสามารถเปิดใช้ลักษณะการทำงานที่เข้ากันได้หลายแบบตามค่าที่คุณตั้งไว้สำหรับแอตทริบิวต์นี้ ลักษณะการทํางานหลายอย่างเหล่านี้จะอธิบายไว้ในเวอร์ชันแพลตฟอร์มที่เกี่ยวข้องในข้อมูลอ้างอิง Build.VERSION_CODES

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

เปิดตัวใน: API ระดับ 4

android:maxSdkVersion
จำนวนเต็มที่กำหนดระดับ API สูงสุดที่แอปพลิเคชันออกแบบมาให้ทำงาน

ใน Android 1.5, 1.6, 2.0 และ 2.0.1 ระบบจะตรวจสอบค่าของแอตทริบิวต์นี้เมื่อติดตั้งแอปพลิเคชันและเมื่อตรวจสอบแอปพลิเคชันอีกครั้งหลังจากการอัปเดตระบบ ไม่ว่าในกรณีใดก็ตาม หากแอตทริบิวต์ maxSdkVersion ของแอปพลิเคชันต่ำกว่าระดับ API ที่ระบบใช้อยู่ ระบบจะไม่อนุญาตให้ติดตั้งแอปพลิเคชัน ในกรณีที่ต้องตรวจสอบอีกครั้งหลังจากอัปเดตระบบ การดำเนินการนี้จะนําแอปพลิเคชันออกจากอุปกรณ์

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

แอปพลิเคชันที่ประกาศ maxSdkVersion="5" ในไฟล์ Manifest เผยแพร่อยู่ใน Google Play ผู้ใช้ที่มีอุปกรณ์ที่ใช้ Android 1.6 (API ระดับ 4) ดาวน์โหลดและติดตั้งแอป หลังจากผ่านไป 2-3 สัปดาห์ ผู้ใช้ได้รับการอัปเดตระบบแบบ OTA เป็น Android 2.0 (API ระดับ 5) หลังจากติดตั้งการอัปเดตแล้ว ระบบจะตรวจสอบ maxSdkVersion ของแอปพลิเคชันและตรวจสอบอีกครั้งเรียบร้อยแล้ว

แอปพลิเคชันทำงานตามปกติ อย่างไรก็ตาม หลังจากนั้นไม่นาน อุปกรณ์ได้รับการอัปเดตระบบอีกครั้งเป็น Android 2.0.1 (API ระดับ 6) หลังจากอัปเดตแล้ว ระบบจะตรวจสอบแอปพลิเคชันอีกครั้งไม่ได้อีกต่อไป เนื่องจากระดับ API ของระบบ (6) สูงกว่าระดับสูงสุดที่แอปพลิเคชันรองรับ (5) ระบบจะป้องกันไม่ให้ผู้ใช้เห็นแอปพลิเคชัน ซึ่งจะนําแอปพลิเคชันออกจากอุปกรณ์

คำเตือน: เราไม่แนะนำให้ประกาศแอตทริบิวต์นี้ ประการแรก คุณไม่จำเป็นต้องตั้งค่าแอตทริบิวต์เพื่อบล็อกการติดตั้งใช้งานแอปพลิเคชันบนแพลตฟอร์ม Android เวอร์ชันใหม่เมื่อมีการเผยแพร่ แพลตฟอร์มเวอร์ชันใหม่ออกแบบมาให้ใช้งานร่วมกับเวอร์ชันเก่าได้อย่างเต็มที่ แอปพลิเคชันจะทํางานได้อย่างถูกต้องในเวอร์ชันใหม่ ตราบใดที่แอปพลิเคชันใช้เฉพาะ API มาตรฐานและเป็นไปตามแนวทางปฏิบัติแนะนําในการพัฒนา ประการที่ 2 ในบางกรณี การประกาศแอตทริบิวต์อาจส่งผลให้ระบบนำแอปพลิเคชันของคุณออกจากอุปกรณ์ของผู้ใช้หลังจากอัปเดตเป็น API ระดับที่สูงขึ้น อุปกรณ์ส่วนใหญ่ที่มีแนวโน้มที่จะติดตั้งแอปพลิเคชันของคุณจะได้รับอัปเดตระบบเป็นระยะๆ ทางอากาศ ดังนั้นโปรดพิจารณาผลกระทบที่การอัปเดตดังกล่าวมีต่อแอปพลิเคชันก่อนตั้งค่าแอตทริบิวต์นี้

เปิดตัวใน: API ระดับ 4

Android บางเวอร์ชัน (ที่ไม่ใช่ Android 2.0.1) จะไม่ตรวจสอบหรือบังคับใช้แอตทริบิวต์ maxSdkVersion ระหว่างการติดตั้งหรือการตรวจสอบอีกครั้ง อย่างไรก็ตาม Google Play จะยังคงใช้แอตทริบิวต์นี้เป็นตัวกรองเมื่อแสดงแอปพลิเคชันที่พร้อมให้ดาวน์โหลดแก่ผู้ใช้
เปิดตัวใน
API ระดับ 1

ระดับ API คืออะไร

ระดับ API คือค่าจำนวนเต็มที่ระบุเวอร์ชันเฟรมเวิร์ก API ที่ไม่ซ้ำกันซึ่งแพลตฟอร์ม Android เวอร์ชันหนึ่งๆ นำเสนอ

แพลตฟอร์ม Android มี API เฟรมเวิร์กที่แอปพลิเคชันสามารถใช้เพื่อโต้ตอบกับระบบ Android ที่เกี่ยวข้อง API ของเฟรมเวิร์กประกอบด้วย

  • ชุดแพ็กเกจและคลาสหลัก
  • ชุดองค์ประกอบและแอตทริบิวต์ XML สำหรับการประกาศไฟล์ Manifest
  • ชุดองค์ประกอบและแอตทริบิวต์ XML สําหรับการประกาศและการเข้าถึงทรัพยากร
  • ชุดความตั้งใจ
  • ชุดสิทธิ์ที่แอปพลิเคชันขอได้ รวมถึงการบังคับใช้สิทธิ์ที่รวมอยู่ในระบบ

แพลตฟอร์ม Android แต่ละเวอร์ชันที่เผยแพร่ต่อเนื่องกันอาจมีอัปเดตสำหรับ Android Application Framework API ที่แพลตฟอร์มนั้นให้บริการ

การอัปเดต API เฟรมเวิร์กออกแบบมาเพื่อให้ API ใหม่ยังคงใช้งานร่วมกับ API เวอร์ชันเก่าได้ กล่าวคือ การเปลี่ยนแปลงส่วนใหญ่ใน API จะเป็นการเพิ่มและเปิดตัวฟังก์ชันการทำงานใหม่หรือฟังก์ชันการทำงานทดแทน เมื่อมีการอัปเกรด API บางส่วน เราจะเลิกใช้งานชิ้นส่วนเก่าที่แทนที่ แต่จะไม่นําออกเพื่อให้แอปพลิเคชันที่มีอยู่ยังคงใช้งานได้

ในบางกรณีที่มีจำนวนไม่มากนัก ระบบจะแก้ไขหรือนําส่วนต่างๆ ของ API ออก แม้ว่าโดยปกติแล้วการเปลี่ยนแปลงดังกล่าวจําเป็นต่อความเสถียรของ API และความปลอดภัยของแอปพลิเคชันหรือระบบเท่านั้น ส่วน API อื่นๆ ทั้งหมดจากการแก้ไขก่อนหน้านี้จะยังคงอยู่โดยไม่มีการแก้ไข

API เฟรมเวิร์กที่แพลตฟอร์ม Android นําเสนอจะระบุโดยใช้ตัวระบุจำนวนเต็มที่เรียกว่าระดับ API แพลตฟอร์ม Android แต่ละเวอร์ชันรองรับ API ระดับเดียวเท่านั้น แม้ว่าจะรองรับ API ระดับก่อนหน้าทั้งหมดโดยนัย (ไปจนถึง API ระดับ 1) แพลตฟอร์ม Android รุ่นแรกมี API ระดับ 1 และรุ่นต่อๆ ไปจะมี API ระดับสูงขึ้น

ตารางต่อไปนี้ระบุระดับ API ที่แพลตฟอร์ม Android แต่ละเวอร์ชันรองรับ ดูข้อมูลเกี่ยวกับจำนวนอุปกรณ์ที่ใช้เวอร์ชันต่างๆ ได้ที่แดชบอร์ดการเผยแพร่

รุ่นของแพลตฟอร์มระดับ APIVERSION_CODEหมายเหตุ
Android 16 API 35 → DP2 BAKLAVA ไฮไลต์ของแพลตฟอร์ม
Android 15 35 VANILLA_ICE_CREAM ไฮไลต์แพลตฟอร์ม
Android 14 34 UPSIDE_DOWN_CAKE ไฮไลต์ของแพลตฟอร์ม
Android 13 33 TIRAMISU ไฮไลต์ของแพลตฟอร์ม
Android 12 32 S_V2 ไฮไลต์แพลตฟอร์ม
28 S ไฮไลต์แพลตฟอร์ม
Android 11 30 R ไฮไลต์แพลตฟอร์ม
Android 10 28 Q ไฮไลต์ของแพลตฟอร์ม
Android 9 28 P ไฮไลต์ของแพลตฟอร์ม
Android 8.1 27 O_MR1 ไฮไลต์ของแพลตฟอร์ม
Android 8.0 26 O ไฮไลต์ของแพลตฟอร์ม
Android 7.1.1
Android 7.1
25 N_MR1 ไฮไลต์ของแพลตฟอร์ม
Android 7.0 32 N ไฮไลต์ของแพลตฟอร์ม
Android 6.0 23 M ไฮไลต์ของแพลตฟอร์ม
Android 5.1 22 LOLLIPOP_MR1 แพลตฟอร์ม ไฮไลต์
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat สำหรับอุปกรณ์ที่สวมใส่ได้เท่านั้น
Android 4.4 24 KITKAT แพลตฟอร์ม ไฮไลต์
Android 4.3 18 JELLY_BEAN_MR2 แพลตฟอร์ม ไฮไลต์
Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 แพลตฟอร์ม ไฮไลต์
Android 4.1, 4.1.1 16 JELLY_BEAN แพลตฟอร์ม ไฮไลต์
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1 แพลตฟอร์ม ไฮไลต์
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 ไฮไลต์ของแพลตฟอร์ม
Android 3.0.x 11 HONEYCOMB ไฮไลต์แพลตฟอร์ม
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1 แพลตฟอร์ม ไฮไลต์
Android 2.3.2
Android 2.3.1
Android 2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO ไฮไลต์แพลตฟอร์ม
Android 2.1.x 7 ECLAIR_MR1 แพลตฟอร์ม ไฮไลต์
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT ไฮไลต์แพลตฟอร์ม
Android 1.5 3 CUPCAKE ไฮไลต์ของแพลตฟอร์ม
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

การใช้ระดับ API ใน Android

ตัวระบุระดับ API มีบทบาทสำคัญในการช่วยให้ผู้ใช้และนักพัฒนาแอปพลิเคชันได้รับประสบการณ์การใช้งานที่ดีที่สุด

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

แพลตฟอร์ม Android แต่ละเวอร์ชันจะจัดเก็บตัวระบุระดับ API ไว้ภายในระบบ Android เอง

แอปพลิเคชันสามารถใช้องค์ประกอบไฟล์ Manifest ที่ได้จากเฟรมเวิร์ก API <uses-sdk> เพื่ออธิบายระดับ API ต่ำสุดและสูงสุดที่ทำงานได้ รวมถึงระดับ API ที่ต้องการซึ่งออกแบบมาเพื่อรองรับ องค์ประกอบนี้มีแอตทริบิวต์หลัก 3 รายการ ได้แก่

  • android:minSdkVersion: ระดับ API ขั้นต่ำที่แอปพลิเคชันจะทํางานได้ ค่าเริ่มต้นคือ "1"
  • android:targetSdkVersion: ระดับ API ที่แอปพลิเคชันออกแบบมาให้ทำงาน ในบางกรณี การดำเนินการนี้จะช่วยให้แอปพลิเคชันใช้องค์ประกอบหรือลักษณะการทำงานในไฟล์ Manifest ที่กําหนดไว้ในระดับ API เป้าหมายได้ แทนที่จะจํากัดให้ใช้เฉพาะองค์ประกอบหรือลักษณะการทำงานที่กําหนดไว้สําหรับระดับ API ขั้นต่ำ
  • android:maxSdkVersion: ระดับ API สูงสุดที่แอปพลิเคชันสามารถทํางานได้ สำคัญ: อ่านข้อมูลเกี่ยวกับแอตทริบิวต์นี้ในหน้านี้ก่อนใช้งาน

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

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

  • หากมีการประกาศแอตทริบิวต์ android:minSdkVersion ค่าของแอตทริบิวต์จะน้อยกว่าหรือเท่ากับจำนวนเต็มระดับ API ของระบบ หากไม่ได้ประกาศ ระบบจะถือว่าแอปพลิเคชันต้องใช้ API ระดับ 1
  • หากมีการประกาศแอตทริบิวต์ android:maxSdkVersion ค่าของแอตทริบิวต์จะเท่ากับหรือมากกว่าจำนวนเต็มที่แสดงถึงระดับ API ของระบบ หากไม่ได้ประกาศ ระบบจะถือว่าแอปพลิเคชันไม่มีระดับ API สูงสุด อ่านคำอธิบายแอตทริบิวต์นี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของระบบ

เมื่อประกาศในไฟล์ Manifest ของแอปพลิเคชัน องค์ประกอบ <uses-sdk> อาจมีลักษณะดังนี้

<manifest>
  <uses-sdk android:minSdkVersion="5" />
  ...
</manifest>

เหตุผลหลักที่แอปพลิเคชันประกาศระดับ API ใน android:minSdkVersion คือเพื่อแจ้งให้ระบบ Android ทราบว่าแอปพลิเคชันใช้ API ที่เปิดตัวใน API ระดับที่ระบุ

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

ข้อควรพิจารณาเกี่ยวกับการพัฒนา

ส่วนต่อไปนี้ให้ข้อมูลเกี่ยวกับระดับ API ที่คุณควรพิจารณาเมื่อพัฒนาแอปพลิเคชัน

ความเข้ากันได้ของแอปพลิเคชันในอนาคต

โดยทั่วไปแล้ว แอปพลิเคชัน Android จะใช้งานร่วมกับแพลตฟอร์ม Android เวอร์ชันใหม่ได้

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

ความเข้ากันได้แบบย้อนหลังเป็นสิ่งสำคัญเนื่องจากอุปกรณ์ที่ทำงานด้วยระบบ Android จํานวนมากได้รับการอัปเดตระบบผ่านอากาศ (OTA) ผู้ใช้อาจติดตั้งแอปพลิเคชันและใช้งานแอปดังกล่าวได้สําเร็จ จากนั้นจึงได้รับการอัปเดต OTA เป็นแพลตฟอร์ม Android เวอร์ชันใหม่ในภายหลัง เมื่อติดตั้งการอัปเดตแล้ว แอปพลิเคชันจะทํางานในรันไทม์เวอร์ชันใหม่ของสภาพแวดล้อม แต่รันไทม์ดังกล่าวยังคงมี API และความสามารถของระบบที่แอปพลิเคชันของคุณต้องใช้

การเปลี่ยนแปลงด้านล่าง API เช่น การเปลี่ยนแปลงในระบบพื้นฐานเอง อาจส่งผลต่อแอปพลิเคชันเมื่อเรียกใช้ในสภาพแวดล้อมใหม่ คุณในฐานะนักพัฒนาแอปพลิเคชันต้องเข้าใจลักษณะและลักษณะการทํางานของแอปพลิเคชันในสภาพแวดล้อมของระบบแต่ละแบบ

Android SDK มีแพลตฟอร์มหลายเวอร์ชันให้คุณดาวน์โหลดเพื่อช่วยในการทดสอบแอปพลิเคชันบนแพลตฟอร์ม Android เวอร์ชันต่างๆ แต่ละแพลตฟอร์มจะมีภาพระบบที่เข้ากันได้ซึ่งคุณสามารถเรียกใช้ใน AVD เพื่อทดสอบแอปพลิเคชันได้

ความเข้ากันได้แบบย้อนหลังของแอปพลิเคชัน

แอปพลิเคชัน Android อาจไม่รองรับเวอร์ชันแพลตฟอร์ม Android ที่เก่ากว่าเวอร์ชันที่ใช้คอมไพล์แอปพลิเคชัน

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

แม้ว่าอุปกรณ์ที่ใช้ Android จะไม่น่าจะดาวน์เกรดเป็นแพลตฟอร์มเวอร์ชันก่อนหน้า แต่คุณควรทราบว่าอุปกรณ์จำนวนมากในสนามอาจใช้แพลตฟอร์มเวอร์ชันเก่า แม้แต่ในอุปกรณ์ที่ได้รับการอัปเดต OTA บางเครื่องก็อาจล้าหลังและอาจไม่ได้รับการอัปเดตเป็นเวลานาน

เลือกเวอร์ชันแพลตฟอร์มและระดับ API

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

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

ประกาศระดับ API ขั้นต่ำ

หากคุณสร้างแอปพลิเคชันที่ใช้ API หรือฟีเจอร์ของระบบที่เปิดตัวในแพลตฟอร์มเวอร์ชันล่าสุด ให้ตั้งค่าแอตทริบิวต์ android:minSdkVersion เป็นระดับ API ของแพลตฟอร์มเวอร์ชันล่าสุด การดำเนินการนี้เพื่อให้ผู้ใช้ติดตั้งแอปพลิเคชันของคุณได้ก็ต่อเมื่ออุปกรณ์ใช้แพลตฟอร์ม Android เวอร์ชันที่เข้ากันได้เท่านั้น ซึ่งจะช่วยให้แอปพลิเคชันทำงานได้อย่างถูกต้องในอุปกรณ์ของผู้ใช้

หากแอปพลิเคชันใช้ API ที่เปิดตัวในแพลตฟอร์มเวอร์ชันล่าสุด แต่ไม่ได้ประกาศแอตทริบิวต์ android:minSdkVersion แอปพลิเคชันจะทำงานอย่างถูกต้องในอุปกรณ์ที่ใช้แพลตฟอร์มเวอร์ชันล่าสุด แต่ไม่ทำงานในอุปกรณ์ที่ใช้แพลตฟอร์มเวอร์ชันเก่า ในกรณีหลัง แอปพลิเคชันจะขัดข้องเมื่อรันไทม์เมื่อพยายามใช้ API ที่ไม่มีในเวอร์ชันก่อนหน้า

ทดสอบกับ API ระดับที่สูงขึ้น

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

Android SDK มีแพลตฟอร์มหลายเวอร์ชันที่คุณใช้ได้ รวมถึงเวอร์ชันล่าสุด และมีเครื่องมืออัปเดตที่คุณใช้ดาวน์โหลดแพลตฟอร์มเวอร์ชันอื่นๆ ตามที่จำเป็นได้

หากต้องการเข้าถึงโปรแกรมอัปเดต ให้ใช้เครื่องมือบรรทัดคำสั่ง android ซึ่งอยู่ในไดเรกทอรี <sdk>/tools คุณเปิดเครื่องมืออัปเดต SDK ได้โดยดำเนินการ android sdk หรือจะดับเบิลคลิกไฟล์ android.bat (Windows) หรือ android (OS X/Linux) ก็ได้

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

กรองเอกสารประกอบข้อมูลอ้างอิงตามระดับ API

หน้าเอกสารประกอบอ้างอิงแพลตฟอร์ม Android มีการควบคุม "ระดับ API" ในพื้นที่ด้านซ้ายบนของแต่ละหน้า คุณสามารถใช้การควบคุมเพื่อแสดงเอกสารประกอบสำหรับ API บางส่วนที่แอปพลิเคชันของคุณเข้าถึงได้จริงเท่านั้น โดยอิงตามระดับ API ที่ระบุไว้ในแอตทริบิวต์ android:minSdkVersion ของไฟล์ Manifest

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

การกรองตามระดับ API ในเอกสารประกอบจะไม่แสดงข้อมูลเกี่ยวกับฟีเจอร์ใหม่หรือฟีเจอร์ที่เปิดตัวในแต่ละระดับ API ซึ่งจะเป็นช่องทางในการดู API ทั้งหมดที่เชื่อมโยงกับระดับ API หนึ่งๆ โดยยกเว้นองค์ประกอบ API ที่เปิดตัวใน API ระดับที่ใหม่กว่า

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

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