Skip to main content

Linaro ปรับแต่ง Android จนมีประสิทธิภาพดีขึ้น 30 ถึง 100 เปอร์เซ็น


Linaro เป็นโครงการที่ไม่แสวงหาผลกำไร ที่ถูกก่อตั้งขึ้นโดยบริษัทฮาร์ดแวร์และซอฟต์แวร์ ซึ่งประกอบไปด้วย ARM, Samsung, TI (Texas Instruments), Canonical (ผู้ผลิต Ubuntu) และอื่นๆ โดย Linaro เป็นโครงการพัฒนาประสิทธิภาพ Linux บนสถาปัตยกรรม ARM โดยจะเน้นในเรื่องการดึงประสิทธิภาพของฮาร์ดแวร์ออกมาให้มากที่สุด

Linaro เปิดเผยว่า ได้ทำการปรับแต่ง Ice Cream Sanwich จนประสิทธิภาพดีขึ้นตั้งแต่ 30 ถึง 100 เปอร์เซ็นตามแต่ละบททดสอบ โดยการทดสอบในวิดีโอด้านบน ทาง Linaro ใช้บอร์ดพัฒนาสำหรับ Androidจาก Texas Instruments (TI) Pandaboard ซึ่งใช้ชิปเซ็ตของ TI OMAP4430 ซึ่งเป็นฮาร์ดแวร์ตัวเดียวกับ Galaxy Nexus

หลังจากนั้นไม่นานทีม CyanogenMod ไม่รอช้าที่จะเอา Source Code จาก Linaro ผนวกเข้ากับ CyanogenMod ROM
 
นอกจาก CyanogenMod จะผนวก Source Code จาก Linaro เข้าไปแล้ว ทาง Google เองก็ได้นำ Source Code บางส่วนผนวกเข้าไปใน AOSP แล้วเช่นกัน และจากการทดลองดูเหมือนว่ายังไม่พบปัญหาอะไร (จากการเปิดเผยของ Jean-Baptiste Queru ซึ่งเป็นวิศวกรของ Google ที่ออกมาตอบคำถามเกี่ยวกับการส่ง Source Code ขึ้นไปบน AOSP ของ Linaro)


ซึ่งไม่น่าแปลกใจที่โครงการ Linaro จะมีโปรเจ็คที่เกี่ยวกับ Android ถ้าเราจำกันได้ ข่าวที่ Canonical เปิดตัว Ubuntu บน Android ซึ่ง Canonical เป็นหนึ่งในผู้สนับสนุนของ Linaro คงจะได้เห็นการปรับปรุงนี้ใน Ubuntu บน Android แน่นอน

ที่มา ars technica ผ่าน blognone

ปล. กว่าจะได้ใช้จริงๆ (จาก Google) ท่าทางยังคงอีกนาน ถ้าอยากจะใช้เร็วๆ คงต้องรอ CyanogenMod หรือ Custom Rom อื่นๆ ที่พัฒนามาจาก AOSP น่าจะเร็วกว่า

Comments

Popular posts from this blog

ลองเล่นและเรียนรู้พื้นฐานขั้นต้นของ Spring Framework

** สำหรับใครที่ไม่เคยเรียนรู้ในด้านของ Java EE หรือ J2EE อาจจะมึนงงกับศัพท์หน่อยครับ ทำไมต้อง Spring Spring เป็น framework ที่นิยมมากในการนำไปสร้างระบบในระดับ enterprise ในเริ่มแรกที่ Spring เกิดมา มีจุดมุ่งหมายเพื่อที่จะมาแทนที่มาตรฐานของ Java อย่าง J2EE (Java 2 Enterprise Edition) ที่มันทั้งหน่วงทั้งอืดและยุ่งยาก โดยเฉพาะในส่วนของ EJB (Enterprise Java Bean) ที่ถือว่าเป็นฝันร้ายของนักพัฒนา ทำให้กูรูสาย Java ในช่วงนั้นถึงกับแนะนำว่า ถ้าจำเป็นที่ต้องพัฒนาระบบด้วย J2EE จงอย่าใช้ EJB ถึงขั้นถึงกับมีหนังสือแนะแนวทางการพัฒนาระบบ J2EE โดยไม่ใช้ EJB อย่างไรก็ตามทาง Sun ผู้เป็นเจ้าของ Java ในสมัยนั้น ถึงกับต้องมาล้างระบบ J2EE ใหม่ในปี 2006 จัดการใน EJB ให้ใช้ง่ายขึ้น มีประสิทธิภาพมากขึ้น และมีการเปลี่ยนชื่อจาก J2EE เป็น Java EE (Java Enterprise Edition) เพื่อลบภาพอันเลวร้ายของเดิมให้หมด และได้มีการนำฟีเจอร์เด็ดๆ ของ open source framework หลายๆ ตัว อย่างเช่นแกนหลักของ Spring อย่าง IoC (Inversion of Control) หรือ OR Mapping (Object Relational Mapping) ที่เป็นที่นิยมอย่าง Hibernate แต่ก็ไ...

ลองเล่น SonarQube คลื่นโซนาร์ช่วยตรวจสอบคุณภาพของ code

SonarQube  คือเครื่องมือช่วยตรวจสอบคุณภาพของ source code ช่วยหาข้อบกพร่องใน source code ไม่ว่าจะเป็น Bug ที่น่าจะเกิดขึ้น ช่องโหว่ทางด้านความปลอดภัยหรือกลิ่นไม่ดีใน source code ของเรา (Code Smell) และ ช่วยตรวจสอบเราเขียน code ทดสอบครอบคลุมหรือดีแล้วยังยัง (code coverage) Code Smell ไม่ได้ใช้วัดว่า source code นี้สามารถทำงานได้ถูกต้อง มี bug หรือช่องโหว่หรือไม่ แต่ Code Smell ใช้วัดถึงคุณภาพของการออกแบบ เพื่อตรวจสอบว่า source code ที่เป็นอยู่ในปัจจุบันจะสามารถต่อเติม แก้ไขหรือทดสอบได้ง่ายหรือไม่ โดยหลักเกณฑ์ที่นำมาใช้วัดในส่วนของ Code Smell คือ ความซ้ำซ้อนของ code มี code แบบเดียวกันไปซ้ำกันในไฟล์ไหนบ้าง ตรวจสอบเงื่อนไขใน if ให้ ว่าเงื่อนไขตรงนี้มันมีโอกาสเป็นไปได้ไหม เพราะบางทีเงื่อนไขที่เราเขียนขึ้นมาเพื่อดักไว้ในบางครั้งมันแทบจะไม่มีโอกาสที่เวลามันทำงานแล้วเข้าเงื่อนไขในส่วนนั้น เป็นต้น สามารถไปอ่านรายละเอียดเพิ่มเติมได้ที่นี่ http://www.somkiat.cc/code-smell-internal-class/ นอกจาก SonarQube จะสามารถบอกถึงคุณภาพของ source code เราได้แล้ว ยังสามารถใช้ในการแจกแจงง...

Inversion of Control และ Dependency Injection

Inversion of Control (IoC) คืออะไร IoC เป็นทฤษฏีที่ว่าด้วย การลดความผูกมัด (dependency) กันในระหว่าง module เพื่อให้ application ของเราแก้ไข (maintain) ต่อเติม (extensible) หรือทดสอบ (test) ได้ง่ายขึ้น ซึ่งเอาจริงๆ IoC เป็นอะไรที่ทำให้เราสับสนและงุนงงมากๆ ว่ามันคืออะไร หลายๆ คนจึงยกให้ว่า IoC คือ Dependency Injection (DI) ซึ่งจริงๆ มันก็ไม่ถูกซะทีเดียว  Dependency คืออะไร Dependency คือการผูกมัดที่เกิดขึ้นในระบบ เมื่อ module นึงมีการเรียกใช้อีก module นึงด้วยการอ้างอิง (reference) ตรงๆ แล้วอะไรที่เรียกว่าการ อ้างอิง (Reference) แบบตรงๆ   อย่างภาพ diagram ด้านบน class LogEngine มีการเรียกใช้ ConsoleLog โดยตรง ซึ่งมองผ่าน diagram อาจจะไม่เห็นภาพลองดู code กัน public class ConsoleLog { public void openLog(){ //do something to open log } public void log(String message){ //do something to log } public void closeLog(){ //do something to close log } } public class LogEngine { private ConsoleLog log; public LogEng...