CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 1.Tổng quan đề tài 1.Khảo sát hiện trạng Với đề tài “Xây dựng ứng dụng quản lý và đặt phòng khách sạn trên nền tảng android” tương đối rộng nên trong bài luận văn này sẽ tập trung chủ yếu vào xây dựng một ứng dụng trên 1 số chức năng trọng điểm trên nền tảng android. Cụ thể, ứng dụng sẽ giúp người dùng dễ dàng quản lý tất cả các khách sạn trên theo địa chỉ thông qua việc thêm hay xóa bất kì khách sạn nào với quyền sử dụng chủ khách sạn. Quản lý chặc chẽ từng khách sạn riêng biệt bằng việc quản lý phòng, loại phòng, giá, chính sách khuyễn mãi, khách hàng, cho phép đặt phòng trước trực tiếp trên điện thoại. Khi người dùng đặt phòng trước, thông tin về người dùng sẽ được đưa đến khách sạn và sẽ được xác nhận thuê phòng khi gặp trực tiếp chủ khách sạn.
Bên cạnh đó, ứng dụng sẽ cho phép người dùng xem danh sách các khách sạn trên bản đồ để dễ dàng xem thông tin khách sạn, từ đó giúp việc lựa chọn khách sạn và đặt phòng dễ dàng hơn. Ngoài ra, người dùng dễ dàng tìm thấy các khách sạn theo tỉnh hoặc một địa điểm bắt kì thông qua chức năng tìm kiếm do ứng dụng cung cấp. Giúp người dùng biết đường đến điểm cần tìm, thời gian và phương tiện đi thông qua chức năng chỉ đường. Hướng giải quyết vấn đề Phương pháp thực hiện Về lý thuyết - Nắm vững kiến thức cơ bản về lập trình android - Trang bị kiến thức về Google Map Api.
- Năm vững các phương pháp tổ chức, phân tích và thiết kế cơ sở dữ liệu. Về kỹ thuật - Dùng công cụ phpmyadmin để thiết kế cơ sở dữ liệu. - Dùng android Studio tạo giao diện và cấu trúc - Lập trình Android Hướng giải quyết - Thu thập thông tin, yêu cầu và nhu cầu trên thị trường để làm cơ sở phân tích đề tài. - Từ những thông tin thu thập được, xác định các tác nhân tác động vào hệ thống và cách thức mà tác nhân đó tác động vào để có thể phân tích chính xác và cung cấp các chức năng phù hợp với nhu cầu sử dụng.
- Xây dựng cơ sở dữ liệu và các sơ đồ cần thiết. - Thiết kế giao diện dựa trên mô tả và các chức năng. Xác định và hiểu rõ từng chức năng của hệ thống. - Tiến hành xây dựng ứng dụng dựa trên các giao diện và chức năng đã thiết kế.
Giới thiệu Android 1. Android và lịch sử phát triển Android là 1 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, máy tính bảng và những phần mềm trung gian (middleware). Nó không đơn thuần là 1 hệ điều hành, 1 công cụ lập trình hay 1 phần mềm trung gian mà nó gồm tất cả. Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux 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. 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 Handset Alliance). 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 tiêu dùng và kết quả đầu tiên của nó chính là nền tảngAndroid. Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà khai thác và các lập trình viên thiết bị cầm tay.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng T- Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google 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 được với nhau và có thể sử dụng lại các thành 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 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 6 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 vả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ị phải sử dụng bàn phím vật lý. Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư 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ật dụng, và các live folder. Kiến trúc của Android Mô hình tổng quát các thành phần của hệ điều hành Android Hình 1.1: Mô hình tổng quát các thành phần trong Android Linux Kernel Hệ điều hành Android được phát trển dựa trên hạt nhân linux, cụ thể là hạt nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp này bao 7 gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process).2: Cấu trúc của Linux Kernel Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nối mạng không dây. Các thành phần của nhân Linux: - Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng lên màn hình (di chuyển, cảmứng.
- Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ camera trả về. - Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth. - USB driver : Quản lý hoạt động của các cổng giao tiếp USB. - Keypad driver : Điều khiển bàn phím.
- Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi. - Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạng audio thành tín hiệu số và ngược lại. - Power Madagement : Giámsát việc tiêu thụ điện năng. - M-System Driver : Quản lý việc đọc ghi.
lên các thiết bị nhớ như thẻ SD, flash. - Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện. Library và Android Runtime Phần này có 2 thành phần là phần Library và Android Runtime Hình 1.3: Library and Runtime Library Thành phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như: - Thư viện hệ thống (System C library)(Libc) : thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều hành. - Thư viện Media (Media Libraries) : Có nhiều codec để hỗ trợ việc phát và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng.
- Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX. - Surface Manage: quản lý hiển thị 2D và 3D. - SGL công nghệ 2D - SQLite : quản lý database của ứng dụng.
- Free Type : dùng cho hiển thị ảnh, font. - Open GL/EL: hỗ trợ thư viện tùy chọn 3D tĩnh và động. Android Runtime Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường.
Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA IO, Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine). Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành android không được chạy bằng JRE(Java Runtime Environment) của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik (máy ảo dalvik đc đặt tên sau khi 1 nhà phát triển phần mềm của google tạo ra nó sau khi đi thăm 1 ngôi làngở nơi tổ tiên ông sinh sống) do Google phát triển. máy ảo davik thực thi cái tập tin davik(dex), khác với java là chuyển sang dạng bytecode.
Định dạng này được tối ưu hóa cho bộ nhớ tối thiểu. Framework Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp 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 động, thêm các thông báo để các thanh trạng thái, và nhiều, nhiều hơn nữa.4:Cấu trúc của Framework Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụng lại các thành phần.
Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm: - View Manage:Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout… - Activity Manager : Quản lý các chu kỳ sống của một ứng dụng cũng như cung cấp công cụ điều khiển các Activity. - Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạc như gọi điện thoại. - Location Manager : Cho phép xác định vị trí của điện thoại thoại dựa vào hệ thống định vị toàn cầu GPS và Google Maps. - Window Manager : Quản lý việc xây dựng và hiển thị các giao diện người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.