Android 7.0 สำหรับนักพัฒนาซอฟต์แวร์

Android 7.0 Nougat มาพร้อมฟีเจอร์และความสามารถใหม่ๆ ที่หลากหลายสำหรับผู้ใช้และนักพัฒนาแอป เอกสารนี้จะไฮไลต์ข้อมูลใหม่ๆ สำหรับนักพัฒนาแอป

โปรดดูหัวข้อการเปลี่ยนแปลงลักษณะการทํางานของ Android 7.0 เพื่อดูข้อมูลเกี่ยวกับด้านต่างๆ ที่การเปลี่ยนแปลงแพลตฟอร์มอาจส่งผลต่อแอปของคุณ

หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ สำหรับฟีเจอร์สำหรับผู้บริโภคของ Android 7.0 โปรดไปที่ www.android.com

รองรับโหมดหลายหน้าต่าง

ใน Android 7.0 เราจะเปิดตัวฟีเจอร์ใหม่ซึ่งเป็นที่ต้องการอย่างมาก การทำงานหลายอย่างพร้อมกันลงในแพลตฟอร์ม — การสนับสนุนหลายหน้าต่าง

ตอนนี้ผู้ใช้สามารถเปิดแอป 2 แอปบนหน้าจอพร้อมกันได้แล้ว

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

รูปที่ 1 แอปที่ทำงานในโหมดแยกหน้าจอ

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

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

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

การเพิ่มประสิทธิภาพการแจ้งเตือน

ใน Android 7.0 เราได้ออกแบบการแจ้งเตือนใหม่เพื่อให้อ่านง่ายขึ้น ใช้งานได้เร็วขึ้น การเปลี่ยนแปลงบางส่วนมีดังนี้

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

รูปที่ 2 การแจ้งเตือนแบบรวมและตอบกลับโดยตรง

ดูวิธีนำฟีเจอร์ใหม่นี้ไปใช้ได้ที่ การแจ้งเตือน

การคอมไพล์ JIT/AOT แบบมีโปรไฟล์

ใน Android 7.0 เราได้เพิ่มคอมไพเลอร์ Just in Time (JIT) ที่มีโค้ด ทำโปรไฟล์เป็น ART ซึ่งช่วยให้ปรับปรุงประสิทธิภาพของ แอป Android ได้ทันทีที่เรียกใช้ คอมไพเลอร์ JIT เป็นส่วนเสริมของคอมไพเลอร์ Ahead of Time (AOT) ปัจจุบันของ ART และช่วยปรับปรุงประสิทธิภาพรันไทม์ ประหยัดพื้นที่เก็บข้อมูล และเร่งการอัปเดตแอปและการอัปเดตระบบ

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

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

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

เส้นทางด่วนเพื่อการติดตั้งแอป

ประโยชน์ที่จับต้องได้ที่สุดอย่างหนึ่งของคอมไพเลอร์ JIT ของ ART คือความเร็วของแอป และการอัปเดตระบบ ตอนนี้แม้แต่แอปขนาดใหญ่ที่ใช้เวลาหลายนาทีในการเพิ่มประสิทธิภาพและติดตั้งใน Android 6.0 ก็ติดตั้งได้ภายในไม่กี่วินาที นอกจากนี้ การอัปเดตระบบยังรวดเร็วขึ้นด้วย เนื่องจากไม่มีขั้นตอนการเพิ่มประสิทธิภาพเพิ่มเติม

Doze ขณะเดินทาง...

Android 6.0 เปิดตัว Doze ซึ่งเป็นโหมดระบบที่ช่วยประหยัดแบตเตอรี่ด้วยการเลื่อนเวลา ของ Google กิจกรรมของ CPU และเครือข่ายเมื่อไม่มีการใช้งานอุปกรณ์ เช่น เมื่อไม่มีการใช้งาน บนโต๊ะหรือในลิ้นชัก

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

ภาพแสดงวิธีที่ Doze บังคับใช้ข้อจำกัดกิจกรรมระบบระดับแรกเพื่อปรับปรุงอายุการใช้งานแบตเตอรี่

รูปที่ 3 เริ่มใช้ Doze แล้ว เพื่อยืดระยะเวลาการใช้งานแบตเตอรี่ แม้ว่าอุปกรณ์ไม่ได้อยู่กับที่

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

เมื่ออุปกรณ์อยู่กับที่อีกครั้ง โดยปิดหน้าจอและเปิดแบตเตอรี่เป็นเวลา Doze จะใช้การจำกัด CPU และเครือข่ายอย่างเต็มรูปแบบในการปลุกในเวลา PowerManager.WakeLock, AlarmManager และ การสแกนหา GPS/Wi-Fi

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

โปรเจ็กต์ Svelte: การเพิ่มประสิทธิภาพพื้นหลัง

Project Svelte มุ่งมั่นอย่างต่อเนื่องในการลดการใช้ RAM โดยระบบและแอป สำหรับอุปกรณ์ Android หลายรุ่นในระบบนิเวศ ใน Android 7.0 โปรเจ็กต์ Svelt จะมุ่งเน้นที่การเพิ่มประสิทธิภาพวิธีที่แอปทำงานในเบื้องหลัง

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

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

อีกตัวเลือกหนึ่งที่น่าสนใจคือ GCMNetworkManager ซึ่งเป็นส่วนหนึ่งของบริการ Google Play ที่ให้บริการกำหนดเวลางานแบบคล้ายกันซึ่งเข้ากันได้กับ Android เวอร์ชันเดิม

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

ใน Android 7.0 เราจะนําการออกอากาศแบบนัยที่ใช้กันโดยทั่วไป 3 รายการออก ซึ่งได้แก่ CONNECTIVITY_ACTION, ACTION_NEW_PICTURE และ ACTION_NEW_VIDEO เนื่องจากสามารถปลุกกระบวนการเบื้องหลังของแอปหลายรายการพร้อมกันและทำให้หน่วยความจําและแบตเตอรี่ทำงานหนัก ถ้า แอปของคุณกำลังรับสิ่งเหล่านี้ ใช้ประโยชน์จาก Android 7.0 เพื่อ โปรดย้ายข้อมูลไปยัง JobScheduler และ API ที่เกี่ยวข้องแทน

ลองดูที่พื้นหลัง ดูรายละเอียดในเอกสารการเพิ่มประสิทธิภาพ

มุมมองพื้นผิว

Android 7.0 มาพร้อมการเคลื่อนที่แบบพร้อมกันให้กับ SurfaceView ซึ่งทำให้ประสิทธิภาพแบตเตอรี่ดีขึ้น TextureViewในบางกรณี: เมื่อแสดงผลวิดีโอหรือ เนื้อหา 3 มิติ แอปที่มีการเลื่อนและตำแหน่งวิดีโอภาพเคลื่อนไหวจะใช้พลังงานน้อยกว่า SurfaceView เมื่อเทียบกับ TextureView

คลาส SurfaceView จะเปิดใช้การประสานแบบประหยัดพลังงานมากขึ้นเมื่อ หน้าจอเพราะเป็นการ Composite ในฮาร์ดแวร์เฉพาะ ไม่ใช่จากแอป เนื้อหาในหน้าต่าง ด้วยเหตุนี้ TextureView จึงสร้างสำเนาสื่อกลางได้น้อยกว่า TextureView

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

ตั้งแต่ Android 7.0 เป็นต้นไป เราขอแนะนำให้คุณประหยัดพลังงานโดยใช้ SurfaceView จากราคาเต็ม TextureView

ประหยัดอินเทอร์เน็ต

การประหยัดอินเทอร์เน็ตในการตั้งค่า

รูปที่ 4 การประหยัดอินเทอร์เน็ตในการตั้งค่า

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

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

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

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

API ของ Vulkan

Android 7.0 ผสานรวม Vulkan™ ซึ่งเป็น API การแสดงผล 3 มิติแบบใหม่ไว้ในแพลตฟอร์ม ชอบ OpenGLTM สเปน, Vulkan เป็นมาตรฐานแบบเปิดสำหรับกราฟิก 3 มิติและการแสดงภาพที่ดูแลรักษา โดย Khronos Group

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

เครื่องมือการพัฒนาและไลบรารี Vulkan ผสานรวมอยู่ใน Android 7.0 SDK โฆษณาเหล่านี้ รวมข้อมูลต่อไปนี้

  • ส่วนหัว
  • เลเยอร์การตรวจสอบ (ไลบรารีการแก้ไขข้อบกพร่อง)
  • คอมไพเลอร์เฉดสี SPIR-V
  • ไลบรารีการคอมไพล์ตัวปรับแสงเงารันไทม์ SPIR-V

Vulkan พร้อมให้บริการเฉพาะแอปในอุปกรณ์ที่มีฮาร์ดแวร์ที่รองรับ Vulkan เช่น Nexus 5X, Nexus 6P และ Nexus Player เรากำลังทำงานอย่างใกล้ชิดกับ พาร์ทเนอร์จะนำ Vulkan ไปยังอุปกรณ์อื่นๆ โดยเร็วที่สุด

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบ API

API ไทล์การตั้งค่าด่วน

การ์ดการตั้งค่าด่วนในหน้าต่างแจ้งเตือน

รูปที่ 5 การ์ดการตั้งค่าด่วนในหน้าต่างแจ้งเตือน

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

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

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

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

เมื่อกำหนดการ์ดแล้ว คุณจะแสดงการ์ดแก่ผู้ใช้ซึ่งสามารถเพิ่ม ไปยังการตั้งค่าด่วนได้ง่ายๆ ด้วยการลากและวาง

สำหรับข้อมูลเกี่ยวกับการสร้างไทล์แอป โปรดดูเอกสารอ้างอิง ในราคา Tile

การบล็อกหมายเลข

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

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

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

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

สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารอ้างอิงสำหรับ BlockedNumberContract

การสกรีนสายเรียกเข้า

Android 7.0 อนุญาตให้แอปโทรศัพท์เริ่มต้นสกรีนสายเรียกเข้าได้ โทรศัพท์ ในการดำเนินการโดยใช้ CallScreeningService ใหม่ ซึ่งทำให้แอปโทรศัพท์ทำงานได้หลายอย่างตาม Call.Details ของสายเรียกเข้า เช่น

  • ปฏิเสธสายเรียกเข้า
  • ไม่อนุญาตให้โทรหาประวัติการโทร
  • ไม่ต้องแสดงการแจ้งเตือนการโทรให้ผู้ใช้ทราบ

ดูข้อมูลเพิ่มเติมได้ที่เอกสารอ้างอิงสำหรับ CallScreeningService

การรองรับหลายภาษา

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

นอกจากการสนับสนุนหลายภาษาแล้ว Android 7.0 ยังได้เพิ่มภาษาที่หลากหลาย พร้อมใช้งานสำหรับผู้ใช้ มีผลิตภัณฑ์ย่อยมากกว่า 25 รายการสำหรับการใช้งานกันทั่วไป ภาษา เช่น อังกฤษ สเปน ฝรั่งเศส และอาหรับ รวมถึงรองรับภาษาใหม่ๆ กว่า 100 ภาษาบางส่วนด้วย

แอปสามารถดูรายการภาษาที่ผู้ใช้กำหนดไว้โดยการเรียกใช้ LocaleList.GetDefault() Android 7.0 กำลังเปลี่ยนวิธีแก้ไขทรัพยากรเพื่อรองรับจำนวนภาษาที่เพิ่มขึ้น อย่าลืมทดสอบและยืนยันว่าแอป ทำงานได้ตามที่คาดไว้ด้วยตรรกะความละเอียดของทรัพยากรใหม่

ดูข้อมูลเกี่ยวกับลักษณะการทำงานใหม่ของการแก้ปัญหาทรัพยากรและแนวทางปฏิบัติแนะนำที่คุณ ควรตามมา โปรดดูที่การสนับสนุนหลายภาษา

อีโมจิใหม่

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

  • ตรวจสอบว่าอุปกรณ์มีอีโมจิก่อนแทรก เพื่อดูว่ามีอีโมจิใดอยู่ใน แบบอักษรของระบบ ให้ใช้เมธอด hasGlyph(String)
  • ตรวจสอบว่าอีโมจิรองรับตัวเลือกรูปแบบต่างๆ ตัวเลือกรูปแบบช่วยให้คุณ นำเสนออีโมจิบางตัวเป็นสีหรือขาวดำ ในอุปกรณ์เคลื่อนที่ แอปควรแสดงอีโมจิเป็นสีแทนที่จะเป็นขาวดํา อย่างไรก็ตาม หากแอปแสดงอีโมจิในบรรทัดพร้อมข้อความ ก็ควรใช้รูปแบบขาวดำ หากต้องการทราบว่าอีโมจิมีรูปแบบอื่นหรือไม่ ให้ใช้ตัวเลือกรูปแบบ สำหรับรายการอักขระทั้งหมดที่มีรูปแบบ ให้ดูที่ ลำดับรูปแบบต่างๆ ของอีโมจิ เอกสารประกอบเกี่ยวกับ Unicode เกี่ยวกับรูปแบบต่างๆ
  • ตรวจสอบว่าอีโมจิรองรับสีผิว Android 7.0 ช่วยให้ผู้ใช้สามารถแก้ไข โทนสีผิวที่แสดงของอีโมจิได้ตามต้องการ แอปแป้นพิมพ์ควรจะมีภาพ สัญญาณบอกสถานะสำหรับอีโมจิที่มีสีผิวหลายสีและควรให้ผู้ใช้ ให้เลือกสีผิวที่ต้องการ เพื่อกำหนดว่าอีโมจิของระบบใดมี ตัวปรับสีผิว ให้ใช้ hasGlyph(String) คุณสามารถระบุอีโมจิที่ใช้โทนสีผิวได้โดยการอ่าน เอกสารประกอบเกี่ยวกับ Unicode

ICU4J API ใน Android

ปัจจุบัน Android 7.0 มี API ชุดย่อยของ ICU4J ในเฟรมเวิร์ก Android ซึ่งอยู่ภายใต้ แพ็กเกจ android.icu การย้ายข้อมูลทำได้ง่ายและส่วนใหญ่จะต้องดำเนินการ เพียงแค่เปลี่ยนจากเนมสเปซ com.java.icu เป็น android.icu หากคุณใช้แพ็กเกจ ICU4J ในแพ็กเกจ โดยเปลี่ยนไปใช้ API ของ android.icu ที่มีให้ใน Android จะช่วยประหยัดค่าใช้จ่ายได้มากขึ้นในขนาด APK

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับ Android ICU4J API โปรดดูการสนับสนุนของ ICU4J

WebView

Chrome + WebView ใช้ร่วมกัน

เริ่มตั้งแต่ Chrome เวอร์ชัน 51 ใน Android 7.0 ขึ้นไป APK ของ Chrome ในอุปกรณ์ของคุณ ใช้เพื่อระบุและแสดงผล Android System WebView วิธีนี้จะช่วยปรับปรุงหน่วยความจำ ใช้งานบนอุปกรณ์ และยังลดแบนด์วิดท์ที่จำเป็นสำหรับการรักษา WebView เป็นเวอร์ชันล่าสุดแล้ว (เนื่องจาก WebView APK แบบสแตนด์อโลนจะไม่ได้รับการอัปเดตอีกต่อไป ตราบใดที่ Chrome ยังคงเปิดใช้งานอยู่)

คุณเลือกผู้ให้บริการ WebView ได้โดยเปิดใช้ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์และ เลือกการใช้งาน WebView คุณสามารถใช้ เวอร์ชัน Chrome (Dev, เบต้า หรือเสถียร) ที่ติดตั้งในอุปกรณ์หรือ APK ของ Webview แบบสแตนด์อโลนเพื่อทำหน้าที่เป็นการติดตั้งใช้งาน WebView

หลายขั้นตอน

ตั้งแต่ Chrome เวอร์ชัน 51 ใน Android 7.0 เป็นต้นไป WebView จะเรียกใช้เนื้อหาเว็บในกระบวนการที่ใช้แซนด์บ็อกซ์แยกต่างหากเมื่อเปิดใช้ตัวเลือก "WebView แบบหลายกระบวนการ" ของนักพัฒนาซอฟต์แวร์

เราอยากทราบความคิดเห็นเกี่ยวกับความเข้ากันได้และประสิทธิภาพรันไทม์ในภาษา N ก่อนที่จะเปิดใช้ WebView แบบหลายขั้นตอนใน Android เวอร์ชันในอนาคต ด้วยวิธีนี้ เวอร์ชัน การเกิดปัญหาซ้ำในเวลาเริ่มต้น การใช้หน่วยความจำทั้งหมด และซอฟต์แวร์ ในการแสดงผลนั้น

หากคุณพบปัญหาที่ไม่คาดคิดในโหมดประมวลผลหลายรายการ โปรดแจ้งให้เราทราบ ให้พวกเขา โปรดติดต่อทีม WebView ในเครื่องมือติดตามข้อบกพร่อง Chromium

JavaScript ทำงานก่อนโหลดหน้าเว็บ

เริ่มตั้งแต่แอปที่กำหนดเป้าหมายเป็น Android 7.0 เป็นต้นไป ระบบจะรีเซ็ตบริบท JavaScript เมื่อโหลดหน้าเว็บใหม่ ปัจจุบันนี้ บริบทนี้มีการนำมาใช้สำหรับ หน้าแรกที่โหลดในอินสแตนซ์ WebView ใหม่

นักพัฒนาซอฟต์แวร์ที่ต้องการแทรก JavaScript ลงใน WebView ควรเรียกใช้เมธอด สคริปต์หลังจากที่หน้าเว็บเริ่มโหลดแล้ว

ตำแหน่งทางภูมิศาสตร์ในต้นทางที่ไม่ปลอดภัย

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

การทดสอบด้วย WebView รุ่นเบต้า

WebView ได้รับการอัปเดตเป็นประจำ เราจึงขอแนะนำให้คุณทดสอบความเข้ากันได้ กับแอปของคุณเป็นประจำโดยใช้เวอร์ชันเบต้าของ WebView หากต้องการเริ่มทดสอบ WebView เวอร์ชันก่อนเปิดตัวใน Android 7.0 ให้ดาวน์โหลดและติดตั้ง Chrome Dev หรือ Chrome Beta แล้วเลือกเป็นการใช้งาน WebView ในส่วนตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ตามที่อธิบายไว้ข้างต้น โปรดรายงานปัญหาผ่าน Chromium เครื่องมือติดตามข้อบกพร่อง เพื่อให้เราแก้ไขได้ก่อนที่จะใช้ WebView เวอร์ชันใหม่ เผยแพร่แล้ว

OpenGL™ ES 3.2 API

Android 7.0 เพิ่มอินเทอร์เฟซเฟรมเวิร์กและการสนับสนุนแพลตฟอร์มสำหรับ OpenGL ES 3.2 ซึ่งรวมถึง

  • ส่วนขยายทั้งหมดจาก Android Extension Pack (AEP) ยกเว้น EXT_texture_sRGB_decode
  • FrameBuffers ที่จุดลอยตัวสำหรับ HDR และการลงเฉดสีแบบหน่วงเวลา
  • BaseVertex ดึงดูดการเรียกใช้เพื่อให้การรวมกลุ่มและสตรีมมิงมีประสิทธิภาพยิ่งขึ้น
  • การควบคุมการเข้าถึงบัฟเฟอร์ที่มีประสิทธิภาพเพื่อลดค่าใช้จ่ายของ WebGL

Framework API สำหรับ OpenGL ES 3.2 ใน Android 7.0 มีให้ใช้งานในคลาส GLES32 เมื่อใช้ OpenGL ES 3.2 อย่าลืมประกาศฟิลด์ ในไฟล์ Manifest ของคุณโดยใช้แท็ก <uses-feature> และ android:glEsVersion

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

การบันทึกใน Android TV

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

ดูข้อมูลเพิ่มเติมได้ที่ Android TV Recording API

Android for Work

Android for Work เพิ่มฟีเจอร์และ API ใหม่ๆ มากมายสำหรับอุปกรณ์ที่ใช้ Android 7.0 โปรดดูรายการฟีเจอร์ทั้งหมดด้านล่าง ดังนี้ ฟีเจอร์ของ Android Enterprise

คำถามเพื่อความปลอดภัยของโปรไฟล์งาน

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

เจ้าของโปรไฟล์สามารถกำหนดนโยบายรหัสผ่านที่แตกต่างกันสำหรับภารกิจการทำงาน (เช่น ระยะเวลาที่ต้องใช้ PIN หรือว่าสามารถใช้ลายนิ้วมือได้หรือไม่ เพื่อปลดล็อกโปรไฟล์) โดยใช้ setPasswordQuality() setPasswordMinimumLength() และวิธีการที่เกี่ยวข้อง โปรไฟล์ เจ้าของยังตั้งค่าการล็อกอุปกรณ์โดยใช้DevicePolicyManagerได้ด้วย ที่แสดงผลโดยเมธอด getParentProfileInstance() ใหม่ นอกจากนี้ เจ้าของโปรไฟล์ยังสามารถปรับแต่งหน้าจอเข้าสู่ระบบ การทำงานโดยใช้ setOrganizationColor() ใหม่และ setOrganizationName() วิธี

ปิดงาน

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

VPN แบบเปิดตลอดเวลา

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

เมธอด DevicePolicyManager ใหม่คือ setAlwaysOnVpnPackage() และ getAlwaysOnVpnPackage()

เนื่องจากระบบสามารถเชื่อมโยงบริการ VPN ได้โดยตรงโดยไม่ต้องใช้แอป การโต้ตอบ ไคลเอ็นต์ VPN จะต้องจัดการจุดแรกเข้าใหม่สำหรับ VPN แบบเปิดตลอดเวลา อาส ก่อนหน้านี้ บริการจะถูกระบุไปยังระบบโดยการจับคู่ตัวกรอง Intent การดำเนินการ android.net.VpnService

ผู้ใช้ยังสามารถตั้งค่าไคลเอ็นต์ VPN แบบเปิดตลอดเวลาด้วยตนเองโดยใช้ VPNService วิธีที่ใช้ การตั้งค่า > เพิ่มเติม > VPN ตัวเลือกในการเปิดใช้ VPN แบบเปิดตลอดเวลา จากการตั้งค่าจะใช้ได้เฉพาะเมื่อไคลเอ็นต์ VPN กำหนดเป้าหมายเป็น API ระดับ 24 เท่านั้น

การจัดสรรแบบกำหนดเอง

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

การเพิ่มประสิทธิภาพการช่วยเหลือพิเศษ

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

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

นอกจากนี้ ใน Android 7.0 บริการการช่วยเหลือพิเศษยังช่วยผู้ใช้เกี่ยวกับการเคลื่อนไหวได้ ความบกพร่องในการแตะหน้าจอ API ใหม่นี้ช่วยให้สร้างบริการด้วย เช่น การติดตามใบหน้า การติดตามดวงตา การสแกนจุด เป็นต้น ตอบสนองความต้องการของผู้ใช้เหล่านั้นได้

ดูข้อมูลเพิ่มเติมได้ที่เอกสารอ้างอิงสำหรับ GestureDescription

Direct Boot

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

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

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

ดูข้อมูลเพิ่มเติมได้ที่การเปิดเครื่องโดยตรง

เอกสารรับรองคีย์

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

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

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

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

การกำหนดค่าการรักษาความปลอดภัยของเครือข่าย

ใน Android 7.0 แอปสามารถปรับแต่งลักษณะการทำงานของที่ปลอดภัย (HTTPS, TLS) ได้ ได้อย่างปลอดภัยโดยไม่ต้องแก้ไขโค้ด โดยการใช้ การกำหนดค่าความปลอดภัยของเครือข่ายแทนการใช้รูปแบบปกติ API แบบเป็นโปรแกรมที่เกิดข้อผิดพลาดได้ง่าย (เช่น X509TrustManager)

ฟีเจอร์ที่รองรับ:

  • Trust Anchor ที่กำหนดเอง ให้แอปพลิเคชันกำหนดค่า ผู้ออกใบรับรอง (CA) ได้รับความไว้วางใจจากการเชื่อมต่อที่ปลอดภัย สำหรับ เช่น การเชื่อถือใบรับรองที่ลงนามด้วยตนเองบางรายการ หรือชุด CA สาธารณะแบบจำกัด
  • การลบล้างสำหรับแก้ไขข้อบกพร่องเท่านั้น ช่วยให้นักพัฒนาแอปพลิเคชันแก้ไขข้อบกพร่องได้อย่างปลอดภัย กับแอปพลิเคชันได้อย่างปลอดภัยโดยไม่ต้องเพิ่มความเสี่ยงให้กับ ฐาน
  • การเลือกไม่รับการเข้าชมแบบข้อความธรรมดา อนุญาตให้แอปพลิเคชันปกป้องตัวเองจาก การใช้การเข้าชมแบบข้อความธรรมดา (Cleartext) โดยไม่ได้ตั้งใจ
  • การปักหมุดใบรับรอง ฟีเจอร์ขั้นสูงที่ช่วยให้แอปพลิเคชัน จำกัดคีย์เซิร์ฟเวอร์ที่เชื่อถือสำหรับการเชื่อมต่อที่ปลอดภัย

โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการกำหนดค่าความปลอดภัยของเครือข่าย

ผู้ออกใบรับรองที่เชื่อถือได้เริ่มต้น

โดยค่าเริ่มต้น แอปที่กำหนดเป้าหมายเป็น Android 7.0 จะเชื่อถือใบรับรองที่ระบบมีให้เท่านั้น และไม่เชื่อถือผู้ออกใบรับรอง (CA) ที่ผู้ใช้เพิ่มไว้อีกต่อไป แอปที่กำหนดเป้าหมายเป็น Android 7.0 (API ระดับ 24) ที่ต้องการเชื่อถือ CA ที่ผู้ใช้เพิ่มควรใช้ การกำหนดค่าความปลอดภัยของเครือข่ายเพื่อ ระบุวิธีที่ควรเชื่อถือ CA ของผู้ใช้

APK Signature Scheme v2

Android 7.0 เปิดตัว APK Signature Scheme v2 ซึ่งเป็นรูปแบบการลงนามแอปแบบใหม่ที่ ทำให้ติดตั้งแอปได้เร็วขึ้นและป้องกันผู้ใช้ที่ไม่ได้รับอนุญาตได้ดีขึ้น การเปลี่ยนแปลงในไฟล์ APK โดยค่าเริ่มต้น Android Studio 2.2 และ Android ปลั๊กอินสำหรับ Gradle 2.2 รับรองแอปของคุณโดยใช้ทั้ง APK Signature Scheme v2 และ แผนการลงนามแบบดั้งเดิม ซึ่งใช้การลงนาม JAR

แม้ว่าเราจะแนะนำให้ใช้ APK Signature Scheme v2 กับแอปของคุณ แต่ แต่ไม่ได้บังคับ หากแอปของคุณสร้างไม่ถูกต้องเมื่อใช้ APK Signature Scheme v2 คุณจะปิดใช้รูปแบบใหม่ได้ กระบวนการปิดใช้ ทำให้ Android Studio 2.2 และ Android Plugin for Gradle 2.2 รับรอง แอปโดยใช้เฉพาะรูปแบบการลงนามดั้งเดิมเท่านั้น หากต้องการลงนามโดยใช้ รูปแบบดั้งเดิม ให้เปิดไฟล์ build.gradle ระดับโมดูล เพิ่มบรรทัด v2SigningEnabled false ในการรับรองรุ่น การกำหนดค่า:

  android {
    ...
    defaultConfig { ... }
    signingConfigs {
      release {
        storeFile file("myreleasekey.keystore")
        storePassword "password"
        keyAlias "MyReleaseKey"
        keyPassword "password"
        v2SigningEnabled false
      }
    }
  }

ข้อควรระวัง: หากคุณลงชื่อแอปโดยใช้ APK Signature Scheme v2 และทําการเปลี่ยนแปลงแอปเพิ่มเติม การรับรองของแอปจะใช้งานไม่ได้ ด้วยเหตุนี้ ให้ใช้เครื่องมืออย่าง zipalign ก่อนลงนามแอปโดยใช้ APK Signature Scheme v2 ไม่ใช่หลังจากลงนาม

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

การเข้าถึงไดเรกทอรีที่กำหนดขอบเขต

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

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

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

ตัวช่วยเหลือสำหรับแป้นพิมพ์ลัด

ใน Android 7.0 ผู้ใช้สามารถกด Meta + / เพื่อทริกเกอร์ หน้าจอแป้นพิมพ์ลัดที่แสดงแป้นพิมพ์ลัดทั้งหมดที่ใช้ได้ จากระบบและจากแอปที่ใช้งาน ระบบจะดึงข้อมูลทางลัดเหล่านี้จากเมนูของแอปโดยอัตโนมัติหากมีทางลัด คุณสามารถ คุณยังสามารถมีรายการทางลัดที่ปรับแต่งมาสำหรับหน้าจอได้ คุณทำได้ โดยลบล้างเมธอด onProvideKeyboardShortcuts()

หมายเหตุ: คีย์ Meta ไม่พร้อมใช้งานในทุกที่ แป้นพิมพ์: บนแป้นพิมพ์ Macintosh ปุ่มจะเป็นแป้น Command บนแป้นพิมพ์ Windows นี่ก็คือแป้น Windows และใน Pixel C และแป้นพิมพ์ ChromeOS จะเป็นแป้นค้นหา

หากต้องการเรียกใช้งานตัวช่วยแป้นพิมพ์ลัดได้จากทุกที่ในแอปของคุณ ให้เรียกใช้ requestShowKeyboardShortcuts() จากกิจกรรมที่เกี่ยวข้อง

API ตัวชี้ที่กำหนดเอง

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

หากต้องการกำหนดไอคอนเคอร์เซอร์ ให้ลบล้าง onResolvePointerIcon() ของคลาส View วิธีนี้ใช้เมธอด PointerIcon สำหรับการวาดไอคอนที่สอดคล้องกับ เหตุการณ์การเคลื่อนไหวที่เจาะจง

API ประสิทธิภาพที่ยั่งยืน

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

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

นักพัฒนาแอปสามารถลองใช้ API ใหม่นี้ได้ใน Android 7.0 บน อุปกรณ์ Nexus 6P เท่านั้น หากต้องการใช้ฟีเจอร์นี้ ตั้งค่าสถานะกรอบเวลาด้านประสิทธิภาพที่ยั่งยืนสำหรับกรอบเวลานั้น ที่คุณต้องการให้ทำงานในโหมดประสิทธิภาพที่ยั่งยืน ตั้งค่าสถานะนี้โดยใช้ Window.setSustainedPerformanceMode() วิธี ระบบจะทำงานโดยอัตโนมัติ ปิดใช้งานโหมดนี้เมื่อหน้าต่างไม่ได้อยู่ในโฟกัสแล้ว

รองรับ VR

Android 7.0 เพิ่มการรองรับแพลตฟอร์มและการเพิ่มประสิทธิภาพสำหรับโหมด VR ใหม่เพื่อให้นักพัฒนาแอปสร้างประสบการณ์ VR บนอุปกรณ์เคลื่อนที่ที่มีคุณภาพสูงให้แก่ผู้ใช้ ประสิทธิภาพการทำงานมีหลายอย่าง การเพิ่มประสิทธิภาพสูงสุด ซึ่งรวมถึงสิทธิ์เข้าถึง CPU Core สำหรับแอป VR โดยเฉพาะ ภายในแอปของคุณ คุณสามารถใช้ประโยชน์จากการติดตาม การเคลื่อนไหวของศีรษะอัจฉริยะ และการแจ้งเตือนแบบสเตอริโอที่ใช้งานได้กับ VR สิ่งสำคัญที่สุดคือ Android 7.0 ให้ กราฟิกที่มีเวลาในการตอบสนองต่ำมาก หากต้องการดูข้อมูลทั้งหมดเกี่ยวกับการสร้างแอป VR สำหรับ Android 7.0 ดู Google VR SDK สำหรับ Android

ใน Android 7.0 ตอนนี้นักพัฒนาบริการพิมพ์สามารถแสดงข้อมูลเพิ่มเติมเกี่ยวกับเครื่องพิมพ์และงานพิมพ์แต่ละรายการได้แล้ว

เมื่อแสดงเครื่องพิมพ์ทีละเครื่อง ตอนนี้บริการพิมพ์สามารถกำหนดค่าบริการต่อเครื่องพิมพ์ได้ 1 เครื่องแล้ว ไอคอนได้ 2 วิธี ดังนี้

  • คุณสามารถกำหนดไอคอนจากรหัสทรัพยากรได้โดยการเรียกใช้ setIconResourceId()
  • คุณสามารถแสดงไอคอนจากเครือข่ายได้โดยเรียกใช้ setHasCustomPrinterIcon() และตั้งค่าการเรียกกลับเมื่อมีการขอไอคอนโดยใช้ onRequestCustomPrinterIcon()

นอกจากนี้ คุณยังระบุกิจกรรมต่อเครื่องพิมพ์เพื่อแสดงข้อมูลเพิ่มเติมได้โดยเรียกใช้ setInfoIntent()

คุณระบุความคืบหน้าและสถานะของงานพิมพ์ในงานพิมพ์ได้ การแจ้งเตือนด้วยการโทร setProgress() และ setStatus() ตามลำดับ

API เมตริกเฟรม

Frame Metrics API ช่วยให้แอปตรวจสอบประสิทธิภาพการแสดงผล UI ได้ API นี้ให้ความสามารถนี้โดยการเปิดเผย Pub/Sub API สตรีมมิงเพื่อโอนข้อมูลการจับเวลาเฟรมสําหรับกรอบเวลาปัจจุบันของแอป ข้อมูลที่แสดงผลคือ เทียบเท่ากับที่ adb shell dumpsys gfxinfo framestats แสดง แต่ไม่จํากัดเพียง 120 เฟรมที่ผ่านมา

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

หากต้องการตรวจสอบหน้าต่าง ให้ใช้เมธอด OnFrameMetricsAvailableListener.onFrameMetricsAvailable() Callback และลงทะเบียนในหน้าต่างนั้น

API มีออบเจ็กต์ FrameMetrics ซึ่งมีข้อมูลการจับเวลาซึ่งระบบย่อยการแสดงผลรายงานสำหรับเหตุการณ์สำคัญต่างๆ ในวงจรเฟรม เมตริกที่รองรับ ได้แก่ UNKNOWN_DELAY_DURATION, INPUT_HANDLING_DURATION, ANIMATION_DURATION, LAYOUT_MEASURE_DURATION, DRAW_DURATION, SYNC_DURATION, COMMAND_ISSUE_DURATION, SWAP_BUFFERS_DURATION, TOTAL_DURATION และ FIRST_DRAW_FRAME

ไฟล์เสมือน

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

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

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