12 พฤศจิกายน 2555

[Android Dev Tips] ว่าด้วยเรื่องการติดตั้ง App จากโปรแกรมลงบนอุปกรณ์แอนดรอยด์


        บทความนี้ขอพูดถึงเรื่องการติดตั้งแอปพลิเคชันลงเครื่องแอนดรอยด์ เผื่อว่าผู้ที่หลงเข้ามาอ่านอยากจะติดตั้งลงเครื่องแอนดรอยด์บ้าง เพราะปกติที่เจ้าของบล็อกเจอมักจะติดตั้งลงบน AVD กัน ก็เลยขอพูดถึงเรื่องนี้หน่อยละกัน เพราะถ้ามีเครื่องจริงก็จะได้ทดสอบแอปพลิเคชันกันง่ายขึ้น

        ก่อนอื่นเลยก็คือให้อุปกรณ์แอนดรอยด์เปิดใช้งาน USB Debugging ก่อน สำหรับ USB Debugging ก็คือการเปิดใช้งาน ADB ซึ่งเป็นการเชื่อมต่ออีกแบบ ที่ต่างจากการเชื่อมต่อเพื่อถ่ายโอนไฟล์ในเครื่องกับคอมพิวเตอร์ โดย ADB คือโปรโตคอลที่สามารถเข้าถึงตัวระบบของแอนดรอยด์ได้ อธิบายแค่นี้ละกัน ผู้ที่หลงเข้ามาอ่านคนใดอยากรู้เพิ่มเติมก็หาอ่านเองนะ

        สำหรับบน Eclipse เวลาจะติดตั้งลงบนอุปกรณ์แอนดรอยด์ ก็จะต้องเปิดใช้งาน USB Debugging ด้วย การติดตั้งแอปพลิเคชัน ผ่านสาย USB ก็เป็นการเข้าถึงตัวระบบแอนดรอยด์ เพราะว่า Eclipse จะส่งไฟล์ไปยังอุปกรณ์แอนดรอยด์แล้วติดตั้งทันที ซึ่งจะไม่สามารถทำได้กับการเชื่อมต่อเพื่อโอนข้อมูลโอนไฟล์ปกติ ถ้าใครที่ชอบเล่นรอมโมอาจจะรู้จักกันดีอยู่แล้วเรื่อง ADB

        และนอกจากนี้การเชื่อมต่อ ADB จะทำให้สามารถดู LogCat จากมือถือได้ด้วยนะเออ ทำให้สามารถทดสอบแอปพลิเคชันบนเครื่องจริงและดู Log การทำงานได้เลย

ในการเปิดใช้งาน USB Debugging ก็จะแตกต่างกันเล็กน้อยบนแอนดรอยด์แต่ละเวอร์ชันหลัก

สำหรับ Android 2.X และ 3.X

        Settings > Applications > Development > USB Debugging





สำหรับ Android 4.X

        Settings > Developer Options



หา Developer options ไม่เจอ!!

        สำหรับ 4.1 ขึ้นไปจะพิเศษหน่อย เพราะจะหา Developer options ไม่เจอ ทั้งนี้เนื่องมาจากมี User บางคนดันเข้าไปตั้งค่าในนั้นมั่วซั่ว แล้วแก้ไม่เป็น ผู้พัฒนาก็เลยซ่อน Developer options เอาไว้ซะเลย 

        เวลาต้องการเปิดใช้ก็ให้ไปที่ About phone หรือ About tablet แล้วกดที่ Build Number 7 ครั้ง จะมีข้อความแจ้งว่าได้เปิดใช้งานแล้ว พอออกมาดูที่ Settings ก็จะเห็น Developer options แล้ว



        จากนั้นก็ให้เชื่อมต่ออุปกรณ์แอนดรอยด์เข้ากับคอมพิวเตอร์



        คอมพิวเตอร์จะทำการติดตั้งไดรเวอร์ใหม่ ไดรเวอร์ที่ว่านี้คือไดรเวอร์ของ ADB คนละตัวกับที่ใช้เวลาถ่ายโอนข้อมูลนะ



        ถ้าสามารถติดตั้งผ่าน Windows Update ได้ก็ติดตั้งไปเลย แต่ถ้าของใครติดตั้งผ่าน Windows Update ไม่ได้ ให้ลองดูที่บทความ [Android Dev Tips] รวม ADB Driver สำหรับอุปกรณ์แอนดรอยด์

        สำหรับการติดตั้งไดรเวอร์ด้วยตัวเอง ให้ดูที่บทความ [Android Dev Tips] การติดตั้ง ADB Driver แบบ Manual บน Windows


        ถ้าผู้ที่หลงเข้ามาอ่านใช้อุปกรณ์แอนดรอยด์เวอร์ชัน 4.2.2 ขึ้นไป ตัวระบบแอนดรอยด์จะมี Secure ADB อยู่ ซึ่งตัวเครื่องจะถามยืนยันก่อนว่าต้องการเชื่อมต่อผ่าน ADB กับคอมพิวเตอร์ตัวนี้หรือไม่ ให้กด OK เพื่อยืนยันก่อน ถึงจะใช้งาน ADB ได้



        ก็ถือว่าการติดตั้งไดรเวอร์ ADB เป็นอันเสร็จเรียบร้อยแล้ว ทีนี้จะมาพูดต่อถึงการติดตั้งแอปพลิเคชันจาก Eclipse ลงเครื่องบ้าง การติดตั้งลงเครื่องก็เหมือนตอนที่ติดตั้งลงบน AVD นั่นแหละ กดไอคอน Run เพื่อติดตั้งนั่นเอง



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

        แต่ทีนี้เจ้าของบล็อกมักจะไม่ชอบให้มันเลือกติดตั้งโดยอัตโนมัติ ก็จะใช้วิธีให้โปรแกรมถามก่อนว่าจะติดตั้งลงบนอุปกรณ์ตัวไหน โดยให้กดลูกศรชี้ลงที่อยู่ข้างๆไอคอน Run จะเห็นว่ามีข้อความว่า (no launch history) แปลว่ายังไม่มีโปรเจคอันไหนเคย Run



        ดังนั้นให้กดปุ่ม Run ไปรอบหนึ่งก่อน พอมากดที่ลูกศรชี้ลงอีกครั้งก็จะเห็นว่ามีชื่อโปรเจคแสดงขึ้นมาแล้ว ให้เลือกที่ Run Configurations...



        หรืออีกวิธีก็คือ คลิกขวาที่ตัวโปรเจคได้เลย แล้วเลือก Run As > Run Configuration...



        ก็จะมีหน้าต่าง Run Configuration แสดงขึ้นมา ให้เลือกแท็บ Target ที่ Deploy Target Selection Mode ให้เลือก Always prompt to pick device จากนั้นก็กด Apply แล้วปิดหน้าต่างนี้ได้เลย



        ทีนี้ทุกครั้งเวลาเรากด Run ก็จะมีหน้าต่างขึ้นมาถามว่าให้ติดตั้งลงอะไร



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



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




เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium