Tags:
Node Thumbnail

ทีมวิศวกร Chrome เล่าเบื้องหลังการแก้ปัญหา Chrome บน Android เลื่อนหน้าจอแล้วไม่ลื่นเท่ากับบน iOS ซึ่งอาการเกิดเป็นช่วงๆ ไม่เกิดขึ้นสม่ำเสมอด้วย เป็นบั๊กปริศนาที่กวนใจทีมงานมานาน จึงตั้งใจสืบสวนสาเหตุว่าเกิดจากอะไรกันแน่

ทีมงานลองหาาสาเหตุหลายจุด ก่อนไปพบว่าการดักจับความเคลื่อนไหวของนิ้วบนหน้าจอ (screen displacement รูปขวา) ไม่เท่ากับความเคลื่อนไหวของนิ้วจริงๆ (finger displacement รูปซ้าย) ทำให้เมื่อนำข้อมูลนิ้วที่จับได้ไปประมวลผลจึงออกมาไม่ตรงกับนิ้วจริงๆ

No Description

ทีมงานลองค้นหาสาเหตุว่าทำไมถึงเป็นอย่างนี้ เจอสาเหตุร่วมกัน 2 ข้อ

  1. Android ดักจับความเคลื่อนไหวด้วย C++ ระดับความแม่นยำ nanosecond แต่ Chrome ใช้ฟังก์ชันระดับ Java ความแม่นยำ millisecond จึงไม่ละเอียดเท่า
  2. วิธีการดักจับของ Android เลือกอีเวนต์การเคลื่อนไหวที่แม่นยำกว่าของ Chrome ใช้การเก็บคิว FIFO ธรรมดา จึงมีโอกาสผิดพลาดสูงกว่า โดยเฉพาะบนหน้าจอที่มีอัตรารีเฟรชสูงๆ

ตัว API ของ Android ที่ดักจับความแม่นยำระดับ nanosecond ยังไม่เปิดให้แอพภายนอกเรียกใช้ ซึ่งจะเปลี่ยนแปลงใน Android 14 ที่กำลังจะออกปีนี้ (getEventTimeNanos) ระหว่างนี้ ทีมงานจึงพัฒนาฟิลเตอร์การดักจับอินพุตใหม่ที่แก้ปัญหาข้อ 2 ซึ่งได้ผลดีขึ้นมากแล้วเช่นกัน (ใครสนใจ ดูวิดีโอสาธิตเปรียบเทียบได้) การปรับปรุงนี้เริ่มใช้แล้วใน Chrome 116 แต่จะย้อนกลับไปอัพเดตให้ถึง Chrome 110 ด้วย ซึ่งจะทำให้ประสบการณ์เลื่อนหน้าจอของ Chrome บน Android เทียบเท่ากับบน iOS แล้ว

ที่มา - Chromium Blog

Get latest news from Blognone

Comments

By: api on 19 August 2023 - 09:16 #1291932

เหมือนสมัยก่อนฝั่งแอนดรอยจะเคยขิงว่าลื่นเท่า iphone แล้ว
ตกลงว่ายังสินะ

By: terdsak.s on 19 August 2023 - 09:40 #1291933 Reply to:1291932

กำลังสงสัย
1.อ่านข่าวไม่เข้าใจ
2.ตีความ chrome = android
3.ไม่เข้าใจอะไรเลยจริงๆ แต่คิดว่าเข้าใจ
ข้อไหนสักข้อนี่แหละ

By: Hoo
AndroidWindows
on 19 August 2023 - 10:30 #1291937 Reply to:1291932

คงลื่นแค่ตัว os ที่มี getEventTimeNanos ให้ใช้
ส่วนบรรดา app ที่ใช้ getEventTime ธรรมดา ก็หน้าจอสะอึกไปตามระเบียบ

By: mk
FounderAndroid
on 19 August 2023 - 10:46 #1291940 Reply to:1291932
mk's picture

ถ้าอ่านในต้นฉบับ ทีม Chrome ก็สงสัยครับว่าทำไมแอพอื่นลื่น เป็นกับแอพเราตัวเดียว

By: orbitalz
ContributorWindows PhoneAndroidUbuntu
on 19 August 2023 - 11:28 #1291945 Reply to:1291940

period

By: hisoft
ContributorWindows PhoneWindows
on 19 August 2023 - 13:20 #1291952 Reply to:1291940
hisoft's picture

😂

By: big50000
AndroidSUSEUbuntu
on 19 August 2023 - 22:59 #1291966 Reply to:1291940
big50000's picture

ผมนี่ลั่นเลย

By: pd2002 on 19 August 2023 - 10:52 #1291941

อยากให้ใช้ extensions บน desktop ได้ด้วยจังครับ firefox เค้าทำได้แล้ว

By: aeksael
ContributoriPhoneWindows PhoneAndroid
on 19 August 2023 - 11:05 #1291942
aeksael's picture

คุณพระ.....


The Last Wizard Of Century.

By: Tasksenger on 19 August 2023 - 12:13 #1291949

ปัญหาเชิงลึกทางคณิตศาสตร์เลยแหะ ใครที่เคยคิดว่าเราจะมีทศนิยมหลายตำแหน่งไว้เยอะๆ ทำไม น่าจะมีคำตอบแล้วนะ

By: maxmin on 20 August 2023 - 06:31 #1291968

ผมไม่รู้สึกอะไรเลย

By: Iamz
AndroidWindows
on 21 August 2023 - 07:27 #1292001

ไม่ได้ใช้ chrome มานานแล้วเลยไม่รู้ว่า chrome มีปัญหานี้อยู่คนเดียว