นี่คือสาเหตุที่ Nova Launcher ทำงานได้ดีกว่าบนโทรศัพท์ Google Pixel

Google เพิ่ม API ที่ช่วยให้ตัวเรียกใช้งานบุคคลที่สามเช่น Nova Launcher แสดงภาพเคลื่อนไหวการเปลี่ยนแปลงที่ลื่นไหลมากขึ้น ตอนนี้มีเพียงโทรศัพท์ Pixel เท่านั้นที่มี

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

หากคุณใช้ Nova Launcher รุ่นเบต้าล่าสุดบนโทรศัพท์ Google Pixel ในช่วง 2-3 เดือนที่ผ่านมา คุณอาจสังเกตเห็นภาพเคลื่อนไหวที่ลื่นไหลเมื่อใช้การนำทางด้วยท่าทาง น่าเสียดายที่คุณจะไม่เห็นภาพเคลื่อนไหวแบบเดียวกันนี้เมื่อใช้ Nova Launcher บนอุปกรณ์อื่น อย่างน้อยก็ในตอนนี้ เพื่อทำความเข้าใจว่าทำไมเราต้องอธิบายสั้น ๆ ก่อนว่าอะไรแยกตัวเรียกใช้งานบุคคลที่สามเช่น Nova Launcher ออกจากตัวเรียกใช้งานสต็อกเช่น Pixel Launcher ของ Google

Google เปิดตัวการนำทางด้วยท่าทางเป็นครั้งแรก ในระบบปฏิบัติการ Android 9 Pie. เพื่อให้ท่าทางสัมผัสลื่นไหลที่สุดเท่าที่จะเป็นไปได้ Google จำเป็นต้องทำให้การเปลี่ยนแอปดูราบรื่น พวกเขายังต้องการให้ผู้ใช้เข้าถึงรายการแอปทั้งหมดได้จากหน้าจอแอปล่าสุด ในการดำเนินการทั้งสองสิ่งนี้ Google ตัดสินใจย้ายโค้ดที่จัดการหน้าจอแอปล่าสุดจาก Android SystemUI ถึง Launcher3 ซึ่งเป็นแอป Launcher แบบโอเพ่นซอร์สของ Android ที่ตัวเรียกใช้งานหุ้น OEM ส่วนใหญ่ถูกแยกออกมา ดังนั้น QuickStep ส่วนประกอบเกิดขึ้น และเนื่องจากลักษณะพิเศษของมัน Android จึงอนุญาตให้ตั้งค่าแอปตัวเรียกใช้งานที่ติดตั้งไว้ล่วงหน้าเป็นผู้ให้บริการแอปล่าสุดเท่านั้น นี้สามารถ ถูกแทนที่ด้วยการเข้าถึงรูท หากตัวเรียกใช้งานบุคคลที่สามรองรับ แต่สำหรับผู้ใช้ส่วนใหญ่ นั่นหมายความว่าแอปตัวเรียกใช้งานบุคคลที่สามจะต้องอาศัยตัวเรียกใช้งานสต็อกเพื่อจัดการท่าทางและหน้าจอแอปล่าสุดเสมอ ผลลัพธ์ที่ได้อาจดูไม่ราบรื่นและราบรื่น ดังที่พวกคุณส่วนใหญ่เคยประสบมา ยกเว้นกรณีที่คุณใช้โทรศัพท์ Google Pixel นั่นก็คือ

ในโทรศัพท์ Google Pixel ส่วนใหญ่ มี API ที่ตัวเรียกใช้งานบุคคลที่สามสามารถใช้เพื่อทำให้การเปลี่ยนจากแอปกลับไปเป็นหน้าจอหลักดูเป็นธรรมชาติมากขึ้น แอพตัวเรียกใช้งานบุคคลที่สามบางตัวเช่น เครื่องยิงไนแอการา และ Nova Launcher ที่กล่าวมาข้างต้นกำลังใช้ประโยชน์จาก API นี้ แม้ว่าตัวหลังจะรวมไว้ในตัวเท่านั้น บิลด์ v7 ที่อยู่ระหว่างการพัฒนา. เมื่อใช้ API นี้ แอพตัวเรียกใช้งานของบริษัทอื่นจะได้รับ Intent และการโทรกลับจาก QuickStep ทุกครั้งที่ผู้ใช้ปัดเพื่อกลับบ้านด้วยท่าทาง ตัวเรียกใช้งานของบุคคลที่สามสามารถบอกใบ้ถึงระบบท่าทางว่าจะเคลื่อนไหวหน้าต่างอย่างไรเมื่อย่อเล็กสุดบนไอคอนแอพ

นี่คือตัวอย่างของลักษณะนี้ใน Niagara Launcher โดยได้รับความอนุเคราะห์จากผู้พัฒนา Launcher 8bitpit:

และนี่คือการเปรียบเทียบที่แสดงให้เห็นว่าภาพเคลื่อนไหวมีลักษณะอย่างไร เอซุส ROG Phone 5 และ กูเกิลพิกเซล 4ทั้งที่ใช้ Nova Launcher v7.0.25 (รุ่นเบต้าล่าสุด ณ เวลาที่เผยแพร่) และ Android 11:

\ร\n https://www.youtube.com/watch? v=equ-8yDw_Do\r\n

ตอนนี้คุณอาจสงสัยว่า: API นี้เป็นเอกสิทธิ์ของโทรศัพท์ Google Pixel หรือไม่ คำตอบคือไม่มันไม่ใช่ API เป็นส่วนหนึ่งของ Launcher3/QuickStep และ สามารถพบได้ใน AOSPซึ่งหมายความว่าแอป Launcher ของ OEM จะเปิดให้ใช้งาน ในขณะที่ API มุ่งมั่นที่จะ Launcher3 ภายในวันที่ 21 กรกฎาคม 2563 ดูเหมือนว่าเป็นเช่นนั้น รวมเข้ากับสาขาหลัก AOSP ด้วยการเปิดตัว Android R QPR1 ในเดือนธันวาคม

API ที่ทำให้ Nova Launcher และ Niagara Launcher ให้ความรู้สึกเป็นธรรมชาติมากขึ้นบนโทรศัพท์ Google Pixel

Kevin Barry ผู้พัฒนา Nova Launcher และเป็นหนึ่งในคนแรกๆ ที่ค้นพบ API นี้ บอกเราว่าเขาสงสัยว่าเป็นส่วนหนึ่งของ เหตุผลที่ OEM ไม่ใช้ API นี้ใน Launcher3 ของพวกเขาก็คือว่ามันมาช้าไปหน่อยในการเปิดตัว Android 11 วงจร ต้องใช้ความพยายามไม่น้อยในการรวมการเปลี่ยนแปลง AOSP ครั้งใหญ่ และการอัปเดต Android R QPR1 มีการเปลี่ยนแปลงเหล่านั้นมากมายอย่างแน่นอน ในปีที่ผ่านมา เราจะเรียกโค้ดเหล่านี้ว่า "การเผยแพร่การบำรุงรักษา" แต่ Google จะไม่ดำเนินการดังกล่าวอีกต่อไปหลังจากการตอบกลับจาก OEM (หรืออย่างที่ฉันได้ยินมา) นี่คือเหตุผลว่าทำไม LineageOS ซึ่งเป็น ROM แบบกำหนดเองของ Android ยอดนิยมจึงเรียกรุ่นล่าสุดนี้ว่า "LineageOS 18.1.1" แทนที่จะเป็น "LineageOS 18" เพื่อบ่งบอกว่า ROM นั้นใช้โค้ดเบส Android 11 ล่าสุดมากกว่า Android 11 รุ่นแรก

เป็นที่น่าสังเกตว่า API นี้สามารถเข้าถึงได้เฉพาะบนโทรศัพท์ Google Pixel หลังจาก ฟีเจอร์พิกเซลเดือนธันวาคมลดลงซึ่งเกิดขึ้นพร้อมกับการเปิดตัว Android R QPR1 สู่สาธารณะ และถึงแม้ว่า Pixel 2 จะได้รับก็ตาม อัปเดตครั้งสุดท้ายในเดือนธันวาคมการอัปเดตดังกล่าวไม่รวมฐานโค้ด Android R QPR1 ซึ่งเป็นสาเหตุที่เจ้าของ Pixel 2 ที่ใช้ Nova Launcher v7 ไม่ได้รับประสบการณ์เช่นเดียวกับ Pixel อื่นๆ (เจ้าของ Pixel 2 สามารถไซด์โหลด Pixel Launcher เวอร์ชันใหม่กว่าซึ่งมี API จากอุปกรณ์ Pixel รุ่นใหม่กว่าได้ แต่ รายงานผู้ใช้ระบุ แอนิเมชั่นยังคงมีข้อผิดพลาดอยู่แม้ว่าจะใช้งานได้เป็นครั้งคราวก็ตาม โปรดทราบว่า Pixel Launcher สร้างขึ้นจาก Launcher3 เช่นเดียวกับตัวเรียกใช้งานสต็อกส่วนใหญ่ แต่ก็ยังมีคุณลักษณะเฉพาะบางอย่างของ Pixel ด้วย)

แล้วจะต้องทำอย่างไรจึงจะเพิ่ม API นี้ลงในอุปกรณ์ Android อื่น ๆ ได้? น่าเสียดายที่ไม่มีคำตอบง่ายๆ สำหรับเรื่องนั้น เนื่องจากเราไม่ทราบแน่ชัดว่า OEM แต่ละรายพัฒนาแอป Launcher ของตนอย่างไร ระบุว่าอย่างไร Google ควบคุมการนำทางด้วยท่าทางแบบเต็มหน้าจออย่างแน่นหนาเราสงสัยว่า OEM ส่วนใหญ่ไม่ได้แก้ไขโค้ดที่เกี่ยวข้องกับท่าทางและ/หรือ QuickStep มากนัก เว้นแต่ว่า OEM พยายามอย่างเต็มที่ที่จะคืนค่าการคอมมิต ทำลายโค้ด หรือปฏิเสธที่จะอัปเดต Launcher3 เราควรเห็น API นี้ถูกเพิ่มเข้าไปในตัวเรียกใช้งาน OEM ทุกครั้งที่มีการรีบูตที่ด้านบนของตัวเรียกใช้งาน ที่กำลังจะมาถึง แอนดรอยด์ 12 ปล่อย. ในความเป็นจริง ASUS OEM รายหนึ่งที่เราพูดคุยด้วยบอกเราว่าพวกเขาวางแผนที่จะนำ API นี้มาใช้ในการอัปเดต Android 12 เราไม่ทราบว่า Google ได้แจ้งการเปลี่ยนแปลงนี้กับ OEM แล้วหรือยัง แต่เราหวังว่า OEM จำนวนมากขึ้นจะสังเกตเห็นการเปลี่ยนแปลงนี้ และตัดสินใจรวม API ไว้ในทางแยกของ Launcher3 เพื่อปรับปรุงประสบการณ์การใช้งานบุคคลที่สาม ปืนกล

อย่างไรก็ตามงานจะไม่สิ้นสุดเพียงแค่นั้น แม้ว่าหลังจากรวม API นี้แล้ว ยังมีงานที่ต้องทำอีกมากเพื่อให้เกิดความเท่าเทียมกันระหว่างตัวเรียกใช้งานจากบุคคลที่สามและตัวเรียกใช้งาน OEM ตัวอย่างเช่น อุปกรณ์ OEM บางตัวจะกะพริบเมื่อผู้ใช้แตะหน้าจอก่อนที่ภาพเคลื่อนไหวไปยังหน้าจอหลักจะปรากฏขึ้น บางครั้ง แอปตัวเรียกใช้งานระบบจะปรากฏขึ้นแทนแอปตัวเรียกใช้งานบุคคลที่สามที่เลือก (ฉันเคยประสบเหตุการณ์นี้สองสามครั้ง) ภาพเคลื่อนไหวการเปลี่ยนแปลงที่ได้รับการปรับปรุงนั้นดี แต่ไม่มีใครอยากจัดการกับจุดบกพร่องในแอป Launcher หรือหน้าจอแอปล่าสุด ดังนั้นโค้ดท่าทางยังคงต้องการการล้างข้อมูลและ/หรือมาตรฐาน

ขอขอบคุณ Kevin Barry และ Peter Huber สำหรับความช่วยเหลือในบทความนี้!