Android 2.0 รุ่น 1

ระดับ API: 5

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

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

เพื่อเริ่มพัฒนาหรือทดสอบกับ Android 2.0 ให้ใช้ Android SDK และเครื่องมือ AVD Manager เพื่อ ดาวน์โหลดแพลตฟอร์มลงใน SDK ของคุณ

ไฮไลต์ของแพลตฟอร์ม

สำหรับรายการคุณลักษณะของผู้ใช้ใหม่และไฮไลต์แพลตฟอร์ม โปรดดูที่ Android 2.0 เอกสารไฮไลต์แพลตฟอร์ม

แอปพลิเคชันในตัว

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

  • นาฬิกาปลุก
  • เบราว์เซอร์
  • เครื่องคิดเลข
  • กล้องวิดีโอ
  • กล้อง
  • รายชื่อติดต่อ
  • ภาษาที่กำหนดเอง (แอปสำหรับนักพัฒนาซอฟต์แวร์)
  • เครื่องมือสำหรับนักพัฒนาเว็บ (แอปสำหรับนักพัฒนาซอฟต์แวร์)
  • Dialer
  • อีเมล
  • แกลเลอรี
  • เครื่องมือสร้างท่าทางสัมผัส
  • IME สำหรับการป้อนข้อความภาษาญี่ปุ่น
  • การรับส่งข้อความ
  • เพลง
  • การตั้งค่า
  • อะไหล่ (แอปสำหรับนักพัฒนาซอฟต์แวร์)

ภาษา

อิมเมจระบบที่รวมอยู่ในแพลตฟอร์มที่ดาวน์โหลดได้นั้นมีความหลากหลายของ ในตัว ในบางกรณี สตริงเฉพาะภูมิภาคจะมีให้สำหรับ ภาษา ในกรณีอื่นๆ ระบบจะใช้เวอร์ชันเริ่มต้นของภาษา ภาษาที่มีให้บริการในระบบ Android 2.0 รูปภาพแสดงอยู่ด้านล่าง (ที่มีภาษาlanguage_country/region ข้อบ่งชี้)

  • จีน PRC (zh_CN)
  • จีน ไต้หวัน (zh_TW)
  • เช็ก (cs_CZ)
  • ดัตช์ เนเธอร์แลนด์ (nl_NL)
  • ดัตช์ เบลเยียม (nl_BE)
  • อังกฤษ สหรัฐอเมริกา (en_US)
  • อังกฤษ, สหราชอาณาจักร (en_GB)
  • อังกฤษ แคนาดา (en_CA)
  • อังกฤษ ออสเตรเลีย (en_AU)
  • อังกฤษ นิวซีแลนด์ (en_NZ)
  • อังกฤษ สิงคโปร์(en_SG)
  • ฝรั่งเศส (fr_FR)
  • ฝรั่งเศส เบลเยียม (fr_BE)
  • ฝรั่งเศส แคนาดา (fr_CA)
  • ฝรั่งเศส สวิตเซอร์แลนด์ (fr_CH)
  • เยอรมัน เยอรมนี (de_DE)
  • เยอรมัน ออสเตรีย (de_AT)
  • เยอรมัน สวิตเซอร์แลนด์ (de_CH)
  • เยอรมัน ลิกเตนสไตน์ (de_LI)
  • อิตาลี อิตาลี (it_IT)
  • อิตาลี สวิตเซอร์แลนด์ (it_CH)
  • ญี่ปุ่น (ja_JP)
  • เกาหลี (ko_KR)
  • โปแลนด์ (pl_PL)
  • รัสเซีย (ru_RU)
  • สเปน (es_ES)
  • สตริง UI ที่แปลแล้วตรงกับภาษาที่สามารถเข้าถึงได้ ผ่านการตั้งค่า

    สกินโปรแกรมจำลอง

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

    • QVGA (240x320, ความหนาแน่นต่ำ, หน้าจอขนาดเล็ก)
    • WQVGA (240x400, ความหนาแน่นต่ำ, หน้าจอปกติ)
    • FWQVGA (240x432, ความหนาแน่นต่ำ, หน้าจอปกติ)
    • HVGA (320x480, ความหนาแน่นปานกลาง, หน้าจอปกติ)
    • WVGA800 (480x800, ความหนาแน่นสูง, หน้าจอปกติ)
    • WVGA854 (ความหนาแน่นสูง 480x854, หน้าจอปกติ)

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

    ฟีเจอร์สำหรับนักพัฒนาแอป

    ส่วนต่อไปนี้จะให้ข้อมูลเกี่ยวกับฟีเจอร์ใหม่สำหรับนักพัฒนาซอฟต์แวร์ซึ่งนำเสนอโดยคอมโพเนนต์ของแพลตฟอร์ม Android 2.0 ที่ดาวน์โหลดได้

    ป้องกันมด

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

    API ของเฟรมเวิร์ก

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

    ระดับ API

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

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

    ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ระดับ API ได้จากเอกสารระดับ API

    สรุปการเปลี่ยนแปลง API

    บลูทูธ

    • เปิด/ปิดบลูทูธ
    • การค้นหาอุปกรณ์และบริการ
    • เชื่อมต่อกับอุปกรณ์ระยะไกลโดยใช้ RFCOMM และส่ง/รับข้อมูล
    • โฆษณาบริการ RFCOMM และคอยฟังการเชื่อมต่อ RFCOMM ที่เข้ามาใหม่

    ซิงค์อะแดปเตอร์

    • API ใหม่สำหรับอะแดปเตอร์การซิงค์เพื่อเชื่อมต่อกับแบ็กเอนด์

    เครื่องมือจัดการบัญชี

    • API ผู้จัดการฝ่ายดูแลลูกค้าแบบรวมศูนย์เพื่อจัดเก็บและเข้าถึงโทเค็น/รหัสผ่านการตรวจสอบสิทธิ์อย่างปลอดภัย

    รายชื่อติดต่อ

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

    WebView

    • คลาสที่เลิกใช้งาน: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry

    กล้อง

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

    สื่อ

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

    กรอบการทำงานอื่นๆ

    • ธีมใหม่ของระบบใน android.R.style เพื่อแสดงกิจกรรมบนวอลเปเปอร์ระบบปัจจุบันอย่างง่ายดาย หรือให้กิจกรรมก่อนหน้าปรากฏบนพื้นหลัง
    • WallpaperManager API ใหม่จะแทนที่และขยาย API วอลเปเปอร์ที่ก่อนหน้านี้อยู่ในบริบท เพื่อให้แอปพลิเคชันสามารถขอและตั้งค่าวอลเปเปอร์ของระบบ
    • API บริการใหม่เพื่อช่วยให้แอปพลิเคชันจัดการวงจรของบริการได้อย่างถูกต้อง ในสถานการณ์ที่มีหน่วยความจำต่ำซึ่งบริการหนึ่งๆ อาจหยุดทำงานขณะที่ใช้งาน
      • Service.setForeground() เลิกใช้งานแล้วและไม่มีการทำงานใดๆ ในขณะนี้ ฟีเจอร์นี้จะแทนที่ด้วย API ใหม่ startForeground() ที่จะช่วย (และจำเป็นต้องใช้) ในการเชื่อมโยงการแจ้งเตือนต่อเนื่องกับสถานะเบื้องหน้า
    • ตอนนี้ MotionEvent สามารถรายงานข้อมูลการแตะพร้อมกันสำหรับอุปกรณ์ที่รองรับ ติดตามเคอร์เซอร์พร้อมกันได้สูงสุด 3 เคอร์เซอร์
    • KeyEvent มี API การจ่ายคีย์ใหม่ เพื่อช่วยในการเปิดใช้งานการทำงานแบบทันทีและการกดค้าง รวมถึงกลไกใหม่ในการยกเลิกการกดแป้น (สำหรับคีย์เสมือน)
    • WindowManager.LayoutParams มีค่าคงที่ใหม่ที่ช่วยให้หน้าต่างปลุกระบบเมื่อแสดงหน้าต่างและแสดงหน้าต่างแม้ล็อกหน้าจอ วิธีนี้จะช่วยให้แอปพลิเคชันใช้งานสิ่งต่างๆ เช่น นาฬิกาปลุกที่ควรปลุกระบบอุปกรณ์ได้อย่างสะอาดตายิ่งขึ้น
    • Intent API ใหม่ที่เผยแพร่สถานะแท่นชาร์จของอุปกรณ์และอนุญาตให้แอปพลิเคชันเปิดกิจกรรมพิเศษเมื่อวางอุปกรณ์ในเดสก์ท็อปหรือแท่นชาร์จในรถยนต์

    เหตุการณ์สําคัญที่ดําเนินการกับคีย์อัป

    Android 2.0 ออกแบบมาให้ทำงานกับอุปกรณ์ที่ใช้กุญแจเสมือนสำหรับบ้าน MENU, BACK และ SEARCH แทนการใช้คีย์จริง เพื่อสนับสนุนผู้ใช้ที่ดีที่สุด ในอุปกรณ์เหล่านั้น แพลตฟอร์ม Android จะใช้ปุ่มเหล่านี้ที่ คีย์-อัป สำหรับคู่คีย์-ลง/คีย์-อัป แทนที่จะเป็นคีย์ดาวน์ ซึ่งจะช่วยป้องกัน เหตุการณ์เกี่ยวกับปุ่มโดยไม่ตั้งใจและให้ผู้ใช้กดปุ่มแล้วลาก ออกโดยไม่สร้างเหตุการณ์

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

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

    หากแอปพลิเคชันของคุณจะใช้ API ที่เปิดตัวใน Android 2.0 (API ระดับ 5) คุณจะใช้ประโยชน์จาก API ใหม่ในการจัดการคู่คีย์-เหตุการณ์ได้ ดังนี้

    • หากคุณกำลังขัดขวางแป้น BACK ในกิจกรรมหรือกล่องโต้ตอบ ให้ ใช้เมธอด onBackPressed() ใหม่
    • หากคุณกำลังสกัดกั้นแป้น BACK ในมุมมอง คุณควรติดตามแป้นนี้ เหตุการณ์เมื่อคีย์ดาวน์ (ผ่านstartTracking() ใหม่ ) จากนั้นเรียกใช้การทำงานเมื่อกดแป้น นี่คือรูปแบบที่คุณสามารถใช้ได้:
    • Kotlin

      override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.repeatCount == 0) {
                      event.startTracking()
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyDown(keyCode, event)
          }
      }
      
      override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.isTracking && !event.isCanceled) {
                      // *** DO ACTION HERE ***
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyUp(keyCode, event)
          }
      }
      

      Java

      public boolean onKeyDown(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK
                      && event.getRepeatCount() == 0) {
                  event.startTracking();
                  return true;
              }
              return super.onKeyDown(keyCode, event);
          }
      
          public boolean onKeyUp(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
                      && !event.isCanceled()) {
                  // *** DO ACTION HERE ***
                  return true;
              }
              return super.onKeyUp(keyCode, event);
          }
      

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

    รายงานความแตกต่างของ API

    หากต้องการดูมุมมองโดยละเอียดเกี่ยวกับการเปลี่ยนแปลงของ API ใน Android 2.0 (API ระดับ 5) เมื่อเทียบกับ โปรดดูเวอร์ชันก่อนหน้าในรายงานความแตกต่างของ API