Embedded Android Development
Total Page:16
File Type:pdf, Size:1020Kb
EMBEDDED ANDROID DEVELOPMENT ส เ ส น ท า ง น ก พ ฒ น า วรฬห ศรบรรกษ วศวกรรมระบบสมองกลฝงตว ภาควชาวศวกรรมไฟฟา คณะวศวกรรมศาสตร มหาวทยาลยบรพา สนบสนนโดย สนกงานพฒนาวทยาศาสตรและเทคโนโลยแหงชาต สนกงานคณะกรรมการสงเสรมการลงทน และ สมาคมสมองกลฝงตวไทย EMBEDDED ANDROID DEVELOPMENT จดทโดย ผศ. วรฬห ศรบรรกษ ตดตอ : 169 ภาควชาวศวกรรมไฟฟา คณะวศวกรรมศาสตร มหาวทยาลยบรพา ถนนลงหาดบางแสน ตบลแสนสข อเภอเมองชลบร จงหวดชลบร 20131 โทรศพท 0-3810-2222 ตอ 3380-82 ตอ 203 โทรสาร 0-3874-5806 อเมล [email protected] ขอมลทางบรรณานกรมของสนกหอสมดแหงชาต : วรฬห ศรบรรกษ. Embedded Android Development.-- : วรฬห ศรบรรกษ, 2557. 397 หนา. 1. ระบบสมองกลฝงตว 2. ระบบปฏบตการลนกซ 3. แอนดรอยด I. ชอเรอง. ISBN (e-book) : 978-616-361-117-8 จดจหนายโดย : อาคารทซไอเอฟ ทาวเวอร ชน 19 เลขท 1858/87-90 ถนนบางนา-ตราด แขวงบางนา เขตบางนา กรงเทพฯ 10260 โทรศพท 0-2739-8000 หนงสอ eBook เลมนอนญาตใหใชไดตามสญญาอนญาตครเอทฟคอมมอนส # ####### แสดงทมา-ไมดดแปลง-ไมใชเพอการคา (เผยแพรฟร) 3.0 ประเทศไทย คนยม หนังสือเกี่ยวกับความรู้ทางด้านระบบสมองกลฝังตัว (Embedded Systems) ที่เราพบโดยทั่วไปมัก จะเป็นหนังสือเกี่ยวกับไมโครคอนโทรเลอร์ ที่เน้นให้เข้าใจฮาร์ดแวร์และการเขียนโปรแกรมแบบง่ายๆ ซึ่ง ปัญหาหนึ่งที่ตามมาคือผู้สนใจหรือผู้ที่อยากจะเป็นนักพัฒนาไม่สามารถจะทำระบบที่ซับซ้อนได้ (เพื่อให้ ใช้งานได้จริง) หรือการทำ User Interface ก็ทำได้ยากมากต้องใช้เวลามากเป็นต้น ปัจจุบันแนวทางการพัฒนาระบบสมองกลฝังตัวเริ่มเปลี่ยนเป็นทำงานต่อยอดจากแพลตฟอร์มเพื่อ ช่วยลดเวลาการทำฮาร์ดแวร์ลง เช่น ไม่ต้องซื้อชิ้นส่วนมาประกอบเองแต่ซื้อบอร์ดมาใช้เลย นอกจากนั้น การพัฒนาโปรแกรมก็ไม่จำเป็นต้องเริ่มใหม่ทั้งหมด แต่เริ่มจากระบบปฏิบัติการขนาดเล็กและโปรแกรม ฟังชั่นสนับสนุนต่างๆ ทำให้การพัฒนาในลักษณะนี้สามารถเน้นความคิดสร้างสรรค์ใหม่ๆโดยมีการทำงาน ที่ซับซ้อนได้อย่างรวดเร็ว นอกจากนั้น อุปกรณ์เช่น Smart Phone หรือ Tablet มีการกระจายตัวอย่าง รวดเร็ว มีขีดความสามารถสูงรวมถึงมีเซนเซอร์และความสามารถสื่อสารต่างๆครบถ้วน จึงส่งเสริมให้เกิด การเขียนโปรแกรมประยุกต์ที่ดีๆอย่างมากมาย หรือถูกนำเป็นอุปกรณ์ร่วมกับระบบฮาร์ดแวร์อื่นๆได้ อย่างดี Smart Phone หรือ Tablet ที่สัดส่วนการครอบครองตลาดมากที่สุดคือระบบปฏิบัติการแอน ดรอยด์ ซึ่งมีสัดส่วนประมาณ 56% ตามด้วยระบบปฏิบัติการ iOS ซึ่งมีสัดส่วนประมาณ 22% ดังนั้นการ เข้าใจและสามารถพัฒนาบนระบบแอนดรอยด์ให้เก่งและชำนาญเป็นเรื่องที่จำเป็นมาก หนังสือ “Embedded Android Development สู่เส้นทางนักพัฒนา" ที่เขียนโดย อ.วิรุฬห์ ศรีบริรักษ์ นี้นับว่ามีความโดดเด่นมากทั้งในแง่วิชาการ ประวัติศาสตร์ และการนำไปปฏิบัติจริง สำหรับ ระบบปฏิบัติการแอนดรอยด์มีรากเง้าการพัฒนาจากระบบปฏิบัติการลีนุกซ์และมาจากระบบปฏิบัติการ ยูนิกซ์ หนังสือเล่มนี้ก็บรรยายที่มาที่ไปให้ผู้สนใจโดยเฉพาะนักพัฒนาได้ซาบซึ้ง กับประวัติความเป็นมา ละเอียดช่วยกระตุ้นความอยากเป็นนักพัฒนาระบบสมองกลฝังตัวได้อย่างดี หนังสือเล่มนี้มุ่งสร้างนักพัฒนารุ่นใหม่ให้เริ่มเดินด้วยตนเองได้หรือเพื่อเป็นพี่เลี้ยงที่จุดเริ่มเท่านั้น ซึ่งจำเป็นมาก นักพัฒนาเปรียบเหมือนนกน้อยที่เริ่มหัดบินซึ่งจริงๆแล้ว นกทุกตัวมีวิญญาณที่จะบินเองได้ อยู่แล้ว ขอให้มีโอกาสให้เริ่มได้บิน ผมเห็นว่าหนังสือเล่มนี้จะมอบโอกาสให้ผู้ที่สนใจ เป็นนักพัฒนาระบบสมองกลฝังตัว แอนดรอยด์ สามารถเริ่มบินในโลกแอนดรอยด์ได้อย่างมีอิสระและสร้างสรรค์สิ่งใหม่ๆได้ครับ ดร. พันธ์ศักดิ์ ศิริรัชตพงษ์ ผู้อำนวยการศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC) FOREWORD I am honoured to be writing the forward for Ajarn Wiroon Sriborrirux’s new book. I have admired Ajarn Wiroon for a long time as one of the leaders and mentors in the embedded systems community in Thailand. He is well known and widely respected in terms of his generousity in sharing his deep technical knowledge, as a teacher, a profes- sional consultant, an advisor to startup companies and as a colleague. It is very fitting for him to be writing this book as a way to continue to share his knowledge with our community in order to keep advancing Thailand forward in the technology field. The topic of this book, “Embedded Android Development”, is incredibly timely, given the newest developments in terms of the Internet of Things (IOT), cyberphysical trend and the move to a “post-PC era”, or what we can call the “embedded systems era” or “device era”. Stage 1 of the “embedded systems era” (2000-2015) was about connectivity. We saw the rise of Ubiquitous Computing or Universal Communicator led by mobile phone and smart phones. By putting a very powerful personal computing and communication device into the hands of a major part of the world’s population, this stage built up an important infrastructure for the IOT. From 2010-2020, we are seeing Stage 2 of this era, with IOT being the keyword of this decade. We will see a rising need to make things “smart”. The challenge is not just in the technology, but rather in creating innovation or value creation that utilises infor- mation or knowledge gathered from connected devices. CISCO predicted that the value created by the use of IOT is expected to reach $14 trillion by 2020 which is only a few years from now. This means tremendous opportunity for the development community. Within this context, Embedded Android has become very popular in all types of devices requiring user interface such as measurement instruments, kiosk, access control, payment, health monitor, wearable devices, and cars. We are now currently only at the beginning of IOT innovation race, and I believe that we’ll be seeing a lot of exciting in- novations utilising Embedded Android in the next few years. I am confident that this book should be very useful for key courses such as Unix Systems Programming or Embedded Systems Development. This book should also serve as a very good reference for students working on senior project related to advance em- bedded systems and device development. These days, students learn a lot of theory but have little practical skills, which makes it difficult for them to meet workforce re- quirements. It is refreshing to see a book with a practical knowledge focus that en- hances development skills. It fills a key gap in this field, and particularly in Thailand. Assistant Professor Apinetr Unakul President of Thai Embedded Systems Association (TESA) คน หนังสือ Embedded Android Development เล่มนี้ได้รับการสนับสนุนเงินทุนจากศูนย์ เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC) สำนักงานพัฒนาวิทยาศาสตร์และ เทคโนโลยีแห่งชาติ (สวทช.) สำนักงานคณะกรรมการส่งเสริมการลงทุน (BOI) และสมาคมสมองกลฝังตัว ไทย (TESA) เพื่อนำไปใช้ประโยชน์ภายใต้โครงการสร้างเสริมศักยภาพวิชาชีพ Embedded System เพื่อส่งเสริมการเรียนการสอนทั้งทักษะด้านการเขียนโปรแกรมและหลักการเข้าใจการทำงานฮาร์ดแวร์ ทางด้านเทคโนโลยีสมองกลฝังตัวให้น่าสนใจและสามารถดึงดูดนักศึกษาให้ศึกษาต่อในสาขา Embed- ded System รวมทั้งนำไปเผยแพร่ยังมหาวิทยาลัยทั่วประเทศเพื่อใช้ประกอบในการเรียนการสอนหรือ การฝึกอบรมทางด้านระบบสมองกลฝังตัว หนังสือเล่มนี้ผู้เขียนตั้งใจเขียนขึ้นมาจากใจที่มุ่งมั่นและศรัทธาเพื่อต้องการส่งเสริมและกระตุ้นให้ เกิดนักพัฒนารุ่นใหม่ภายในเมืองไทย โดยผู้เขียนตั้งใจนำประสบการณ์ที่สั่งสมอยู่ในวงการเทคโนโลยี คอมพิวเตอร์ ระบบปฏิบัติการลีนุกซ์ ระบบสมองกลฝังตัว และระบบปฏิบัติการแอนดรอยด์ ตลอดระยะ เวลาไม่น้อยกว่า 18 ปี ซึ่งได้รวบรวมพื้นฐานความรู้สำคัญที่หาอ่านได้ยากแล้วนำมาเรียบเรียงให้เหมาะสม กับนิสิตที่เรียนในวิชาที่เกี่ยวข้องกับระบบสมองกลฝังตัว ตัวอย่างเช่น วิชาระบบปฏิบัติการยูนิกซ์/ลีนุกซ์ วิชาการเขียนโปรแกรม วิชาระบบสื่อสารและเครือข่าย วิชาระบบฏิบัติการคอมพิวเตอร์ และวิชาระบบ สมองกลฝังตัว เป็นต้น ซึ่งจะเป็นพื้นฐานสำคัญในการออกแบบและพัฒนาทางด้านระบบสมองกลฝังตัว โดยเฉพาะสำหรับนิสิตนักศึกษาทางด้านวิศวกรรมคอมพิวเตอร์ วิศวกรรมไฟฟ้าอิเล็กทรอนิกส์ วิศวกรรม ไฟฟ้าสื่อสาร วิศวกรรมไฟฟ้าควบคุม วิทยาการคอมพิวเตอร์ และสาขาที่ใกล้เคียง นอกจากนั้นยังเหมาะสำหรับนักพัฒนาและผู้ที่สนใจการทำงานภายในระบบสมองกลฝังตัว ซึ่ง เนื้อหาในหนังสือเล่มนี้จะรวบรวมศาสตร์ความรู้ที่เกี่ยวข้องในการออกแบบและพัฒนาทางด้านระบบ สมองกลฝังตัวเพื่อนำไปใช้ในการปรับปรุงหรือสร้างสรรค์ผลิตภัณฑ์ใหม่ในอนาคตได้ วัตถุประสงค์หลัก ของหนังสือเล่มนี้ต้องการปูพื้นความรู้ตั้งแต่การใช้งานระบบปฏิบัติการลีนุกซ์เพื่อให้คุ้นเคยกับคำสั่งที่ เกี่ยวข้องตั้งแต่ระดับพื้นฐานจนถึงระดับกลางให้ผู้อ่านเข้าใจระบบลีนุกซ์เคอร์เนล การพัฒนาโปรแกรม ระดับล่าง การเตรียมสภาพแวดล้อมให้พร้อมสำหรับการปรับแต่งระบบปฏิบัติการลีนุกซ์ เครื่องมือที่ เกี่ยวข้องทั้งหมดสำหรับการพัฒนาโปรแกรมบนระบบสมองกลฝังตัว ทำความเข้าใจโครงสร้างระบบ ปฏิบัติการแอนดรอยด์ การพัฒนาโปรแกรมด้วยโปรแกรมภาษา C/C++/JAVA/Python และการ ประยุกต์บนบอร์ดสมองกลฝังตัว โดยในบทสุดท้ายเป็นการยกตัวอย่างกรณีศึกษาและแนวคิดสำคัญใน การออกแบบและพัฒนาเพื่อให้ผู้อ่านสามารถเข้าใจและสามารถเชื่อมโยงความรู้ที่ได้เพื่อนำไปสู่การเริ่ม ต้นการออกแบบและพัฒนาทางด้านระบบสมองกลฝังตัวในอนาคต กตตกรรมประกาศ หนังสือ Embedded Android Development เล่มนี้จะสมบูรณ์ไม่ได้ถ้าขาดการช่วยเตรียมข้อมูล ประกอบสำหรับแต่ละบทจากลูกศิษย์ที่รักและนักวิจัยประจำห้องปฏิบัติการวิจัยและพัฒนาด้านสมองกล ฝังตัวของข้าพเจ้า ซึ่งได้แก่ นายสรไกร ไกรปุย นายธิติพงษ์ สอนจันทร์ นายภานุวัฒน์ พรหมศิริ นายวิธ- วัช บุญแย้ม นายวีระเดช ขุมทอง นายวสันต์ วิยะรันดร์ นายปริวัฒน์ เลี่ยมสำราญ นายนิพนธ์ สมหมาย นายจเร ปิยฉัตรพนม นายนัฐพงษ์ แสงสง่าศรี และนายกิตติศักดิ์ พรมศรี รวมทั้งเพื่อนร่วมงานที่คอยเป็น กำลังใจ ซึ่งได้แก่ ดร.ภาณุวัฒน์ ด่านกลาง รศ.ดร.ณกร อินทร์พยุง และ ดร.อภิรัฐ ลิ่มมณี ขอขอบคุณภาควิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยบูรพา ที่สนับสนุนให้มีการ เปิดสาขาวิชาทางด้านวิศวกรรมอิเล็กทรอนิกส์และระบบสมองกลฝังตัว และหลักสูตร Embedded Systems Engineering (English Program) ซึ่งทำให้ข้าพเจ้าได้มีโอกาสสอนและทำการวิจัยและพัฒนา องค์ความรู้ทางด้านวิศวกรรมระบบสมองกลฝังตัว รวมทั้งขอขอบคุณนายกสมาคมสมองกลฝังตัวไทย ผู้ ช่วยศาสตราจารย์อภิเนตร อูนากูล และ ผู้จัดการสมาคมฯ พี่ขนิษฐา ประสารสุข ที่ได้ให้ข้าพเจ้าได้มี โอกาสเข้ามาร่วมทำงานและสร้างกิจกรรมดีๆตั้งแต่ปี พ.ศ. 2548 เป็นต้นมา ที่สำคัญด้วยกำลังใจที่เปี่ยมล้นจากครอบครัวที่รักของข้าพเจ้าเอง (นางณัฐณิชา หนูคง และ ด.ญ. ปวรนันทน์ ศรีบริรักษ์) ที่คอยเป็นกำลังใจตลอดระยะเวลาหลายเดือนของการเขียนหนังสือเล่มนี้ ขอบพระคุณบิดา (นายสามารถ ศรีบริรักษ์)