วิวัฒนาการของ Runtime ใน Android [Geek Alert]

เนื้อหานี้มีความ Geek สูง ไม่เหมาะกับผู้ใช้แอนดรอยด์ทั่วๆไป เพราะนี่คือเบื้องหลังการทำงานของ Android OS ที่อยู่ในฝั่งของนักพัฒนา ดังนั้นอย่าแปลกใจถ้าอ่านเนื้อหานี้แล้วไม่เข้าใจ แต่ถ้าผู้อ่านอยากจะรู้ว่าจริงๆแล้วเบื้องหลังของแอนดรอยด์นั้นเป็นยังไงบ้าง ขอแนะนำให้ลองอ่านดูครับ ผมพยายามเขียนให้ผู้อ่านทั่วๆไปเข้าใจได้ง่ายมากที่สุดเท่าที่ทำได้แล้วนะ Runtime คือหัวใจสำคัญในการทำงานของ Android OS แอนดรอยด์นั้นถูกออกแบบมาให้ทำงานในลักษณะของ Virtual Machine ซึ่งทุกวันนี้นักพัฒนาแอนดรอยด์ต่างเขียนแอปพลิเคชันขึ้นมาด้วยภาษา Java หรือ Kotlin แต่ว่าภาษาเหล่านั้นไม่ได้ถูกนำไปใช้งานได้ทันที เพราะจริงๆแล้วการที่ Android จะเอาโค้ดที่นักพัฒนาเขียนขึ้นมาไปเรียกใช้งานได้นั้นจะต้องผ่านขั้นตอนการแปลงโค้ดที่เขียนด้วยภาษาขั้นสูงให้กลายเป็นภาษาที่ Android OS เข้าใจเสียก่อน ซึ่งเป็นขั้นตอนการแปลงโค้ดให้กลายเป็นสิ่งที่เรียกว่า Bytecode นั่นเอง ถ้าดูจากภาพข้างบนก็จะเห็นว่าโค้ดที่นักพัฒนาเขียนขึ้นมานั้นอยู่ในรูปของไฟล์ .java (ถ้าเขียนด้วยภาษา Kotlin จะเป็น .kt) ซึ่งโค้ดดังกล่าวจะถูกแปลงให้เป็น .class แทน แล้วเอาไฟล์ .class ทั้งหมดที่นักพัฒนาเขียนขึ้นมารวมกันเพื่อทำเป็นไฟล์ที่มีชื่อว่า .dex และสุดท้ายก็จะถูกยัดไว้ในไฟล์ APK รวมกับไฟล์อื่นๆนั่นเอง ถ้าผู้อ่านคนไหนเคยลองแงะไฟล์ APK ก็จะพบว่ามี .dex อยู่ด้วย นั่นล่ะครับ … Continue reading วิวัฒนาการของ Runtime ใน Android [Geek Alert]