CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 Tổng quát về hệ điều hành di động Hệ điều hành di động (tiếng Anh "mobile operating system") là một hệ điều hành dành cho các thiết bị điện thoại di động, máy tính bảng, đồng hồ thông minh, laptop 2 trong 1 (laptop có thể chuyển giữa chế độ máy tính và máy tính bảng), hoặc các thiết bị di động khác. Trong khi đa phần các máy tính xách tay (laptop) cũng có tính "di động", nhưng các hệ điều hành thường được sử dụng trên chúng không được xem là hệ điều hành di động, vì các hệ điều hành này được thiết kế ban đầu cho máy tính để bàn và không có hoặc không cần các tính năng di động cụ thể. Ngày nay, sự phân biệt giữa hệ điều hành cho máy tính để bàn và hệ điều hành di động càng trở nên mờ dần, khi một số hệ điều hành mới hoặc các phiên bản mới cho phép hỗ trợ cả hai nền tảng di động và cố định. Hệ điều hành di động kết hợp các tính năng của một hệ điều hành cho máy tính cá nhân với các tính năng khác hữu ích cho việc sử dụng di động hoặc cầm tay; thường bao gồm hầu hết các chức năng được coi là cần thiết trong các hệ thống di động hiện đại như: màn hình cảm ứng, mạng thiết bị di động, Bluetooth, Wi-Fi Protected Access, Wi-Fi, Hệ thống Định vị Toàn cầu (GPS), máy ảnh số cho phép chụp ảnh và quay video, nhận dạng tiếng nói, thu âm, chơi nhạc, kết nối trường gần, và đèn hồng ngoại điều khiển từ xa.
Đến cuối năm 2016, hơn 430 triệu điện thoại thông minh đã được bán với 81,7 % chạy nền tảng Android, 17.3 % chạy Windows 10 Mobile (hiện các thiết bị chạy nền tảng này không còn được bán trên thị trường) và các hệ điều hành khác chiếm 0.Android còn phổ biến hơn so với hệ điều hành Windows, hệ điều hành phổ biến nhất trên máy tính để bàn. Lượng sử dụng điện thoại thông minh (thậm chí chưa bao gồm máy tính bảng) đã nhiều hơn cả lượng máy tính để bàn đang sử dụng (nhu cầu sử dụng máy tính tổng thể đã giảm xuống 44,9% trong quý I năm 2017).2 Tổng quan về JAVA ANDROID NATIVE 1.1 Khái niệm Burn Fast App là tên gọi của ứng dụng được phát triển cũng như xây dựng bằng các công cụ do chính nhà phát triển đã cung cấp cho các lập trình viên. App được áp dụng phổ biến bằng một số ngôn ngữ hệ điều hành và chúng sở hữu một số tính năng đã có sẵn trên các hệ điều hành đó. Điều này cho phép những hệ điều hành có vận tốc cao không nhất thiết phải thực hiện thông qua bất kỳ ứng dụng bên thứ ba hay engine nào cả.
Ứng dụng của Android sẽ viết được bằng hai loại ngôn ngữ bao gồm Kotlin và Java.2 Tại sao lại chọn hệ điều hành Android Android hiện là hệ điều hành di động phổ biến nhất hiện nay với thị phần trung bình hơn 50% trên toàn thế giới. Hệ điều hành Android có những ưu điểm: + Là hệ điều hành có mã nguồn mở nên khả năng tùy biến cao, có thể tùy ý chỉnh sửa mà không có sự can thiệp hay cấm cản từ Google. + Đa dạng sản phẩm, rất nhiều hãng điện thoại, thiết bị công nghệ đã ưu ái chọn Android cho thiết bị của họ, giá cả thì hợp lý từ bình dân đến cao cấp. + Kho ứng dụng Google Play Store đồ sộ.
+ Thân thiện và dễ sử dụng. + Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao.3 Kiến trúc Android Hệ điều hành Android là 1 ngăn xếp các thành phần phần mềm, được chia thành 5 phần và 4 lớp chính như trong hình bên dưới. Hình ảnh cấu trúc Android ●APPLICATIONS: Lớp trên cùng của kiến trúc là Application. Các ứng dụng bạn tạo ra sẽ được cài đặt trên lớp này.
Ví dụ như: Danh bạ, nhắn tin, trò chơi… ●APPLICATIONS FRAMEWORK: Lớp Android Framework cung cấp các dịch vụ cấp độ cao hơn cho các ứng dụng dưới dạng các lớp Java. Các nhà phát triển ứng dụng được phép sử dụng các dịch vụ này trong ứng dụng của họ. Android Framework bao gồm các dịch vụ chính sau: ❖ Activity Manager - Kiểm soát tất cả khía cạnh của vòng đời ứng dụng và ngăn xếp các Activity. ❖ Content Providers - Cho phép các ứng dụng chia sẽ dữ liệu với các ứng dụng khác.
❖ Resource Manager - Cung cấp quyền truy cập vào các tài nguyên như các chuỗi, màu sắc, các layout giao diện người dùng. ❖ Notifications Manager - Cho phép các ứng dụng hiển thị cảnh báo và các thông báo cho người dùng. ❖ View System - Tập các thành phần giao diện (view) được sử dụng để tạo giao diện người dùng. 4 ● LIBRARIES: Ở trên lớp nhân Linux là tập các thư viện bao gồm WebKit - trình duyệt Web mã nguồn mở, được biết đến như thư viện libc, cơ sở dữ liệu SQLite - hữu dụng cho việc lưu trữ và chia sẻ dữ liệu ứng dụng, các thư viện chơi và ghi âm audio, video, hay các thư viện SSL chịu trách nhiệm bảo mật Internet… ●ANDROID RUNTIME: Đây là phần thứ 3 của kiến trúc và nằm ở lớp thứ 2 từ dưới lên.
Phần này cung cấp 1 bộ phận quan trọng là Dalvik Virtual Machine - là 1 loại Java Virtual Machine được thiết kế đặc biệt để tối ưu cho Android. Dalvik VM sử dụng các đặc trưng của nhân Linux như quản lý bộ nhớ và đa luồng, những thứ mà đã có sẵn trong Java. Dalvik VM giúp mọi ứng dụng Android chạy trong tiến trình riêng của nó, với các thể hiện (instance) riêng của Dalvik virtual Machine. Android Runtime cũng cung cấp 1 tập các thư viện chính giúp các nhà phát triển ứng dụng Android có thể viết ứng dụng Android bằng Java.
●LINUX KERNEL: Dưới cùng là lớp Linux - Linux 3.6 cùng với khoảng 115 bản vá. Lớp này cung cấp 1 cấp độ trừu tượng giữa phần cứng của thiết bị và các thành trình điều khiển phần cứng thiết yếu như máy ảnh, bàn phím, màn hình hiển thị. Đồng thời, hạt nhân (kernel) còn xử lý tất cả các thứ mà Linux có thể làm tốt như mạng kết nối và 1 chuỗi các trình điều khiển thiết bị, giúp cho giao tiếp với các thiết bị ngoại vi dễ dàng hơn.4 Một số khái niệm cơ bản của Android 1.1 Weather Đây là một trong những ứng dụng dự báo thời tiết tốt nhất hiện nay, cung cấp cho bạn thông tin chi tiết như nhiệt độ, dự báo mưa, bão, v. tại khu vực của bạn, hoặc bạn cũng có thể chọn xem một khu vực khác để biết tình hình thời tiết tại đó.
1Weather miễn phí để sử dụng, phiên bản trả phí giá 1.99USD sẽ loại bỏ các quảng cáo. Hình ảnh chức năng sử dụng Weather 1.2 Google Keep Notes Google Keep Notes là một Widget ghi chú đơn giản và hiệu quả dành cho Android. Với tính năng này, bạn có thể tạo ghi chú văn bản, ghi chú dạng list và thậm chí cả ghi chú bằng giọng nói. Nó cũng cung cấp cho bạn tùy chọn để chia sẻ ghi chú với những người khác.
Google Keep cũng đi kèm với một bộ Widget Android đơn giản, cho phép bạn tạo các ghi chú nhanh chóng. Toàn bộ ghi chú đó sẽ được đồng bộ hóa thông qua tài khoản Google của bạn. Do đó bạn có thể truy cập note của mình trên máy tính, điện thoại và cả tablet. Hình ảnh Google Keep Notes 1.
Tổng quan về ROOMDATABASE 1.1 Khái niệm 6 Room database được phát triển và cải tiến từ sqlite. Room database giúp đơn giản hoá việc code, và giảm thiểu các công đoạn liên quan đến cơ sở dữ liệu. Bản chất Room database là abstract layer gồm cơ sở dữ liệu chuẩn SQLite được Android thông qua. Với 3 thành phần chính là: Database, DAO(Data Access Object) và entity.
Mỗi thành phần đều có nhiệm vụ và chức năng riêng.2 Tại sao lại chọn RoomDatabase Room database cung cấp một lớp trừu tượng trên cơ sở của SQLite và cho phép truy cập cơ sở dữ liệu mạnh hơn cũng như tận dùng lại được toàn bộ sức mạnh của SQLite đã vốn có. Library này sẽ giúp bạn tạo bộ nhớ cache dữ liệu của ứng dụng. Cho phép bạn có thể lưu trữ và lấy lại dữ liệu khi cần. Roomdatabase bao gồm 3 major component như sau : ● Database đóng vai trò là điểm truy cập chính cho kết nối với cơ sở dữ liệu của bạn ● Entity: Như là một table trong database , đại diện của một class Entity ● DAO: Chứa các method dùng để truy cập database .Cơ bản sẽ là CRUD data 1.3 SQLite và RoomDatabase Điều đầu tiên chúng ta sẽ quan tâm đấy là thành phần Room database gồm những gì.
Hình ảnh thành phần RoomDatabase ● SQLite database: Đây chính là thành phần cốt lõi mà các data được lưu trữ trong đây. Và file này được lưu trong thiết bị. ● DAO (Data access object): Chứa các ánh xạ SQLite tới các hàm CRUD. Chắc hẳn bạn vẫn còn nhớ mình đã phải rất cẩn thận viết câu queries SQLite chứ, nếu chẳng may có sai thì phải dò lại rất cẩn thận.
Nhưng bây giờ điều đó trở lên đơn giản hơn rất nhiều, khi bạn dùng DAO và call các method rồi Room sẽ làm tiếp những phần còn lại. ● Entity: Đây chính là những đối tượng nhỏ bạn cần lưu trữ (table) Ex: user table, event table,. Hiện tại tất cả việc định nghĩa thuộc tính đã được support bằng annotations rất ngắn gọn. ● Room database: Đây là lớp abstract layer nằm ngoài cùng đóng vai trò quản lý SQLite database và cho phép truy cập tới tầng dưới cùng của SQLite.
Room dùng DAO để thực hiện các queries tới database. Công cụ Android Studio 1.1 Khái niệm Android Studio là IDE chính thức được sử dụng trong phát triển ứng dụng Android dựa trên IntelliJ IDEA. Chức năng chính của Android Studio là cung cấp các giao diện giúp người dùng có thể tạo các ứng dụng và xử lý các công cụ file phức tạp sau hậu trường. Ngôn ngữ lập trình được sử dụng trong Android Studio là Java và nó sẽ được cài đặt sẵn trên thiết bị của bạn.
Hình ảnh Android Studio 1.2 Lịch sử hình thành Android Studio đã được công bố vào năm 2013 tại hội nghị Google I/O và được phát hành vào năm 2014 sau nhiều phiên bản khác nhau. Trước đó, thì các nhà phát triển của Android thường sử dụng các công cụ như Eclipse IDE hoặc một IDE Java chung để hỗ trợ cho nhiều ngôn ngữ lập trình khác. Android Studio giúp cho việc tạo ứng dụng dễ dàng hơn so với các phần mềm chuyên dụng. Với người mới, sẽ có rất nhiều thứ phải học và nhiều thông tin có sẵn.