ทีมวิศวกร Chrome เล่าเบื้องหลังการแก้ปัญหา Chrome บน Android เลื่อนหน้าจอแล้วไม่ลื่นเท่ากับบน iOS ซึ่งอาการเกิดเป็นช่วงๆ ไม่เกิดขึ้นสม่ำเสมอด้วย เป็นบั๊กปริศนาที่กวนใจทีมงานมานาน จึงตั้งใจสืบสวนสาเหตุว่าเกิดจากอะไรกันแน่
ทีมงานลองหาาสาเหตุหลายจุด ก่อนไปพบว่าการดักจับความเคลื่อนไหวของนิ้วบนหน้าจอ (screen displacement รูปขวา) ไม่เท่ากับความเคลื่อนไหวของนิ้วจริงๆ (finger displacement รูปซ้าย) ทำให้เมื่อนำข้อมูลนิ้วที่จับได้ไปประมวลผลจึงออกมาไม่ตรงกับนิ้วจริงๆ
ทีมงานลองค้นหาสาเหตุว่าทำไมถึงเป็นอย่างนี้ เจอสาเหตุร่วมกัน 2 ข้อ
ตัว API ของ Android ที่ดักจับความแม่นยำระดับ nanosecond ยังไม่เปิดให้แอพภายนอกเรียกใช้ ซึ่งจะเปลี่ยนแปลงใน Android 14 ที่กำลังจะออกปีนี้ (getEventTimeNanos) ระหว่างนี้ ทีมงานจึงพัฒนาฟิลเตอร์การดักจับอินพุตใหม่ที่แก้ปัญหาข้อ 2 ซึ่งได้ผลดีขึ้นมากแล้วเช่นกัน (ใครสนใจ ดูวิดีโอสาธิตเปรียบเทียบได้) การปรับปรุงนี้เริ่มใช้แล้วใน Chrome 116 แต่จะย้อนกลับไปอัพเดตให้ถึง Chrome 110 ด้วย ซึ่งจะทำให้ประสบการณ์เลื่อนหน้าจอของ Chrome บน Android เทียบเท่ากับบน iOS แล้ว
ที่มา - Chromium Blog
Comments
เหมือนสมัยก่อนฝั่งแอนดรอยจะเคยขิงว่าลื่นเท่า iphone แล้ว
ตกลงว่ายังสินะ
กำลังสงสัย
1.อ่านข่าวไม่เข้าใจ
2.ตีความ chrome = android
3.ไม่เข้าใจอะไรเลยจริงๆ แต่คิดว่าเข้าใจ
ข้อไหนสักข้อนี่แหละ
คงลื่นแค่ตัว os ที่มี getEventTimeNanos ให้ใช้
ส่วนบรรดา app ที่ใช้ getEventTime ธรรมดา ก็หน้าจอสะอึกไปตามระเบียบ
ถ้าอ่านในต้นฉบับ ทีม Chrome ก็สงสัยครับว่าทำไมแอพอื่นลื่น เป็นกับแอพเราตัวเดียว
period
😂
ผมนี่ลั่นเลย
อยากให้ใช้ extensions บน desktop ได้ด้วยจังครับ firefox เค้าทำได้แล้ว
คุณพระ.....
The Last Wizard Of Century.
ปัญหาเชิงลึกทางคณิตศาสตร์เลยแหะ ใครที่เคยคิดว่าเราจะมีทศนิยมหลายตำแหน่งไว้เยอะๆ ทำไม น่าจะมีคำตอบแล้วนะ
ผมไม่รู้สึกอะไรเลย
ไม่ได้ใช้ chrome มานานแล้วเลยไม่รู้ว่า chrome มีปัญหานี้อยู่คนเดียว