ในทางปฏิบัติ Sencha Touch ทำงานบน Android ได้อย่างไร [ปิด]


17

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

ภาพเคลื่อนไหวทั้งหมด (การเลื่อน, การซีดจาง ฯลฯ ) ดูเหมือนว่าจะไม่ราบรื่น คุณสามารถสังเกตเห็นได้อย่างง่ายดายว่า FPS นั้นน้อยกว่าวิดีโอ Vimeo มาก

HTC ปรารถนาเป็นโทรศัพท์ Android 2.2 รุ่นใหม่ที่ทันสมัยและทำงานด้วยฮาร์ดแวร์ที่ดีดังนั้นฉันสงสัยว่า Sencha Touch นั้น "พร้อม" สำหรับแพลตฟอร์ม Android

ใครที่มีประสบการณ์ใช้งานจริงกับ Android และ Sencha Touch

คำตอบ:


19

ฉันกำลังทำงานกับแอป Sencha Touch สำหรับ Android โดยใช้ Phonegap และผลลัพธ์ไม่น่าพอใจ ประสบการณ์ UI บนอุปกรณ์ iOS นั้นเหนือกว่า Android อย่างมาก

บนอุปกรณ์ iOS ทุกอย่างราบรื่น (ภาพหมุนเลื่อนทุกอย่าง) แต่สำหรับ Android ทุกอย่างจะล้าหลังและไม่ตอบสนอง

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

ที่น่าสนใจคือฉันยังอ่านด้วยซ้ำว่าแม้แต่แอพ Android ในตัว (แม้แต่ในหน้าจอเมนู) ไม่ได้ใช้การเร่งความเร็วด้วยฮาร์ดแวร์ เฉพาะแอพที่ใช้ OpenGL เท่านั้นที่จะใช้ประโยชน์จาก GPU ได้


ฉันรู้สึกเหมือนกันเมื่อทำการทดสอบ Sencha Touch บน HTC Desire Z ของฉัน แต่ก็รู้สึกว่าสิ่งต่าง ๆ นั้นให้ความรู้สึกของ iPhone-ish มากกว่า Android-ish อีกอย่างก็คือ - ในขณะที่เปอร์เซ็นต์ของคนที่ใช้งานอยู่ในระดับต่ำ - Sencha Touch ไม่ "ทำงาน" สำหรับฉันบน Android อีกต่อไปตั้งแต่ฉันใช้ Firefox Mobile ในขณะที่ Sencha Touch เป็นเว็บคิทเท่านั้น
zenzelezz

2
2 ปีแล้วที่ Sencha touch ยังคงผิดหวังอยู่
Kugel

มันยังคงดูด touch sencha touch เป็นชิ้นส่วนที่ไร้ค่า! มีหลายสิ่งหลายอย่างที่พวกเขาบอกว่าพวกเขาทำ แต่ไม่ใช่แม้แต่สิ่งเดียวที่พวกเขาทำอย่างถูกต้อง ... เพียงแค่ถามพวกเขาว่าพวกเขาสนับสนุนคุณสมบัติการเข้าถึงของ Android หรือ iOS และดูพวกเขาดิ้นรน!
Nav

3

จากsencha.com :

Sencha Touch กรอบแรกของจาวาสคริปต์บนมือถือ HTML5 ที่ให้คุณพัฒนาเว็บแอพมือถือที่มีรูปลักษณ์ดั้งเดิมบน iPhone และ Android

ฉันคิดว่าเหตุผลมันช้ามากเพราะแอปพลิเคชันเขียนโดยใช้ HTML5 / javascript ซึ่งเมื่อคุณคิดเป็นครั้งแรกมันยอดเยี่ยมมากเพราะทำให้ง่ายต่อการย้ายข้ามแพลตฟอร์ม ข้อเสียคือพวกเขา "ดูแล้วรู้สึก" เหมือนแอพทั่วไป แต่จริงๆแล้วไม่ใช่ ดังนั้นแทนที่จะเป็นโค้ดเนทีฟที่ทำงานอย่างรวดเร็วบนอุปกรณ์ของคุณคุณมีสิ่งที่น่าจะเป็น wrapper สำหรับเบราว์เซอร์ซึ่งโค้ดทั้งหมดเป็นมาร์กอัพ / js ซึ่งช้ากว่า ลองนึกถึงการใช้แอป cnn เทียบกับการไปที่ cnn.com ในเว็บเบราว์เซอร์ iphone มันเป็นความแตกต่างประเภทเดียวกัน นี่น่าจะเป็นสิ่งที่คุณเห็นเนื่องจากแม็คที่รวดเร็วและอีมูเลเตอร์สามารถผลักทั้งอุปกรณ์ได้ยากกว่ามาก (เว้นแต่ว่าตัวจำลองจะบีบลงจนช้าเท่ากับอุปกรณ์เนทีฟซึ่งอาจเป็น ... ตรวจสอบฉัน).


1

ฉันได้ทำมาตรฐานเล็ก ๆ ของ Sencha, JQuery mobile และ dojox.mobile บน Android emulator และโทรศัพท์โดยใช้ phonegap สำหรับแอปในชีวิตจริง สิ่งที่สำคัญที่สุดคือ dojo นั้นทำได้ง่ายกว่าทั้ง Sencha และ JQuery ซึ่งทั้งสองกำลังซบเซาจนไร้ประโยชน์อย่างสมบูรณ์แม้กับฮาร์ดแวร์ที่มีศักยภาพ

ดังนั้นสำหรับตอนนี้ฉันจะไปกับโดโจหรือเป็นเจ้าของ

ง่ายต่อการลองด้วยตัวคุณเองโดยการนำ 'งานนำเสนอ' จากกรอบที่หลากหลายและ chrome2phone พวกเขาไปยังอุปกรณ์ของคุณเอง


1
คุณเป็นคนแรกที่บอกว่า Dojo Mobile มีประสิทธิภาพเหนือกว่าเฟรมเวิร์กอื่น ๆ ในบรรดานักพัฒนาแอพมือถือทุกคนฉันรู้ว่า Dojo เป็นกฏการทำงานของกรอบมือถือที่ผิดไป ...
Steffen Müller

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

1

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

จากหมายเหตุด้านอื่น ๆ ดูเหมือนว่าโดยทั่วไปแล้ววิธีการที่ไม่ใช่ภาษาพื้นเมือง (โดยใช้ JS / HTML / CSS) สำหรับการพัฒนาแอพมือถือมักจะมีปัญหาเล็ก ๆ น้อย ๆ เกี่ยวกับประสิทธิภาพ ขณะนี้เรากำลังพิจารณาใช้ไทเทเนียมเนื่องจากเป็นโซลูชันพื้นฐานรหัสเดียวที่ให้ประสิทธิภาพการทำงานใกล้เคียงกับ Native มากขึ้น (เนื่องจากเป็นเทคนิคดั้งเดิม)


1
คุณได้ลองใช้อุปกรณ์ Android 4.0 หรือไม่? เนื่องจากมีการเร่งด้วย GPU จึงอาจทำงานได้ดีขึ้น วิธีเปิดใช้งาน: developer.android.com/guide/topics/graphics/hardware-accel.html
Drake Clarris

1
ขอบคุณสำหรับทิป. เราไม่ได้ทดสอบกับอุปกรณ์ 4.0 ใด ๆ เมื่อพิจารณาจากคำตอบของ Dean Wild ฉันคิดว่าปัญหาการเร่งความเร็วของ GPU อาจเป็นสาเหตุหลักของปัญหา ปัญหาในตอนนี้คือแม้ว่าเราจะสามารถเพิ่มประสิทธิภาพให้กับอุปกรณ์ 4.0 ได้ แต่พวกเขาก็มีส่วนเล็ก ๆ (~ 10%) ของตลาด Android ที่เราอาจจะยังคงจบลงด้วยการแก้ปัญหานอกเหนือจาก Sencha
paz

ไม่ว่าคุณจะทำอะไรกับ sencha มันจะช้าเสมอ ... เหตุผลที่โครงสร้าง dom ที่ซ้อนกันซึ่งไม่เหมาะสำหรับเบราว์เซอร์ใด ๆ
Nav

0

เราเพิ่งเปิดตัวแอพ Sencha Touch และมีปัญหาเรื่องประสิทธิภาพที่สำคัญใน Android เมื่อเทียบกับ iOS ใช้ความระมัดระวังเมื่อพยายามใช้อินเทอร์เฟซที่หนามาก

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

ทำให้ DOM มีขนาดเล็กที่สุดเท่าที่จะทำได้ ทำลายพาเนลเนื่องจากไม่ได้ใช้อีกต่อไป

เราได้เห็นพฤติกรรมการวาด () แปลก ๆ บน Android แต่นั่นอาจมาจากข้อเท็จจริงที่ว่าเราขอ CPU มากเกินไป วิธีเดียวที่จะรู้คือโปรไฟล์รหัสทั้งหมดเช่นนินยา


0

โปรดอ้างอิงถึงบทความนี้โดยทีมงาน LinkedLN Engineering เกี่ยวกับวิธีที่พวกเขาปรับปรุงประสิทธิภาพของแอพ HTML5 ของพวกเขาด้วยการเข้ารหัส DOM มือ

http://engineering.linkedin.com/linkedin-ipad-5-techniques-smooth-infinite-scrolling-html5

ในบริบทของบทความนี้ฉันเห็นสองประเด็นกับ Sencha Touch:

  1. Sencha Touch สร้าง UI ของมันโดยการแปลงวัตถุ Javascript เป็น Dom Nodes และเพิ่มเข้าไปใน Tree Dom Chrome Tools จะแสดงให้เห็นว่าการเพิ่ม DIVs และองค์ประกอบ DOM อื่น ๆ ให้กับต้นไม้ Dom ค่อนข้างสูง สิ่งนี้จะไม่ส่งผลเสียต่อประสิทธิภาพ

  2. โหนด Dom ส่วนใหญ่ใน Sencha UI สร้างขึ้นโดยรหัส Sencha API และไม่ได้มาร์กอัป หากเราเขียนโค้ดเพื่อจัดการองค์ประกอบ Dom เหล่านี้โดยตรงเราจะแน่ใจได้หรือไม่ว่ามันจะไม่สร้างผลข้างเคียงใด ๆ

ฉันได้โพสต์ข้อความค้นหานี้ในฟอรัม Sencha อย่างเป็นทางการแล้ววันนี้ จะอัปเดตคำตอบนี้พร้อมคำตอบ


1
ไม่สามารถดูว่าคุณโพสต์สิ่งนี้ใน 2011/2012 แต่ปัจจุบัน iPad / iPhone เพียงแค่ไม่มีปัญหากับ Sencha Touch มันทำงานได้อย่างไร้ที่ติ ปัญหาคือเวอร์ชั่นปัจจุบันของ Android 2,4 และอื่น ๆ translate3d เปลี่ยนแปลงเร็วจนแทบใช้ไม่ได้
Dominic Watson

0

เรากำลังทำเว็บแอปสำหรับ iOS / Android โดยใช้เฟรมเวิร์ก Sencha 2 และประสิทธิภาพการทำงานนั้นแย่มากเมื่อเทียบกับ IOS น่าเสียดายที่ตอนนี้ฉันกำลังบอกลูกค้าของฉันว่าหากพวกเขาต้องการแอปบน Android ไม่ว่าจะเป็น Native หรือ Titanium หวังว่าพวกเขาจะสามารถปรับปรุงได้ แต่ฉันจะไม่ใช้ Sencha อีกครั้งหากแพลตฟอร์มเป้าหมายเป็น Android

FYI (อุปกรณ์เป้าหมายคือ Galaxy S3)


-1

Sencha Touch + Phonegap Sucks บนอุปกรณ์ Android พิเศษถ้าคุณกำหนดเป้าหมาย 2.2 เป็นต้นไป การรวมกันนี้ใช้ได้สำหรับอุปกรณ์ประเภท G3 / Note ของ Android ลืม Sencha Touch + Phonegap บน Android หากคุณต้องการประสิทธิภาพและ UI เหมือนเจ้าของภาษา

Sencha Touch + Phonegap เหมาะสำหรับการกดปุ่มบนอุปกรณ์หลายพันเครื่องอย่างรวดเร็วโดยไม่ต้องมีการแสดงผลและประสิทธิภาพที่น่าทึ่ง

หากลูกค้าของคุณมีความเฉพาะเจาะจงมากเกี่ยวกับ UI และประสิทธิภาพและการยืนยันในโซลูชันไฮบริดเพียงแค่ให้ข้อจำกัดความรับผิดชอบและกระดาษที่ลงนามโดยเขาว่าเขาต้องการแอป Sencha Touch + Phonegap

ฉันได้เผาไม่เพียง แต่นิ้วของฉัน แต่ร่างกายทั้งหมดด้วยคอมโบที่ร้ายแรงบน Android


-1

การสาธิตอ่างครัวเดือน พ.ย. 2013 และ Sencha 2 แขวนอยู่บน HTC Android 4.0 ของฉันกรอบ html5 อื่น ๆ แสดงการตอบสนองที่ดีขึ้นเช่น XDK ของ Intel ซึ่งใช้ jqMobi

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.