Mike Shaver หัวหน้าฝ่าย Mobile Engineer ของเฟซบุ๊กเล่าเบื้องหลังความร่วมมือของเฟซบุ๊กกับกูเกิล ในการแก้บั๊กของ Android 2.3 Gingerbread
Shaver เล่าว่าระหว่างการพัฒนา Facebook for Android ทางทีมวิศวกรของบริษัทก็พบข้อจำกัดของ Dalvik ที่ใช้ใน Android 2.3 ว่ารองรับจำนวนเมธอดแค่ 3 ล้านเมธอดเท่านั้น และเฟซบุ๊กไม่สามารถเพิ่มฟีเจอร์ให้แอพของตัวเองได้ ถ้ายังอยากให้แอพรันได้บน Android 2.3 อยู่
ทางออกที่เฟซบุ๊กเลือกคือติดต่อไปยังกูเกิลเพื่อร่วมกันแก้บั๊กใน Dalvik ซึ่งก็ได้รับความร่วมมือจากกูเกิลด้วยดี กูเกิลพิจารณาแพตช์ของเฟซบุ๊ก (ซึ่งมีความยาวเพียง 6 บรรทัด) ไม่นานแล้วนำไปใช้ทันที ทำให้ทั้งสองบริษัทสามารถแก้ปัญหาให้ลุล่วงไปได้
ที่มา - TechCrunch
Comments
ข่าวนี้สอนให้รู้ว่า การเจรจา ดีกว่านั่งแก้ปัญหาคนเดียว ตะลึ่งตึ่งโป๊ะ!
ถ้าแอพคุณดังพอพอ เราจะแก้ให้ครับ ^ ^
แต่ปล แอพนี่ซดแรมมากมาย
อยากเห็น 6 บรรทัดนั้นแฮะ ต้นข่าวก็ไม่มี >/<
FB.Trojan.A2.3.apk
กดดาวน์โหลดไม่ได้ครับ
Log.i("PATCH FROM FB", "Don't trust this code. It's bug. LOL");
0-o
LOL
if( VERSION >=2.3 )
{
const dalvik.config.limit_method = 4000000;
}
else{
}
6 บรรทัดพอดี
อันนี้รายละเอียดฉบับเต็มครับ :)
under-the-hood-dalvik-patch-for-facebook-for-android
ขอบคุณมากครับ 6 บรรทัดที่ว่านี่ไม่ได้ติดกันนะ
หล่อเลย
คำถามกลับไปยัง facebook คือ ถ้า app คุณใหญ่ขนาดมี method เกิน ทำไมคุณไม่ออกแบบใหม่ให้เล็กลงคร๊าบ
ผลจาก patch ทำให้แต่ละ vm ที่รันขึ้นมาต้องจองเนื้อที่ buffer สำหรับเก็บรายการ method เพิ่มจาก 5MB เป็น 8MB
1 app = 1 vm (ใช่ไหม?)
แล้วมือถือที่ยังรัน 2.3 อยู่นั่นเพราะว่ามี spec จำกัด คือ RAM น้อยมิใช่หรือ? (256 - 512MB เหลือใช้จริง 70 - 380MB)
--
But for some reason it failed on the Samsung Galaxy S II...
The most popular Gingerbread phone...
Of all time...
-*-
WE ARE THE 99%
แยก FB messenger ออกมาเป็นอีก app นึงอาจจะง่ายกว่านะ
pittaya.com
...ผมนึกภาพ app ที่มี 3 ล้าน method ไม่ออกครับ