CHƯƠNG 1.GIỚI THIỆU VỀ ANDROID Như chúng ta đã biết hiện tại có rất nhiều người sử dụng điện thoại di động để giao tiếp qua các trang mạng không dây. Các thiết bị điện thoại di động càng ngày càng thông minh với nhiều tính năng và dịch vụ hấp dẫn. Vì thế việc lập trình trên thiết bị di động càng ngày càng phổ biến và phát triển mạnh mẽ. Từ nền tảng mã nguồn mở, Google đã cho ra mắt hệ điều hành Android chạy trên các thiết bị di động.
Android có rất nhiều công cụ và dụng cụ miễn phí để nghiên cứu và phát triển phần mềm trên nền tảng của nó. Tài liệu này sẽ giúp chúng ta tìm hiểu về Android và cách viết một ứng dụng trên nền tảng này.Tìm hiểu về Android 1.Lịch sử Android Ban đầu Android do công ty Android Inc. Công ty này sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Các thành viên chủ chốt ở Android Inc.
Gồm có Andy Rubin, Rick Miner, Nick Sears và Chris White. Android Timeline Và sau tiếp, vào cuối năm 2007, thuộc về liên minh Thiết Bị cầm tay Mã nguồn mở (Open Handest Alliance) gồm các thành viên nổi bật trong ngành viễn thông như: Texas Instrucment, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-mobile, ARM Holdings, Atheros Communitications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson , Toshiba Corp, and Vodafone Group,. Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu người sử dụng và kết quả đầu tiên của nó chính là nền tảng Android. Android được thiết 5 Báo cáo đồ án GVHD:Đỗ Thanh Bình kế để phục vụ nhu cầu của các nhà sản xuất, các nhà khai thác và lập trình viên thiết bị cầm tay.
Phiên bản SDK lần đầu tiên được phát hành vào tháng 11 năm 2007, hãng T-moblie cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-mobile G1, chiếc smart phone đầu tiên dựa trên nền tảng Android. Một vài ngày sau , Gôgle lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1. Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android Platform. Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tương tác với nhau và có thể sử dụng lại các phần từ những ứng dụng khác.
Việc tái sử dụng không chỉ được áp dụng cho các dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu và giao diện người dùng. Vào cuối năm 2008 , Google cho phát hành một thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên bản vá lỗi 1.1 của hệ điều hành này.
Ở cả hai phiên bản 1.1 Android chưa hỗ trợ Soft-keyboard mà đòi hỏi các thiết bị sử dụng bản phím vật lý. Amdroid cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng 4 năm 2009, cùng với một số tính năng khác. Chẳng hạn như nâng cao khả năng ghi âm truyền thông, và các live folder,.Khái niệm về Android Trước hết Android là nền tảng phần mềm dựa trên mã nguồn mở Linux OS (Kernel 2.6) cho máy di động và những phần mềm trung gian (middleware) để hổ trợ các ứng dụng mà người sử dụng cần đến. Một cách định nghĩa không quá chuyên môn thì có thể coi Android là tên một nền tảng mở cho thiết bị di động của Google (gồm hệ điều hành, middleware và một số ứng dụng cơ bản).
Android sẽ đương đầu với một số hệ điều hành (viết tắt là HDH) dành cho thiết bị di dộng khác đang hâm nóng thị trường như Windows Mobile, Symbian và dĩ nhiên là cả OS X (iPhone). Có thể nói một cách nôm na rằng Android là một HDH chạy trên thiết bị di động, cũng giống như Windows, Linux hay Mac chạy trên máy vi tính vậy.Android khác với các hệ điều hành trên thiết bị di động khác Android thu hút được sự chú ý của giới công nghệ toàn cầu khi đứa con của Google sử dụng giấy phép mã nguồn mở. Đó là sản phẩm kết tinh từ ý tưởng của khối Liên minh 6 Báo cáo đồ án GVHD:Đỗ Thanh Bình thiết bị cầm tay mở do Google dẫn đầu, gồm 34 thành viên với các công ty hàng đầu về công nghệ và di động toàn cầu. Các nhà phát triển có thể sử dụng miễn phí bộ Kit Android Software Development để xây dựng các ứng dụng của mình.Đặc tính mở của Android Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứng dụng di động hấp dẫn, tận dụng tất cả tính năng một chiếc điện thoại đã cung cấp.
Nó được xây dựng để được thực sự mở. Ví dụ, một ứng dụng có thể gọi bất kỳ chức năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản, hoặc bằng cách sử dụng máy ảnh, cho phép các nhà phát triển để tạo ra nhiều ứng dụng phong phú hơn cho người dùng (điều này hiện chưa có trên Windows Phone7 của Microsoft). Android được xây dựng trên mã nguồn mở Linux Kernel. Hơn nữa, nó sử dụng một máy ảo tuỳ chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi trường di động.
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng của bên thứ ba. Tất cả có thể được xây dựng để có thể truy cập bằng khả năng của một thiết bị di động cung cấp cho người sử dụng với một dải rộng các ứng dụng và dịch vụ. Với các thiết bị xây dựng trên Android, người dùng có thể hoàn toàn thích ứng với điện thoại đến lợi ích của họ. Với Android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem vị trí của bạn bè của họ và được cảnh báo khi họ đang có trong vùng phụ cận cho họ một cơ hội để kết nối.
Android cung cấp truy cập đến một loạt các thư viện công cụ hữu ích và có thể được sử dụng để xây dựng các ứng dụng phong phú. Ví dụ, Android cho phép các thiết bị giao tiếp với nhau tạo điều kiện cho đồng đẳng rich-to-peer trong ứng dụng xã hội. Ngoài ra, Android bao gồm một tập hợp đầy đủ công cụ đã được xây dựng công phu, với việc cung cấp nền tảng phát triển, với năng suất cao và cái nhìn sâu vào các ứng dụng .Kiến trúc của Android Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành Android. Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây: 7 Báo cáo đồ án GVHD:Đỗ Thanh Bình Hình 2.Cấu trúc stack hệ thống Android 1.Android platform Bao gồm HDH Android đầy đủ tính năng, các ứng dụng và các tầng trung gian để developer có thể mở rộng, tùy chỉnh hoặc thêm vào các component của họ.
Có 4 tầng cơ bản trong HDH Android: Application Framework, Android Runtime, Native Libraries, Linux Kernel. Mỗi tầng làm việc đều nhờ sự giúp đỡ của tầng bên dưới.Tầng Linux Kernel Đây là nhân của HDH Android, mọi xử lý của hệ thống đều phải thông qua tầng này. Linux Kernel cung cấp các trình điều khiển thiết bị phần cứng (driver) như: camera, USB, Wifi, Bluetooth, Display, Power Management. Android dựa trên Linux phiên bản 2.6 lựa chọn các tính năng cốt lõi như bảo mật, quản lý bộ nhớ, quản lý tiến trình, mạng stack và các trình điều khiển phần cứng.
Kernel hoạt động như một lớp trừu tượng giữa phần cứng và phần mềm còn lại của hệ thống. 8 Báo cáo đồ án GVHD:Đỗ Thanh Bình 1.Native Libraries Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua nền tảng ứng dụng Android. Một số các thư viện cơ bản được liệt kê ở dưới đây: -System C library - có nguồn gốc từ hệ thống thư viện chuẩn C (libc), điều chỉnh các thiết bị nhúng trên Linux.
-Media Libraries - mở rộng từ PacketVideo's OpenCORE; thư viện hỗ trợ playback và recording của nhiều định dạng video và image phổ biến: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG -Surface Manager - quản lý việc hiển thị và kết hợp đồ họa 2D và 3D. -LibWebCore - Android dùng lại webkit engine cho việc render trình duyệt mặc định của HDH Android browser và cho dạng web nhúng (như HTML nhúng) -SGL - 2D engine -3D libraries - Thư viện 3D dựa trên OpenGL ES 1.0 API, có nâng cấp tăng tốc "hardware 3D acceleration" -FreeType - render bitmap và vector font. -SQLite - quản lý database của ứng dụng.Tầng runtime Mỗi ứng dụng Android chạy trên một proccess riêng của Dalvik VM (máy ảo). Dalvik được viết để chạy nhiều máy ảo cùng một lúc một cách hiệu quả trên cùng một thiết bị.
Máy ảo Dalvik thực thi các file mang định dạng .dex (Dalvik Excutable), định dạng này là định dạng đã được tối ưu hóa để chỉ chiếm một vùng nhớ vừa đủ xài và nhỏ nhất có thể. VM chạy các class (đã được compile trước đó bởi 1trình biên dịch ngôn ngữ Java), sở dĩ VM chạy được các class này là nhờ chương trình DX tool đã convert các class sang định dạng .Tầng Application framework Đây là tầng mà Google xây dựng cho các developer để phát triển các ứng dụng của họ trên Android, chỉ bằng cách gọi các API có sẵn mà Google đã viết để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc bên dưới. Bằng cách cung cấp một nền tảng phát triển mở, Android cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo thức, thêm các thông báo để các thanh trạng thái, và nhiều, nhiều hơn nữa.
9 Báo cáo đồ án GVHD:Đỗ Thanh Bình Tất cả các ứng dụng thường gồm một bộ các dịch vụ và hệ thống cơ bản sau: -View UI dùng để xây dựng layout của ứng dụng bao gồm: list view, text field, button, dialog, form. -Providers cho phép các ứng dụng có thể truy cập dữ liệu từ các ứng dụng khác (như ứng dụng của ta có thể lấy thông tin Contacts của điện thoại Android), hoặc để chia sẻ dữ liệu của riêng ứng dụng.