Development

หลังจาก Dianne Hackborn วิศวกรกูเกิลออกมาอธิบายเหตุผลทางเทคนิคว่าทำไม Android ไม่ลื่น ก็มีคนมาร่วมแจมมากมาย ความเห็นที่น่าสนใจเป็น "อดีต" เด็กฝึกงานคนหนึ่งของกูเกิลชื่อ Andrew Munn ซึ่งเขาเคยทำงานในทีม Android เสียด้วย

ก่อนจะเข้าสู่เนื้อหาหลัก ควรดูประวัติของ Andrew Munn กันก่อนนะครับ ตอนนี้เขาเป็นนักศึกษาด้านวิศวกรรมซอฟต์แวร์ปี 3 เคยฝึกงานกับบริษัทมาแล้วหลายแห่ง ได้แก่ Amazon, Google, Xtreme Labs และล่าสุดเขาจะไปฝึกงานกับทีม Windows Phone ในเดือนมกราคมที่จะถึงนี้

Andrew บอกว่าการออกมาวิจารณ์ครั้งนี้อาจทำให้เขาโดนตั้งคำถามเรื่องสถานที่ทำงาน แต่เขาก็ยืนยันว่ารัก Android มาก มีเสื้อยืด Android ใส่ได้เกินสัปดาห์ และยินดีจะทิ้ง MacBook มากกว่า Nexus S

เขาเคยทำงานในทีม Android แต่ไม่อยู่ในส่วนของเฟรมเวิร์ค และรู้จักกับ Romain Guy ซึ่งเป็นวิศวกรของกูเกิลที่คุมเรื่องกราฟิกและแอนิเมชันใน Android

เข้าเรื่อง

Andrew Munn แสดงความเห็นว่า เหตุผลที่ Android ไม่ลื่นเท่าระบบปฏิบัติการคู่แข่ง เกิดจากปัจจัยหลายประการ

  1. ปัจจัยแรกสำคัญที่สุดคือ Android ประมวลผลกราฟิกด้วยเธร็ดหลัก (main thread) ที่มีความสำคัญระดับ "ปกติ" (normal priority) ทำให้ตอนที่ระบบต้องประมวลผลหนักๆ ไม่มีอะไรรับประกันว่าเธร็ดนี้จะทำงานได้เต็มประสิทธิภาพ โดย Andrew Munn บอกว่า iOS ใช้วิธีที่ต่างออกไปคือแยก UI thread ที่มีความสำคัญระดับพิเศษ (ดูหมายเหตุประกอบ)
  2. ปัจจัยเรื่อง hardware acceleration ซึ่งความเห็นของเขามองว่ามันช่วยได้เยอะ ต่างไปจาก Dianne Hackborn ที่บอกว่าช่วยได้ไม่เยอะ
  3. garbage collector ของ Dalvik มีปัญหาเรื่องประสิทธิภาพ ทำให้แอพบางตัวของ Android อย่างเช่น photo gallery ต้องจำกัดเฟรมเรตไว้ที่ 30fps เพราะว่าถ้ารัน 60fps จะทำให้กระตุกเวลา garbage collector ทำงาน
  4. ประสิทธิภาพของ Tegra 2 มีจำกัด โดยเฉพาะเรื่องแบนด์วิธของหน่วยความจำ และไม่มีชุดคำสั่ง NEON (เทียบได้กับ SSE ของฝั่งอินเทล สำหรับประมวลคณิตศาสตร์แบบเมทริกซ์ที่ใช้ในการเรนเดอร์กราฟิก) ปัญหานี้จะหมดไปเมื่อหน่วยประมวลผลมีประสิทธิภาพดีขึ้น
  5. วิธีการเรนเดอร์และประกอบ UI (compositing) ยังไม่มีประสิทธิภาพพอ ในกรณีของ iOS จะเรนเดอร์ภาพแล้วเก็บไว้ในหน่วยความจำ เมื่อจะใช้งานก็แค่ใช้ GPU นำภาพมาประกอบเข้าด้วยกันเท่านั้น ในขณะที่ของ Android ต้องเรนเดอร์บางส่วนของหน้าจอใหม่ทุกครั้ง
  6. Dalvik ในฐานะ virtual machine ยังไม่พัฒนาเต็มที่เหมือนกับ JVM ถึงแม้ว่าจะแก้ปัญหาของ JVM ไปหลายอย่างก็ตาม (เขาบอกว่า Swing เองก็มีปัญหาหลายอย่าง) เขายกกรณีของไมโครซอฟท์ว่าตอนแรกจะเขียน UI ของ WP7 ด้วย Silverlight เหมือนกัน แต่สุดท้ายก็เปลี่ยนใจมาเขียนแบบ native เพื่อประสิทธิภาพที่ดีกว่าแทน

Andrew Munn บอกว่าปัญหาสำคัญของ Android คือข้อแรก การเรนเดอร์ UI ด้วยเธร็ดหลัก และเธร็ดมีความสำคัญระดับปกติ ซึ่งไม่สามารถการันตีเฟรมเรตว่าจะมากน้อยแค่ไหน

เขาบอกว่าเหตุผลที่ Android นำ UI ไปประมวลผลในเธร็ดหลักต้องย้อนไปถึงรากเหง้าของตัวมันเอง ที่ถูกสร้างขึ้นมาก่อน iPhone และวางตัวไว้แข่งกับ BlackBerry ทำให้ประสิทธิภาพของการตอบสนองจอสัมผัสไม่ถูกเน้นตั้งแต่แรก (เขาบอกว่า Windows Mobile, Symbian, BlackBerry ก็เจอปัญหาเดียวกันนี้) ภายหลังพอกูเกิลปรับยุทธศาสตร์มาแข่งกับ iPhone สถาปัตยกรรมเดิมกลับยังใช้งานอยู่มาจนถึงวันนี้

Andrew ยกคำพูดของ Romain Guy (ซึ่งเป็นวิศวกรของกูเกิล) ว่า Android ทุกวันนี้เกิดจากการตัดสินใจทางเทคนิคเมื่อหลายปีก่อน และ Romain ยอมรับว่าการประมวลผล UI มีปัญหา ซึ่งทางทีมก็พยายามจะหาหนทางอื่น ๆ เพื่อปรับปรุงประสิทธิภาพของมัน

Romain บอกว่าเป็นไปได้ที่กูเกิลจะสร้าง UI toolkit ใหม่ขึ้นมาแก้ปัญหานี้ แต่ก็บอกว่าแนวทางนี้มีข้อด้อยเหมือนกัน (Romain ไม่ได้บอกว่าอะไร แต่ Andrew บอกว่าแอพต้องเขียนใหม่ทั้งหมดเพื่อรองรับ UI toolkit ตัวนี้)

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

ที่มา - +Andrew Munn

หมายเหตุ: ประเด็นเรื่องเธร็ดที่ Andrew ยกมา มีผู้รู้หลายคนบอกว่า iOS เองก็ไม่ได้แยกเธร็ดพิเศษมาประมวลผล UI เช่นกัน แต่ความต่างของการเรนเดอร์เกิดจากวิธีการพัฒนาของเจ้าของแอพเอง และนักพัฒนาบน iOS มีธรรมเนียมที่จะปรับแต่งแอพของตัวเองจนลื่นมากกว่านักพัฒนาแอพบน Android (รายละเอียดอ่านต่อกันเองตามต้นฉบับครับ)

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

ผมมีคำถามหลายข้อ
1 Android ประมวลผลกราฟิกด้วยเธร็ดหลัก (main thread) ( ผมคิดมานานแล้ว )
2 iOS ใช้วิธีที่ต่างออกไปคือแยก UI thread ที่มีความสำคัญระดับพิเศษ ( ผมก็คิดแบบนี้มานาน)
แต่มีคนโต้ว่า iOS เองก็ไม่ได้แยกเธร็ดพิเศษมาประมวลผล UI เช่นกัน (ไม่น่าจะจริงคิดเอาเอง)

ส่วนที่อ่านข้าวนี้แล้ว ร้องโอ้ " Andrew บอกว่าแอพต้องเขียนใหม่ทั้งหมดเพื่อรองรับ UI toolkit ตัวนี้ " แม่เจ้า

The iOS description here isn't quite accurate. There are several things at work:

  1. Compositing and previously set-up animations—all the stuff that involves the Core Animation rendering layer tree—do indeed happen on a background thread.

  2. Drawing new content into Core Animation layers and setting up their animations happens on the main thread. This is the same thread that user interface actions occur on.

ก็ค่อนข้างตรงตัวนะครับ ถ้าคลิ้กเข้าไปในที่มา 1. การเตรียมความพร้อมของ UI ทำใน background
2. เวลาวาดทำที่ main thread ซึ่งผมว่า make sense นะถ้าจะย้ายการวาดไปไว้ที่ background ก็ตลก ๆ อยู่ว่าถ้า user เปลี่ยนใจไม่ได้เลื่อนลงแต่ดันเลื่อนขึ้น เราจะเตรียมวาดทั้งเลื่อนขึ้น เลื่อนลงก็เปลืองแบตโดยเปล่าประโยชน์ครับ ในขณะที่ android ทุกอย่างทำบน main thread มันก็อาจจะช้าจริงๆ กว่าจะเตรียมการเบื้องต้นเสร็จ แล้วก็วาด content ต่อ
หรือถ้าผมเข้าใจผิด ถกกันได้ครับ :)

ไม่แน่ใจว่าบน Android บรรดา Buffer ทั้งหลาย จะเข้าถึงได้จากเธรดที่ไม่ใช่ Main ได้หรือเปล่า คือผมว่าการให้เธรดนึงเข้าถึงบัฟเฟอร์ที่สร้างจากเธรดอีกเธรดนึงมันอาจจะไม่ได้น่ะครับ

อย่างน้อย ๆ ก็บน Java AWT ล่ะนะ 555

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

ไม่ได้ร่วมครับ

แต่ Android Prototype เครื่องแรกสุดของโลกนี่มีคีย์บอร์ด qwerty และหน้าตาเหมือน BB + Nokia E5

แล้วก็ปรับมาเป็น Touch screen หลังจากไอโฟนเปิดตัวครับ

ก็เหตุผลเดียวกับที่ iOS กับ Windows Phone เร็วโคตรๆ นั่นแหละครับ (ขำๆ นะ :P)

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

แล้ว android ใช้ ui toolkit มั้ย เช่นพวก qt gtk+ clutter อะไรประมาณนี้ ครับ

แล้วช่วยเปรียบเทียบหน่อยผมไม่ค่อยเข้าใจ

hw <-> display driver <-> X(glx,aiglx, blah) <-> ui toolkit(qt,gtk+,clutter,blah)

ใน android เปรียบเทียบกับข้างบนได้ยังไง ยกตัวอย่างหน่อยครับ

alcanfane Wed, 07/12/2011 - 22:51

ผมใช้ Nexus S ผมว่ามันก็ลื่นโอเคแล้วนะ ไม่ได้รู้สึกอึดอัดอะไรครับ

ผมก็งงๆเหมือนกันที่เค้าว่าไม่ลื่นนี่คือพวก Low-End Device หรือเปล่า

เพราะ Android ตัวแรกของผมคือ Spica นี่ห่างไกลคำว่าลื่นไปเยอะ ทำยังไงก็ไม่ลื่น เทียบกับ iPhone Classic ต้องบอกว่าฟ้ากับเหว

แต่ Android ตัวที่สองคือ Captivate อันนี้ยอมรับว่าไม่รู้สึกว่ามันช้าเลย เทียบกับ 3GS แล้วผมไม่เห็นความแตกต่าง

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

คหสต. สำหรับคนที่ใช้ Device มาหลายตัว และไม่ Bias ครับ (เพราะไม่รู้จะ Bias ไปทำไม เชียร์ไปสุดท้ายก็ต้องเสียเงินซื้อเหมือนเดิม ไม่ได้ลดซักบาท)

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

การแก้ปัญหาด้วย hardware แลกมาด้วยความสิ้นเปลืองพลังงาน ดังที่จะเห็นว่า Android phone หลายรุ่นก็จะมีปัญหาเรื่องแบตเตอรี่หมดเร็ว

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

ส่วน Android มักจะมีจังหวะสะดุดเล็ก ๆ น้อย ๆ ให้เห็นอยู่เป็นปรกติ

+1

ให้อารมณ์เดียวกับใช้ Java App บน PC

ต่อให้เครื่องแรงส์ยังไง มันก็ต้องมีบางจังหวะที่มันหน่วงๆ หรืออึ้งๆไปแบบสังเกตได้

อย่าไปมองจากอุปกรณ์รุ่นเกือบล่าสุดที่ตัวเองถืออยู่สิครับ

คงต้องแยกที่มาของความลื่นเป็น 2 ประการ

  1. software

  2. hardware

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

ถ้าใครได้ลอง WP7 ตัวล่าง อย่าง Mozart ที่ไม่ได้มีฮาร์ดแวร์โดดเด่นอะไร จะรู้ได้เลยว่ามันลื่นมาก!!

Nexus S นี่ออกมาปีนึงแล้วนะครับ ผมก็ไม่คิดว่ามันจะใหม่สักเท่าไร

พอยต์ของผมคือ ถึงมันจะออกมานานแล้ว แต่มันก็ยังโอเคดี ผมไม่ได้รู้สึกว่ามันกระตุก

วันแรกที่ iPhone classic ออก ผมก็คิดว่ามันโคตรลื่นเลย แต่มาวันนี้ผมว่า มันก็ไม่ลื่นสักเท่าไรแล้ว เทียบกับ iPhone 4 มันก็มีกระตุก ๆ เหมือนกัน ถึงมันจะรัน Software ตัวเก่าก็ตาม ซึ่ง Android ก็คงจะเปนไปในทิศทางเดียวกัน คือ อุปกรณ์ใหม่ ๆ ลื่นหัวแตก แต่ตัวเก่า มีสะดุดนิด ๆ ถึงมาก เพราะจำนวนน Device มันเยอะกว่า

ทั้งนี้ทั้งนั้นก็ตามที่คุณ PapaSek บอกมา คือ Hardware+Software เปลี่ยนไปตามเวลา

PaPaSEK Sun, 11/12/2011 - 22:25

In reply to by alcanfane

ถ้าจะเทียบ ก็เทียบกับอุปกรณ์ที่อยู่ในระดับเดียวกันครับ การเอา Nexus S ไปเทียบกับ iPhone Classic มันดูลำเอียงไปหน่อยมั้ยครับ?

  • Nexus S ตัวรองใหม่จากกูเกิล

  • iPhone Classic ตัวแรกจากแอปเปิล

เทียบแบบนี้ถ้าผมเป็นเจ้าของแอปเปิลผมน้ำตาไหลท่วมกทม. แน่ๆ ครับ

ในความเป็นจริงแล้ว Android เคยรื้อเครื่องในมาแล้วรอบนึงตอนขึ้นเป็น 2.1 (หรือ 2.2 จำไม่ได้...) ตอนนั้นความเร็วของ UI พุ่งขึ้นมาแบบติดจรวด ซึ่งผมคิดว่าด้วยฮาร์ดวร์ระดับเดียวกัน มันน่าจะเร็วได้มากกว่านี้อีก

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

ปล.Android เร็วส์

แรงแค่ใหนก็มีบางจังหวะที่สะดุดครับ ล่าสุดได้ลองเล่น HTC Sensation มากับมือครับ

Spec ก็รู้ๆกันครับ แรงระดับต้นๆ ตอนใช้งานยังมีกระตุกเลย (บางจังหวะ) ในขณะที่ลองเทียบกับ iPad2 ความลื่นไหลต่างกันแบบรู้สึกได้เลย มันต่างกันจริงๆ ขอบอก

ถ้าในบรรดาอุปกรณ์รุ่นราวคราวเดียวกันก็คงต้องใช้ให้ Samsung Galaxy S II นะครับ

เพราะผมลอง

  • LG Optimus 2X

  • HTC Sensation

  • Samsung Galaxy S II

  • Motorola Atrix (ใช้อยู่ปัจจุบัน)

ผมว่า S II นี่ลื่นสุดละในรุ่นเดียวกัน ณ ตอนนั้น

ผมก็สงสัยอยู่ ทำไมเด็กฝึกงานรู้เรื่องดีขนาดนั้น ไม่เหมือนของไทย เว็บไหนมีปัญหา โทษเด็กฝึกงานอย่างเดียว 55

งานของเด็กฝึกงานคนไทย คือ ถ่ายเอกสาร ชงกาแฟ ให้พนักกงาน (ของจะได้ไม่เสีย)
งานของเด็กฝึกงานฝรั่ง คือ ทำทุกอย่างแทนพนักงาน (จะได้ประหยัด)

ถ้าคิดว่าเป็นเด็กฝึกงาน มันก็ดูธรรมดา

แต่ถ้าคิดว่าเป็นเด็กฝึกงานที่กูเกิล มันก็ต้องมีอะไรพิเศษพอที่กูเกิลจะให้เข้าไปฝึกงานไงครับ

ขั้นตอนการสัมภาษณ์ของ Intern ของ Google แทบไม่แตกต่างกับ Full-time ครับ และเป็นที่รู้กันว่าถ้าไม่เจ๋งจริงเข้า Google ยากครับ

แม่บ้าน : มันไม่ลื่นหรอก ป้าถูในออฟฟิตทุกวัน

คนสวน : ลุงฉีดน้ำรดต้นไม้ทุกวัน มันจะไม่ลื่นได้ไง ลุงยังเคยลื่นหัวแตกมาแล้วเลย

znop Wed, 07/12/2011 - 23:39

windows เองก็งมอยู่กับโค๊ดเก่าๆอยู่ไม่น้อยไม่ใช่รึ ผ่านไปกี่เวอร์ชั่นล่ะกว่าจะปรับปรุงมาถึงทุกวันนี้

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

ผมว่ามันลื่นนะครับ Optimus Black ของผม ตกพื้นมา 3-4 ครั้งแล้ว

เฮ้อ....ไม่รู้จะลื่นไปไหนนักหนา

(๑'_'๑) ทำหน้าแอ๊บแบ๊วแล้วจากไปอย่างเนียนๆ

ของผมลื่นขนาดที่ว่าเอื้อมนิ้วไป แต่ยังไม่ได้แตะโดนหน้าจอ Apps มันก็เด้งเปิดขึ้นมาเองก่อนเลย

สุดยอดมาก ที่ใหนได้โคนนิ้วมันไปโดนอีกโปรแกรมนึง เสียเวลากด Back อีก กดทีเดียวมันก็ไม่ออก พอกดหลายๆทีมันกลับมาหน้า Home อีกแล้ว อะไรของมันว้า... (ถ้ามีค้อนไกล้ๆ มือ จะหาเรื่องซื้อใหม่ซักที)

สังเกตว่า Munn บอกว่า Android วางไว้สู้กับ BlackBerry ซื้งมาก่อน iOs เป็นการบอกว่านัยๆ ว่า Android ไม่ได้ลอก iOs นะเฟ้ย (หรือเปล่า)

kurosame Thu, 08/12/2011 - 10:57

มี
Java เร็วส์
แล้วก็ต้องมี
Android ลื่นส์

"garbage collector ของ Dalvik มีปัญหาเรื่องประสิทธิภาพ ทำให้แอพบางตัวของ Android อย่างเช่น photo gallery ต้องจำกัดเฟรมเรตไว้ที่ 30fps เพราะว่าถ้ารัน 60fps จะทำให้กระตุกเวลา garbage collector ทำงาน"

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

ขอบคุณครับ ตอนนี้ผมก็ใช้ android-ndk-r6 อยู่ครับ เพียงแต่ยังไม่ได้อัพเดทเป็น r7 เดี๋ยวอาจจะต้องกลับไปลองทดสอบใหม่อีกครั้ง

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

Andrew ยกคำพูดของ Romain Guy (ซึ่งเป็นวิศวกรของกูเกิล) ว่า Android ทุกวันีน้

ทุกวันีน้ => ทุกวันนี้

ป.ล. รัก Android มากน้อยขนาดไหน

เค้าวัดกันตรงที่มีเสื้อยืด Android ใส่ได้เกินสัปดาห์เหรอคะ? = ="

มันก็คงต้องแก้ Framework ถ้ายังหาวิธีแก้ขัดไปไม่ได้ แต่จริงๆ แล้ว Galaxy Nexus ก็ลื่นขึ้นเยอะมากแล้วนะ