<uses-sdk>

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

ไวยากรณ์:
<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />
มีอยู่ใน
<manifest>
คำอธิบาย:

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

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

คุณไม่สามารถระบุว่าแอปกำหนดเป้าหมายหรือต้องใช้ SDK เวอร์ชันย่อย

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

แอตทริบิวต์
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 มี Framework API ที่แอปพลิเคชันใช้เพื่อ โต้ตอบกับระบบ Android ที่เกี่ยวข้องได้ API ของเฟรมเวิร์กประกอบด้วย

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

แพลตฟอร์ม Android เวอร์ชันต่อๆ ไปอาจมีการอัปเดต API ของเฟรมเวิร์กแอปพลิเคชัน Android ที่จัดส่ง

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

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

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

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

รุ่นของแพลตฟอร์มระดับ APIVERSION_CODEหมายเหตุ
Android 17 37 CINNAMON_BUN ไฮไลต์ของแพลตฟอร์ม
Android 16 36 BAKLAVA ไฮไลต์ของแพลตฟอร์ม
Android 15 35 VANILLA_ICE_CREAM ไฮไลต์ของแพลตฟอร์ม
Android 14 34 UPSIDE_DOWN_CAKE ไฮไลต์ของแพลตฟอร์ม
Android 13 33 TIRAMISU ไฮไลต์ของแพลตฟอร์ม
Android 12 32 S_V2 ไฮไลต์ของแพลตฟอร์ม
31 S ไฮไลต์ของแพลตฟอร์ม
Android 11 30 R ไฮไลต์ของแพลตฟอร์ม
Android 10 29 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 24 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 19 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 ที่อยู่ระหว่างการพัฒนา

ในเอกสารอ้างอิง API ของ Android API บางรายการจะมีเครื่องหมาย "API ที่อยู่ระหว่างการพัฒนา" แทนระดับ API ที่เป็นจำนวนเต็ม API ที่อยู่ระหว่างการพัฒนา มีลักษณะดังนี้

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

ตรวจสอบ API ที่อยู่ระหว่างการพัฒนาในขณะรันไทม์ (PREVIEW_SDK_INT)

เนื่องจาก API ที่อยู่ระหว่างการพัฒนาอาจมีการเปลี่ยนแปลงหรือหายไประหว่างรุ่นตัวอย่าง จึงไม่ควรใช้การตรวจสอบที่มากกว่าหรือเท่ากับ (>=) เพื่อป้องกันการเรียก API ที่ยังไม่ได้เผยแพร่ API ที่มีอยู่ในตัวอย่าง 1 อาจ มีการแก้ไขหรือนำออกในตัวอย่าง 2

แต่แอปที่ทดลองใช้ฟีเจอร์เวอร์ชันตัวอย่างต้องตรวจสอบค่า Build.VERSION.PREVIEW_SDK_INT เพื่อความเท่าเทียมที่แน่นอน (==) กับการแก้ไขเวอร์ชันตัวอย่างที่แน่นอน ซึ่งแอปได้รับการคอมไพล์เทียบกับ

  • ในบิลด์และรุ่นที่ใช้งานจริงสุดท้าย Build.VERSION.PREVIEW_SDK_INT จะเป็น 0 เสมอ
  • ในบิลด์ตัวอย่าง PREVIEW_SDK_INT จะไม่ซ้ำกันในแต่ละรุ่น

การใช้ระดับ 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 ของ เวอร์ชันแพลตฟอร์มในอุปกรณ์เป้าหมาย

ข้อควรพิจารณาในการพัฒนา

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

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

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

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

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

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

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

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

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

แพลตฟอร์ม Android เวอร์ชันใหม่แต่ละเวอร์ชันอาจมี Framework 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 ที่เปิดตัวในระดับ API ที่สูงกว่า

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

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