Chương 1.Tổng quan: Giới thiệu về đề tài: lý do chọn đề tài; mục đích, ý nghĩa chọn đề tài và giới thiệu về các phương pháp triển khai, ngôn ngữ, môi trường sử dụng. Cơ sở lý thuyết: Giới thiệu về hệ điều hành Android, cơ sở lý thuyết của ngôn ngữ thực hiện (Java-Android). Phân tích hệ thống bao gồm các phương pháp đặc tả người dùng, xây dựng các sơ đồ mô tả hệ thống, qua đó có cách nhìn tổng quan về hệ thống hơn. Kết quả thực nghiệm: Trình bày quá trình thực hiện, triển khai, kết quả demo và đánh giá kết quả.
Kết luận và kiến nghị: Trình bày kết quả đạt được khi xây dựng chương trình và các hạn chế còn tồn tại, qua đó đánh giá lại sản phẩm và nêu các hướng phát triển. Tài liệu tham khảo. 18 0 0 CHƯƠNG II. Tổng quan về hệ điều hành Android: 1.
Giới thiệu về hệ điều hành Android Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và các thiết bị máy tính bảng. Ban đầu Android được phát triển bởi tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt năm 2007 cùng với tuyên bố thành lập liên minh thiết bị cẩm tay mở cho các thiết bị di động. Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache.
Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do. Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng bộ phát triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công cụ dùng để phát triển gồm có công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên QEMU, tài liệu hướng dẫn, mã nguồn mẫu, và hướng dẫn từng bước. Môi trường phát triển tích hợp (IDE) được hỗ trợ chính thức là Eclipse sử dụng phần bổ sung Android Development Tools (ADT).
Các công cụ phát triển khác cũng có sẵn, gồm có Bộ phát triển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google App Inventor, một môi trường đồ họa cho những nhà lập trình mới bắt đầu, và nhiều nền tảng ứng dụng web di động đa nền tảng phong phú. Android được Google tự phát triển riêng cho đến khi những thay đổi và cập nhật đã hoàn thiện, khi đó mã nguồn mới được công khai. Mã nguồn này, nếu không sửa đổi, chỉ chạy trên một số thiết bị, thường là thiết bị thuộc dòng Nexus. Có nhiều thiết bị có chứa những thành phần được giữ bản quyền do nhà sản xuất đặt vào thiết bị Android của họ.
19 0 0 Hình 2: Tổng quan về hệ điều hành Android 2. Kiến trúc cơ bản của hệ điều hành Android Android gồm 5 phần chính sau được chứa trong 4 lớp: - Nhân Linux: Đây là nhân nền tảng mà hệ điều hành Android dựa vào nó để phát triển. Đâu là lớp chứa tất cả các thiết bị giao tiếp ở mức thấp dùng để điều khiển các phần cứng khác trên thiết bị Android. - Thư viện: Chứa tất cả các mã cái mà cung cấp cấp những tính năng chính của hệ điều hành Android, đôi với ví dụ này thì SQLite là thư viện cung cấp việc hộ trợ làm việc với database dùng để chứa dữ liệu.
Hoặc Webkit là thư viện cung cấp những tính năng cho trình duyệt Web. - Android runtime: Là tầng cùng với lớp thư viện Android runtime cung cấp một tập các thư viện cốt lỗi để cho phép các lập trình viên phát triển viết ứng dụng bằng việc sử dụng ngôn ngữ lập trình Java. Android Runtime bao gốm máy ảo Dalvik (ở các version < 4.4, hiện tài là phiên bản máy ảo ART được cho là mạnh mẽ hơn trong việc xử lý biên dịch). Là cái để điều khiển mọi hoạt động của ứng dụng Android chạy trên nó(máy ảo Dalvik sẽ biên dịch ứng dụng để nó có 20 0 0 thể chạy(thực thi) được , tương tự như các ứng dụng được biên dịch trên máy ảo Java vậy).
Ngoài ra máy ảo còn giúp tối ưu năng lượng pin cũng như CPU của thiết bị Android - Android framework: Là phần thể hiện các khả năng khác nhau của Android(kết nối, thông báo, truy xuất dữ liệu) cho nhà phát triển ứng dụng, chúng có thể được tạo ra để sử dụng trong các ứng dụng của họ. - Application: Tầng ứng dụng là tầng bạn có thể tìm thấy chuyển các thiết bị Android như Contact, trình duyệt…Và mọi ứng dụng bạn viết đều nằm trên tầng này. Hình 3: Kiến trúc hệ điều hành Android III. Giới thiệu về ngôn ngữ lập trình Java: Java là một ngôn ngữ lập trình cao cấp, ban đầu được phát triển bởi Sun Microsystems và được phát hành vào năm 1995.
Java chạy trên nhiều nền tảng, chẳng hạn như Windows, Mac OS và các phiên bản khác nhau của UNIX. Là ngôn ngữ kế thừa trực tiếp từ C/C++ và là một ngôn ngữ lập trình hướng đối tượng. Java như là một công nghệ hay một nền tảng phát triển. Nó bao gồm các bộ phận: - Máy ảo Java: JVM 21 0 0 - Bộ công cụ phát triển: J2SDK - Các đặc tả chi tiết kĩ thuật (specifications) - Ngôn ngữ lập trình (programming language) IV.
Các khái niệm cơ bản trong lập trình ứng dụng Android: 1. Activity Một Activity là một thể hiện của ứng dụng. Một ứng dụng có thể gồm chỉ 1 hoặc nhiều Activity. Activity chính phải được hiển thị đầu tiên khi khởi động chương trình.
Chuyển từ một Activity này sang một Activity khác bằng cách cho Activity hiện thời khởi động Activity kế tiếp. Một cây phân cấp View được đặt trong một cửa sổ của Activity bằng phương thức Activity.setContentView(), Content view là đối tượng View ở gốc của cây phân cấp. Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời của một hoạt động. Hình 4: Vòng đời của một Activity 22 0 0 Class Activity định nghĩa các sự kiện sau đây : - onCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên.
- onStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng. - onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng. - onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạtđộng trước đó. - onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng.
- onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại mộtlần nữa. Service Một Service không có giao diện trực quan, nó chạy nền trong một khoảng thời gian không xác định. Trong khi kết nối, người dùng có thể giao tiếp với Service thông qua giao diện mà Service đó trưng qua. Service chạy chạy trong Thread chính của ứng dụng, vì thế chúng không ngăn chặn các thành phần khác hay giao diện của người sử dụng, chúng thường tạo ra các Thread khác cho các nhiệm vụ hao tổn thời gian.
Content Provider Một Content Provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả dụng cho các ứng dụng khác. Dữ liệu có thể được lưu trữ trong hệ thống file, trong một cơ sở dữ liệu SQLite, hay trong một cách khác nào đó. Content Provider mở rộng của lớp cơ sở ContentProvider để cài đặt một tập các chuẩn các phương thức cho phép các ứng dụng khác đạt được và lưu trữ dữ liệu của kiểu mà nó điều khiển. Tuy nhiên, các ứng dụng không gọi trực tiếp các phương thức này, chúng sử dụng một đối tượng ContentResolver và gọi các phương thức của nó.
Một ContentResolver có thể nói chuyện với bất 23 0 0 cứ Content Provider nào, chúng cộng tác với provider để quản lý giao tiếp liên tiến trình. Broadcast Receive Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận và đáp lại các thông báo Broadcast. Nhiều Broadcast khởi đầu trong mã hệ thống. Các ứng dụng có thể tạo ra các Broadcast, chẳng hạn để ứng dụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử dụng chúng.
Broadcast Receiver không hiển thị một giao diện người dùng. Tuy nhiên, chúng có thể bắt đầu một Activity để đáp lại thông tin mà chúng nhận, hay chúng có thể sử dụng NotificationManager để cảnh báo người dùng. Notifications có thể gây sự chú ý của người dùng bằng nhiều cách. View Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tượng View và ViewGroup.
Có nhiều kiểu View và ViewGroup. Mỗi một kiểu là môt con của Class View và tất cả các kiểu đó gọi là các Widget. Tất cả các Widget đều có chung các thuộc tính cơ bản như là trình bày vị trí, background, kích thước, lề…Tất cả những thuộc tính này được thể hiện hết ở trong đối tượng View. Để thể hiện một màn hình thì trong hàm onCreate của mỗi Activity cần phải được gọi một hàm là setContentView (R.
Hàm này sẽ load giao diện từ file XML lên để phân tích thành mã bytecode. Intent Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau. Intent chính là người đưa thư, giúp các 24 0 0 Activity có thể triệu gọi cũng như truyền các dữ liệu cần thiết tới một Activity khác. Giới thiệu Firebase là một nền tảng ứng dụng di động và web với các công cụ và hạ tầng được thiết kế để giúp các lập trình viên xây dựng các ứng dụng chất lượng cao.
Tính năng cơ bản Hình 5: Các tính năng cơ bản của Firebase 1.1 Realtime Database Firebase lưu trữ dữ liệu database dưới dạng JSON và thực hiện đồng bộ database tới tất cả các client theo thời gian thực. Cụ thể hơn là bạn có thể xây dựng được client đa nền tảng (cross-platform client) và tất cả các client này sẽ cùng sử dụng chung 1 database đến từ Firebase và có thể tự động cập nhật mỗi khi dữ liệu trong database được thêm mới hoặc sửa đổi. Ngoài ra Firebase còn cho phép bạn phân quyền một các đơn giản bằng cú pháp tương tự như Javascript. - Tự động tính toán quy mô ứng dụng của bạn - Các tính năng bảo mật lớp đầu - Làm việc offline 25 0 0 Firebase Authentication Với Firebase, bạn có thể dễ dàng xác thực người dùng từ ứng dụng của bạn trên Android, IOS và JavaScript SDKs chỉ với một vài đoạn mã.
Firebase đã xây dựng chức năng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google, và xác thực nạc danh.