วันพุธที่ 16 พฤษภาคม พ.ศ. 2555

What is Android? แอนดรอยด์ คืออะไร?

-->
What is Android? แอนดรอยด์ คืออะไร?

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

Android เป็นซอฟต์แวร์สแต็คสำหรับ อุปกรณ์มือถือที่มีการใช้งานระบบปฏิบัติการตัวกลาง และที่สำคัญ Android SDK มีเครื่องมือและ API ที่จำเป็นเพื่อเริ่มต้นโปรแกรมการพัฒนาบนแพลตฟอร์ม Android ในการใช้ภาษา JAVA ในการเขียนโปรแกรม

แอนดรอยด์ เป็น โปรแกรมระบบปฎิบัติการ ( Operating System : OS  ) ควบคุมการทำงานสำหรับโทรศัพท์มือถือ และอุปกรณ์พกพา แบบต่างๆ ระบบแอนดรอย์ ใช้ภาษาจาวา ในการพัฒนา โดยบริษัท กูเกิล
จุดเริ่มต้นมาจากบริษัท Android Inc. ที่ได้นำเอาระบบปฏิบัติการลีนุกซ์ (Linux) ซึ่งนิยมนำไปใช้งานกับเครื่องแม่ข่าย (Server) เป็นหลัก นำมาลดทอนขนาดตัว เพื่อให้เหมาะสมในการนำไปติดตั้งบนอุปกรณ์พกพา ที่มีขนาดพื้นที่จัดเก็บข้อมูลที่จำกัด โดยหวังว่า แอนดรอยด์ นั้นจะเป็นหุ่นยนต์เขียวตัวน้อย ๆ ที่คอยช่วยเหลืออำนวยความสะดวกแก่ผู้ที่พกพามัน ไปในทุกที่ ทุกเวลา 













Android History

Google, seeing a large growth of Internet use and search in mobile devices, acquired Android, Inc., in 2005 to focus its development on a mobile device platform.Apple introduced the iPhone in 2007 with some ground breaking ideas including multitouch and an open market for applications.Android was quickly adapted to include these features and to offer definite distinctions, such as more control for developers and multitasking. In addition,Android incorporates enterprise requirements, such as exchange support, remote wipe, and Virtual Private Network (VPN) support, to go after the enterprise market that Research In Motion has developed and held so well with its Blackberry models.
Device diversity and quick adaptation have helped Android grow its user base, but it comes with potential challenges for developers.Applications need to support multiple screen sizes, resolution ratios, keyboards, hardware sensors, OS versions, wireless data rates, and system configurations. Each can lead to different and unpredictable behavior, but testing applications across all environments is an impossible task.
Android has therefore been constructed to ensure as uniform an experience across platforms as possible. By abstracting the hardware differences,Android OS tries to insulate applications from device-specific modifications while providing the flexibility to tune aspects as needed. Future-proofing of applications to the introduction of new hardware platforms and OS updates is also a consideration.This mostly works as long as the developer is well aware of this systematic approach.The generic Application Programming Interfaces (API) that Android offers and how to ensure device and OS compatibility are main threads discussed throughout this book.
Still, as with any embedded platform, extensive testing of applications is required. Google provides assistance to third-party developers in many forms as Android Development Tool (ADT) plugins for Eclipse (also as standalone tools) including real-time logging capabilities, a realistic emulator that runs native ARM code, and in-field error reports from users to developers of Android Market applications.

ประวัติความเป็นมาของแอนดรอยด์
                Google ได้เล็งเห็นถึงอัตราการเติบโตของการใช้งานอินเตอร์เน็ตบนอุปกรณ์แบบพกพาจึงก่อตั้งบริษัท Android,Inc. ขึ้นมาในปี พ.. 2548 โดยมุ่งหมายที่จะพัฒนาระบบปฏิบัติการเพื่อใช้งานบนอุปกรณ์พกพา ส่วนทาง Apple ได้เปิดตัว iPhone ในปี พ.. 2550 ด้วยแนวคิดของการนำจอภาพแบบสัมผัสหลายจุดมาใช้งาน แถมยังเสนอตลาดเอาไว้ให้จำหน่ายหรือจับจ่ายซื้อแอพกันด้วย แอนดรอยด์ถูกพัฒนาอย่างรวดเร็วโดยได้นำคุณสมบัติเหล่านี้มารวมไว้ในระบบปฏิบัติการและทำให้รองรับการทำงานแบบมัลติทาสก์กิ้ง (Multitasking) ด้วยการทำงานร่วมกับระบบงานที่รองรับการทำงานระดับองค์กรเช่น ระบบอีเมล์ของ Microsoft Exchange, ระบบเครือข่ายส่วนตัวแบบเสมือน (Virtual Private Network VPN) หรือการลบข้อมูลในอุปกรณ์พกพาจากระยะไกล ก็คล้ายๆ กับรูปแบบการทำงานของระบบปฏิบัติการ BlackBerry ที่ทางบริษัท Research In Motion ได้นำมาใช้กับโทรศัพท์มือถือ BlackBerry ทุกรุ่น

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

ดังนั้นในขั้นตอนของการพัฒนาแอพ สภาพแวดล้อมของระบบที่จะใช้ในการพัฒนาและทดสอบการทำงานของแอพจึงเป็นสิ่งที่สำคัญ ทาง Google จึงได้นำเสนอปลั๊กอินที่ใช้ในการพัฒนาแอพที่มีชื่อว่า ADT (Android Development Tool) ซึ่งทำงานร่วมกับโปรแกรม Eclipse เลยทำให้ได้สภาพแวดล้อมในการพัฒนาแอพที่สามารถจำลองการทำงานบนโปรเซสเซอร์ ARM ได้ และถ้าผู้ใช้งานแอพนั้นๆ พบจ้อผิดพลาดในการทำงาน แอพก็จะแจ้งข้อผิดพลาดดังกล่าวกลับไปยังผู้พัฒนาแอพผ่านทาง Android Market ได้
 
-->  
The Dichotomy of Android
Android has some interesting dichotomies. Knowing about them upfront is useful not only in understanding what Android is, but what it is not.
Android is an embedded OS that relies on the Linux kernel for core system services, but it is not embedded Linux. For example, standard Linux utilities such as X-windows and GNU C libraries are not supported.Writing applications for Android utilizes the Java framework, but it is not Java. Standard Java libraries such as Swing are not supported.
Other libraries such as Timer are not preferred; they have been replaced by Android’s own libraries, which are optimized for usage in a resource-constrained, embedded environment.
The Android OS is open source, which means developers can view and use any of the system source code, including the radio stack.This source code is one of the first resources for seeing examples of Android code in action, and it helps clarify the usage when documentation is lacking.This also means developers can utilize the system in the same way as any core application and can swap out system components for their own components. However,Android devices do contain some proprietary software that is inaccessible to developers (such as Global Positioning System (GPS) navigation). A final dichotomy of Android OS is that Google is also backing Chrome OS.Android OS is built for embedded platforms, and Chrome OS is built for cloud-based platforms. However, which is the best choice for embedded devices that live in the cloud? Netbooks, which fill the gap between smart phones and laptop computers, could presumably go either way (and they have).Android has started to utilize the cloud more. Does that mean Chrome OS’s days are numbered? Google also backs a web-based market, so Chrome OS enjoys the same developer leverage that Android currently has.This points to a convergence that might have been in the cards all along.

Features
  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

ลักษณะของแอนดรอยด์
                ระบบปฏิบัติการแอนดรอยด์มีจุดเด่นที่น่าสาใจอยู่หลายจุด การทำความรู้จักกับจุดเด่นเหล่านี้จะทำให้คุณเข้าใจการทำงานของแอนดรอยด์มากขึ้น จะได้รู้ว่าอะไรที่ทำได้และทำไม่ได้บนระบบปฏิบัติการนี้
                แอนดรอยด์เป็นระบบปฏิบัติการที่ทำงานแบบฝังตัวโดยใช้โครงสร้างเดียวกับลีนุกซ์ (Linux) ซึ่งใช้ลีนุกซ์เคอร์เนล (Linux Kernel) เป็นแกนหลักในการทำงาน แต่การทำงานรอบข้างจะไม่ถูกฝังลงในเคอร์เนล หรือพูดง่ายๆ ก็คือโครงสร้างมาตรฐานของลีนุกซ์จะไม่รองรับการทำงานของ X Windows  และ GNU C ดังนั้นระบบปฏิบัติการแอนดรอยด์จึงใช้ประโยชน์จากจาวาเฟรมเวิร์ค แต่เฟรมเวิร์คที่ใช้นั้นจะไม่ใช่เหรมเวิร์คมาตรฐาน ไม่สามารถใช้ Swing ได้ และไม่มีไลบรารี  Timer ให้ใช้งานด้วยแอนดรอยด์จึงใช้ไลยรารียองตัวเองแทน ไลบรารีเหล่านี้ได้รับการปรับปรุงให้มีประสิทธิภาพการทำงานที่เหมาะสมกับการทำงานบนอุปกรณ์พกพา
                แอนดรอยด์มีลักษณะเป็นระบบปฏิบัติการแบบเปิด หมายความว่านักพัฒนาสามารถดูแลและใช้งานซอร์สโค้ดของระบบปฏิบัติการได้ รวมถึงการเข้าถึงเรดิโอสแต็ค (Radio Stack) เพื่อควบคุมการใช้งานระบบสื่อสารต่างๆ บนฮาร์ดแวร์ด้วย ซอร์ดโค้ดพวกนี้ถือเป็นแหล่งข้อมูลอันดับต้นๆ สำหรับศึกษาการทำงานของแอนดรอยด์เลยก็ว่าได้ในกรณีที่ไม่สามารถหาเอกสารอ้างอิงการทำงาน นักพัฒนาจึงสามารถเขียนแอพให้ทำงานในแบบที่แอนดรอยด์ทำได้ และสารถสร้างคอมโพเน็นต์ (Component) ที่มีการทำงานใกล้เคียงกับคอมโพเน็นต์ของระบบได้ด้วย แต่อย่างไรก็ตาม ในระบบปฏิบัติการแอนดรอยด์ยังคงมีฮาร์ดแวร์และซอร์ฟแวร์บางส่วนที่ไม่เปิดให้นักพัฒนาเข้าถึงได้โดยตรง อย่างเช่น การทำงานของระบบระบุพิกัด (GPS) เป็นต้น
                อีกจุดเด่นหนึ่งของระบบปฏิบัติการแอนดรอยด์ที่พัฒนาโดย Google อยู่ตรงที่ทาง Google ยังเป็นผู้พัฒนาระบบปฏิบัติการ Chrome ด้วย ซึ่งแอนดรอยด์ถูกออกแบบมาให้ใช้งานแบบฝังตัวบนอุปกรณ์พกพา ส่วน Chrome ถูกสร้างเพื่อรองรับโครงสร้างการทำงานแบบ Cloud (คลาวด์) โดยอุปกรณ์ที่เหมาะกับการทำงาน Cloud คือ กลุ่มโน๊ตบุ๊ก นับเป็นตัวเลือกที่เหมาะสมที่อยู่กึ่งกลางระหว่างโทรศัพท์มือถือกับเครื่องแลปท็อปนั่นเอง และในตอนนี้แอนดรอยด์ก็กำลังพัฒนา Cloud ให้ใช้งานได้ครอบคลุมยิ่งขึ้นอยู่ การพัฒนาแอพบน Cloud จะคล้ายกับการพัฒนาแอพนแอนดรอยด์นั่นหมายความว่าเมื่อมีการใช้งานร่วมกับ Cloud จำนวนของผู้ใช้แอนดรอยด์ก็จะยิ่งเพิ่มขึ้น

Android Architecture

The following diagram shows the major components of the Android operating system. Each section is described in more detail below.


Applications

Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.


Android example code ตัวอย่าง  Android Code

Android Control ควบคุมอุปกรณ์ต่างๆ ด้วย Android

สอนเขียน Android  สอนเขียนโปรแกรม Android



ไม่มีความคิดเห็น:

แสดงความคิดเห็น