<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 ที่เชื่อมโยง เช่น ไม่เหมือนกับ เวอร์ชันหลักหรือผลรวมของเวอร์ชันหลักและเวอร์ชันย่อย

คุณไม่สามารถระบุว่าแอปกำหนดเป้าหมายหรือต้องใช้ 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 สัปดาห์ ผู้ใช้จะได้รับการอัปเดตระบบแบบ Over-the-Air เป็น 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 แต่ละเวอร์ชันที่ต่อเนื่องกันอาจมีการอัปเดต API ของเฟรมเวิร์กแอปพลิเคชัน Android ที่จัดส่ง

การอัปเดต 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 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 ใน 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 สำหรับสมาชิกของคลาสจะระบุไว้ในส่วนหัวของคำอธิบายโดยละเอียด ที่ขอบด้านขวา