Nó là một phần của bộ nhớ được sử dụng để lưu trữ tạm thời dữ liệu và tài nguyên để cải thiện hiệu suất của điện thoại thông qua việc truy cập nhanh hơn đối với dữ liệu đã được lưu trữ t
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN CHỦ ĐỀ: TÌM HIỂU VỀ HỆ ĐIỀU HÀNH DI ĐỘNG NHĨM 06 Đề tài số: 07 Giảng viên: Ths Đỗ Tiến Dũng Thành viên: Lưu Ngọc Anh Cao Việt Đức Nguyễn Đức Anh Nguyễn Anh Quân Đỗ Hồng Phi Nguyễn Quốc Việt Lê Văn Duy HÀ NỘI – 2023 MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU PHẦN 1: GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH DI ĐỘNG PHẦN 2: TÌM HIỂU VỀ HỆ ĐIỀU HÀNH DI ĐỘNG I Kiến trúc hệ thống Mô hình kiến trúc hệ điều hành di động Các chức hệ điều hành di động Các thành phần hệ điều hành di động 3.1 Nhân hệ điều hành (kernel) 3.2 Thực thi quy trình 3.3 Thư viện hệ thống 3.4 Thời gian chạy 3.5 Giao diện người dùng So sánh với kiến trúc hệ thống nguyên lý hệ điều hành II Tổ chức nhớ Các thành phần nhớ 1.1 Bộ nhớ 1.2 Bộ nhớ Ram 1.3 Thẻ nhớ 1.4 Bộ nhớ cache Tổ chức nhớ 2.1 Bộ nhớ ứng dụng nhớ hệ thống 2.2 Phân chương nhớ 2.3 Phân trang nhớ 2.4 Bộ nhớ ảo (Bộ nhớ thứ cấp) 2.5 Đổi trang 2.6 Cấp phát khung trang 2.7 Tình trạng trì trệ So sánh với tổ chức nhớ nguyên lý hệ điều hành III Tổ chức INPUT/OUTPUT Tổ chức I/O hệ điều hành di động 1.1 Luồng I/O 1.2 Trình điều khiển (Drivers) 1.3 API 1.4 Quyền truy cập bảo mật 1.5 Lập lịch I/O 1.6 Đệm (Buffering) So sánh với tổ chức I/O nguyên lý hệ điều hành IV Môi trường phát triển ứng dụng Môi trường phát triển ứng dụng di động 1.1 Mơi trường lập trình hệ điều hành Android 1.2 Mơi trường lập trình hệ điều hành iOS 1.3 Các dịch vụ hệ điều hành cung cấp 1.4 Cơ sở liệu tài nguyên bên 1.5 Quyền bảo mật 1.6 Ứng dụng đa tảng So sánh với môi trường phát triển ứng dụng máy tính cá nhân PHẦN 3: THỬ NGHIỆM LẬP TRÌNH ĐỒ HỌA TRÊN HỆ ĐIỀU HÀNH DI ĐỘNG PHẦN 4: KẾT LUẬN TÀI LIỆU THAM KHẢO LỜI NĨI ĐẦU Hệ điều hành di động, khơng thể phủ nhận, trở thành phần thiếu sống hàng ngày Trên thiết bị thông minh mà sử dụng - từ điện thoại di động máy tính bảng - hệ điều hành hoạt động ẩn sau hình cảm ứng giao diện thân thiện với người dùng Mặc dù thường khơng xuất trực tiếp trước mắt người dùng, nhiên, hệ điều hành quản lý điều khiển tất hoạt động thiết bị, đảm bảo tính ổn định hiệu suất cao Bài báo cáo đặt nhiệm vụ quan trọng tìm hiểu hệ điều hành di động so sánh chúng với nguyên lý hoạt động hệ điều hành tổng quát dựa khía cạnh kiến trúc hệ thống, tổ chức nhớ, tổ chức I/O môi trường phát triển ứng dụng Từ đó, hiểu rõ cách hệ điều hành tương tác với phần cứng ứng dụng sao, làm để hệ điều hành quản lý tối ưu hóa sử dụng tài nguyên hiệu đối mặt với thách thức ngày nghiêm trọng bảo mật quản lý liệu PHẦN 1: GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH DI ĐỘNG Hệ điều hành di động (Mobile operating system) thuật ngữ hệ điều hành sử dụng thiết bị di động điện thoại, máy tính bảng thiết bị thông minh khác Ngày nay, thời đại Internet phát triển mạnh mẽ, sử dụng hệ điều hành di động nhiều so với hệ điều hành máy tính Window, MacOS, Ubuntu, Vậy bạn có thực hiểu rõ hệ điều hành di động không? Trong nửa kỷ phát triển điện thoại di động, có hệ điều hành di động xuất hiện? Và hệ điều hành tồn xuyên suốt đến tận hay bị lạc hậu rơi vào quên lãng thời gian? Chúng ta điểm qua vài cột mốc quan trọng lịch sử phát triển hệ điều hành 1980: Bước Đầu Của Microsoft với Windows CE Lịch sử hệ điều hành di động bắt đầu vào thập kỷ 1980 Microsoft với phát triển Windows CE Windows CE 1.0 thức mắt vào năm 1996 Dựa tảng Windows 95, xem phiên đơn giản hóa đơn sắc hệ điều hành máy tính để bàn Tên đầy đủ "Windows Embedded Compact," việc viết tắt CE dấu hỏi 2000-2006: Thế kỷ 21 thay đổi đột phá Thế kỷ 21 chứng kiến phát triển rộng rãi điện thoại di động, biến chúng thành thiết bị thiết yếu sống hàng ngày Trong thời kỳ thịnh vượng PDA vào thập kỷ 2000, hệ điều hành di động Palm OS chiếm 90% thị phần PDA Tuy nhiên, với gia tăng nhanh chóng điện thoại di động, PDA dần trở nên lỗi thời *PDA: loại thiết bị di động thiết kế cho việc quản lý thông tin cá nhân bao gồm chức quản lý lịch, ghi chú, quản lý danh bạ, chí lướt web gửi email, thường có hình cảm ứng bút kèm để nhập liệu Vào q năm 2000, Windows CE khơng cịn phụ thuộc vào Windows 95 trở thành hệ thống hỗ trợ nhiều loại xử lý x86, PowerPC, ARM, MIPS phù hợp với điện thoại di động đổi tên thành Windows Pocket PC (PPC) Trong giai đoạn này, Microsoft phát triển hệ điều hành Pocket Phone Edition Windows Powered SmartPhone, hợp chúng vào Windows Mobile 2003, dựa kernel Windows CE 4.x Windows Mobile trở thành hệ điều hành cạnh tranh thị trường di động, sử dụng nhiều loại thiết bị di động, bao gồm điện thoại thông minh PDA Trong đó, Hệ điều hành BlackBerry OS đời vào tháng năm 2002 đánh dấu đời dịng điện thoại thơng minh BlackBerry, u thích bảo mật thiết kế bàn phím QWERTY độc đáo Sau đó, nhiều phiên khác BlackBerry OS phát triển giới thiệu, đặc biệt thập kỷ 2000 Điện thoại BlackBerry sử dụng hệ điều hành BlackBerry OS Document continues below Discover more from: hệ điều hanh hdh001 Học viện Công ng… 16 documents Go to course NGAN HANG Nlchdh 67 - ngân hàng câu hỏi hệ điều hanh None Huong-dan-BTL-He22 thong-Quan-ly-… hệ điều hanh None HDH N09 Nhóm 11 Đề 48 tài - ABC hệ điều hanh None Bai cai dat va cau 30 hinh cac dich vu… hệ điều hanh None Intel 10 hệ điều hanh None Bài tập lớn môn CƠ 27 SỞ DỮ LIỆU hệ điều hanh None SymbianOS, đời vào tháng năm 2001, ban đầu thành lập để tích hợp hệ điều hành PDA điện thoại di động, trở thành hệ điều hành phát triển liên minh nhà sản xuất châu Âu, đại diện cho lợi ích nhà sản xuất Nokia, Ericsson Nokia 9210 Communicator coi điện thoại thông minh sử dụng Symbian OS Đến năm 2007, Symbian đạt đỉnh cao với 200 triệu điện thoại xuất xưởng Trong giai đoạn này, thấy Symbian hệ điều hành di động dẫn dầu tuyệt đối, Windows Mobile BlackBerry OS cạnh tranh vị trí thứ Trong Palm OS bắt đầu suy giảm Tuy nhiên, cách mạng chớm nở, hoàn toàn thay đổi cảnh quan thị trường điện thoại di động đưa người vào thời đại liên lạc di động 2007 – nay: Cuộc cách mạng với iOS Android iOS hệ điều hành di động giới thiệu Apple vào năm 2007 với việc mắt iPhone Với giao diện người dùng đơn giản, dễ sử dụng với tính tiên tiến, iOS mang lại cách mạng lĩnh vực điện thoại di động Phiên đầu tiên, iOS 1.0, đời với ứng dụng Mail, Safari, Music, Photos, Phone, đặc biệt App Store - cửa hàng ứng dụng thị trường di động Điều mở cánh cửa cho phát triển nhiều ứng dụng độc đáo thú vị Lúc đó, iOS làm bật kết hợp phần cứng phần mềm độc đáo Apple Hình ảnh iPhone Android, phát triển Google, giới thiệu vào năm 2008 Android hệ điều hành di động mã nguồn mở, cho phép linh hoạt phát triển tùy chỉnh Phiên Android, Android 1.0, khơng có tên mã cụ thể, cung cấp tính cho điện thoại di động Điều đặc biệt Android 1.0 giới thiệu tích hợp tính Google Search tích hợp dịch vụ Gmail, thúc đẩy kết hợp chặt chẽ với sản phẩm dịch vụ Google Android 1.0 cài đặt điện thoại sử dụng hệ điều hành này, T-Mobile G1 (còn gọi HTC Dream), tạo tảng cho phát triển đáng kể hệ điều hành di động Hình ảnh T-Mobile G1 Từ năm 2010 trở đi, cách mạng thực bùng nổ với cạnh tranh hai hệ điều hành chủ đạo: iOS Android Cả hai không ngừng cải tiến giới thiệu hàng triệu ứng dụng tính Trong cạnh tranh này, iOS Apple Android Google trở thành hai hệ điều hành phổ biến thị trường hệ điều hành di động Hiện nay, iOS Android mở rộng diện họ từ điện thoại di động sang nhiều lĩnh vực khác, bao gồm đồng hồ thông minh, máy tính bảng, thiết bị Internet of Things (IoT) Điều chứng tỏ uyển chuyển khả thích nghi hệ điều hành di động giới liên lạc di động ngày đa dạng Vậy hệ điều hành di động có kiến trúc nào, cách thức hoạt động, tổ chức quản lý liệu tài nguyên sao, trình bày phần 2: Tìm hiểu hệ điều hành di động phần báo cáo PHẦN 2: TÌM HIỂU VỀ HỆ ĐIỀU HÀNH DI ĐỘNG I Kiến trúc hệ thống Mơ hình kiến trúc hệ điều hành di động Thiết kế hệ điều hành di động trải qua trình gồm giai đoạn: từ hệ điều hành dựa PC sang hệ điều hành nhúng đến hệ điều hành hướng tới điện thoại thông minh(Smart-phone) suốt thập kỷ qua Trong suốt trình này, kiến trúc hệ thống hệ điều hành di động từ phức tạp đến đơn giản đến mức độ trung bình Quá trình phát triển thúc đẩy cách tự nhiên tiến công nghệ phần cứng, phần mềm mạng Internet Về bản, hệ điều hành di động có hai mơ hình kiến trúc mơ hình truyền thống mơ hình Mơ hình kiến trúc hệ điều hành di động Mơ hình truyền thống Trong mơ hình kiến trúc truyền thống, hệ điều hành di động chia thành hai lớp chính: lớp phần cứng lớp phần mềm Lớp phần cứng bao gồm tất thành phần vật lý thiết bị di động CPU, RAM, ROM thiết bị ngoại vi Lớp phần mềm, đó, bao gồm nhân hệ điều hành, thư viện hệ thống, thời gian chạy, giao diện người dùng ứng dụng hệ thống Trong mơ hình này, nhân hệ điều hành trái tim hệ thống, đảm bảo quản lý hiệu tài nguyên phần cứng CPU RAM Nó cung cấp dịch vụ quan trọng cho ứng dụng, quản lý tiến trình quản lý nhớ Thư viện hệ thống chứa hàm chức chung sử dụng ứng dụng để thực nhiệm vụ thông thường xử lý văn đồ họa Thời gian chạy chuyển mã nguồn ứng dụng thành mã máy thực thi CPU Giao diện người dùng cung cấp cách tương tác với hệ điều hành thơng qua thành phần hình cảm ứng, bàn phím chuột Cuối cùng, ứng dụng hệ thống ứng dụng tích hợp sẵn với hệ điều hành trình duyệt web trình quản lý tập tin Mơ hình Mơ hình đem lại thay đổi cách hiểu kiến trúc hệ điều hành di động Trong mơ hình này, có ba lớp chính: lớp phần cứng, lớp hệ thống lớp ứng dụng có khả xử lý I/O nhanh chóng khơng cần phải dựa vào dịch vụ I/O trực tiếp nhiều trường hợp IV Môi trường phát triển ứng dụng Môi trường phát triển ứng dụng di động tập hợp công cụ tài nguyên mà nhà phát triển sử dụng để xây dựng ứng dụng cho thiết bị di động điện thoại di động máy tính bảng bao gồm ngơn ngữ lập trình, SDK (Software Development Kit), cơng cụ phát triển tích hợp (IDE), giao diện người dùng (Android XML Layouts Interface Builder Xcode), sở liệu (SQLite, MongoDB, dịch vụ dám mây AWS, Firebase), API dịch vụ bên ngồi, cơng cụ kiểm tra gỡ lỗi, công cụ quản lý mã nguồn, Môi trường phát triển ứng dụng di động không bao gồm công cụ kỹ thuật mà yêu cầu kiến thức quy trình phát triển, thiết kế, tương tác với cộng đồng người dùng để xây dựng ứng dụng thành cơng Có nhiều hệ điều hành khác dành cho thiết bị di động: - iOS: Hệ điều hành Apple sử dụng thiết bị iPhone, iPad iPod Touch iOS phát triển riêng cho sản phẩm Apple đặc trưng giao diện người dùng mượt mà môi trường kiểm soát chặt chẽ - Android: Android hệ điều hành phổ biến cho thiết bị di động, phát triển Google Nó chạy nhiều loại thiết bị từ nhiều nhà sản xuất khác có cộng đồng lớn phát triển ứng dụng - Windows Phone (Windows Mobile): Hệ điều hành Microsoft dành cho điện thoại di động, ngừng phát triển hỗ trợ vào năm 2019 - HarmonyOS (Hongmeng): Được phát triển Huawei, HarmonyOS hệ điều hành đa tảng thiết kế để hoạt động nhiều loại thiết bị, bao gồm điện thoại di động, máy tính bảng, thiết bị thơng minh khác … Các hệ điều hành di động thường địi hỏi mơi trường phát triển cơng cụ riêng biệt để xây dựng ứng dụng cho chúng Nhà phát triển phải chọn môi trường phù hợp với hệ điều hành mà họ muốn phát triển ứng dụng để bắt đầu công việc phát triển Ở tập trung vào mơi trường lập trình hệ điều hành phổ biến Android iOS Môi trường phát triển ứng dụng di động 1.1 Mơi trường lập trình hệ điều hành Android Android hệ điều hành di động phổ biến, phát triển Google, sử dụng hàng tỷ thiết bị khác toàn giới Điều tạo môi 31 trường phát triển đa dạng hội thị trường lớn cho nhà phát triển ứng dụng Android có mã nguồn mở, cho phép cộng đồng phát triển tùy chỉnh sáng tạo Người dùng tùy chỉnh giao diện người dùng cài đặt họ, Android tích hợp sâu với dịch vụ Google Với cộng đồng phát triển lớn phát triển liên tục, Android tiếp tục tảng phát triển ứng dụng quan trọng thị trường di động Integrated Development Environment (IDE): Android Studio môi trường phát triển tích hợp thức Google cho việc phát triển ứng dụng Android Nó cung cấp giao diện dễ sử dụng tích hợp nhiều cơng cụ tiện ích hỗ trợ việc phát triển, thiết kế giao diện người dùng kiểm tra ứng dụng Ngôn ngữ lập trình: Android hỗ trợ hai ngơn ngữ lập trình chính: Java Kotlin Kotlin trở thành ngơn ngữ ưa thích cho phát triển Android tính đại hỗ trợ mạnh mẽ từ Google Java Kolin cung cấp Android SDK (Software Development Kit) - công cụ thư viện cung cấp thứ bạn cần để phát triển ứng dụng Android Nó bao gồm API, thư viện, công cụ khác để xây dựng kiểm tra ứng dụng Giao diện người dùng: 32 Android cung cấp nhiều công cụ cho việc tạo giao diện người dùng Lập trình viên sử dụng cơng cụ kéo thả Android Studio, viết mã XML sử dụng Jetpack Compose, công cụ phát triển giao diện khuyến nghị Google Jetpack Compose giúp đồng việc xây dựng giao diện logic việc sử dụng ngơn ngữ lập trình Kotlin 1.2 Mơi trường lập trình hệ điều hành iOS Hệ điều hành iOS hệ điều hành di động hàng đầu giới, phát triển trì Apple Inc iOS tiếng với giao diện người dùng đơn giản, trực quan độc đáo, sáng tạo Apple Người dùng iOS tận hưởng ưu điểm App Store, nơi họ tải xuống hàng ngàn ứng dụng trò chơi để tùy chỉnh làm phong phú trải nghiệm họ thiết bị iPhone, iPad iPod Touch Đối với lập trình viên, iOS cung cấp môi trường phát triển ứng dụng mạnh mẽ cách sử dụng ngôn ngữ Swift đại cơng cụ phát triển Xcode Bên cạnh đó, iOS đặc trưng với bảo mật cao, bảo vệ liệu quyền riêng tư người dùng Hệ điều hành iOS không tảng phát triển ứng dụng, mà biểu tượng sáng tạo tích hợp mạnh mẽ phần cứng phần mềm giới di động Integrated Development Environment (IDE): Cho phát triển ứng dụng iOS, Apple cung cấp IDE mạnh mẽ gọi Xcode Xcode môi trường phát triển tích hợp thức cho việc phát triển ứng dụng iOS macOS Nó bao gồm thứ từ việc viết mã, thiết kế giao diện người dùng, đến kiểm tra triển khai ứng dụng Ngôn ngữ lập trình: 33 Swift: Đây ngơn ngữ lập trình đại Apple giới thiệu vào năm 2014 Swift thiết kế để dễ đọc, dễ viết, an tồn Objective-C, ngơn ngữ trước sử dụng cho việc phát triển ứng dụng iOS Objective-C: Objective-C tồn thời gian dài sử dụng số ứng dụng cũ tương tác với mã nguồn cũ Giao diện người dùng: Apple cung cấp công cụ thiết kế giao diện người dùng mạnh mẽ gọi Interface Builder, tích hợp Xcode Nó cho phép lập trình viên thiết kế giao diện người dùng cách kéo thả tạo kết nối giao diện mã nguồn 1.3 Các dịch vụ hệ điều hành cung cấp Hệ điều hành di động cung cấp loạt dịch vụ tài nguyên hữu ích cho việc phát triển ứng dụng di động Dưới số dịch vụ quan trọng mà hệ điều hành di động cung cấp cho nhà phát triển ứng dụng: Các dịch vụ cung cấp hệ điều hành Android Quản lý quyền bảo mật: Hệ điều hành di động cung cấp chế quản lý quyền để kiểm soát quyền truy cập vào tài nguyên máy ảnh, vị trí GPS, danh bạ, liệu cá nhân người dùng Hệ thống quyền chế bảo mật giúp đảm bảo tính riêng tư bảo mật người dùng 34 Truy cập vào phần cứng cảm biến: Hệ điều hành cho phép ứng dụng truy cập vào tính phần cứng máy ảnh, microphone, cảm biến gia tốc, cảm biến vị trí GPS, nhiều thiết bị khác Điều cho phép ứng dụng tạo tính trải nghiệm đa dạng Quản lý vòng đời ứng dụng: Hệ điều hành quản lý vòng đời ứng dụng, cho phép ứng dụng tạm dừng, khôi phục, kết thúc tùy theo tương tác người dùng tình trạng thiết bị Quản lý giao diện người dùng: Hệ điều hành cung cấp phần mềm công cụ để tạo giao diện người dùng đẹp trải nghiệm người dùng tốt Điều bao gồm thư viện framework để xây dựng giao diện người dùng, quản lý cửa sổ hình, sử dụng yếu tố giao diện nút, danh sách, bảng điều khiển Quản lý liệu: Hệ điều hành di động cung cấp công cụ API cho việc lưu trữ quản lý liệu Điều bao gồm sở liệu cục bộ, lưu trữ đám mây, khung làm việc để làm việc với liệu Truyền thông kết nối: Hệ điều hành cho phép ứng dụng truy cập vào dịch vụ mạng, gửi nhận liệu qua mạng, tương tác với thiết bị ngoại vi Bluetooth NFC Điều cho phép ứng dụng tạo tính liên quan đến kết nối truyền thơng Đám mây tích hợp dịch vụ: Hệ điều hành di động cung cấp tích hợp với dịch vụ đám mây lưu trữ, xác thực người dùng, thông báo đám mây, nhiều dịch vụ khác Điều giúp ứng dụng kết nối tương tác với dịch vụ bên để cung cấp trải nghiệm đa dạng cho người dùng Những dịch vụ tài nguyên giúp nhà phát triển ứng dụng di động xây dựng ứng dụng mạnh mẽ đáp ứng nhu cầu người dùng thiết bị di động khác Đám mây tích hợp dịch vụ mơ hình truyền thống mơ hình 35 1.4 Cơ sở liệu tài nguyên bên 1.4.1 Cơ sở liệu SQLite: SQLite hệ quản trị sở liệu nhẹ, dựng sẵn phổ biến cho việc lưu trữ liệu cục ứng dụng di động Nó lựa chọn phổ biến cho việc lưu trữ liệu cài đặt ứng dụng, lịch sử, liệu người dùng Firebase: Firebase tảng đám mây Google cung cấp nhiều dịch vụ, bao gồm Firebase Realtime Database Firebase Cloud Firestore, cho việc lưu trữ đồng liệu từ xa Firebase cung cấp tích hợp dễ dàng cho ứng dụng di động cung cấp tính xác thực người dùng, phân tích, thơng báo đám mây, nhiều tính khác AWS (Amazon Web Services): AWS cung cấp dịch vụ đám mây cho việc lưu trữ quản lý liệu từ xa Các dịch vụ Amazon S3 (lưu trữ đối tượng) Amazon DynamoDB (cơ sở liệu NoSQL) sử dụng để lưu trữ quản lý liệu từ xa cho ứng dụng di động bạn 1.4.2 API dịch vụ bên 36 API xã hội: Các dịch vụ xã hội Facebook, Twitter, Instagram cung cấp API cho phép ứng dụng bạn tương tác với tảng xã hội Bằng cách sử dụng API này, bạn cho phép người dùng đăng nhập tài khoản xã hội, chia sẻ nội dung, tương tác với tài khoản xã hội Thanh toán trực tuyến: Đối với toán trực tuyến, dịch vụ PayPal, Stripe, Apple Pay cung cấp API để xử lý giao dịch toán bảo mật ứng dụng bạn Điều cho phép bạn tích hợp chức toán vào ứng dụng để mua hàng trả phí dịch vụ Dịch vụ khác: Ngồi ra, có nhiều dịch vụ bên khác Google Maps, Twilio (cho việc gửi tin nhắn SMS), nhiều API khác cho phép ứng dụng bạn tương tác với dịch vụ tính bên ngồi để cung cấp trải nghiệm đa dạng cho người dùng Khi phát triển ứng dụng di động, quản lý liệu tương tác với dịch vụ bên phần quan trọng để cung cấp tính trải nghiệm mạnh mẽ cho người dùng bạn 1.5 Quyền bảo mật Quyền bảo mật khía cạnh quan trọng phát triển ứng dụng di động Các hệ điều hành di động thiết kế hệ thống quyền chế bảo mật để bảo vệ liệu cá nhân người dùng đảm bảo ứng dụng có quyền truy cập vào tài nguyên chức cần thiết Dưới số điểm quan trọng quyền bảo mật: Hệ thống quyền (Permission System): Sử dụng hệ thống quyền để quản lý việc truy cập tài nguyên máy ảnh, vị trí GPS, danh bạ, liệu nhạc Trước ứng dụng sử dụng quyền cụ thể, người dùng phải cấp quyền cho ứng dụng Điều đảm bảo ứng dụng có quyền truy cập vào liệu tính mà người dùng chấp nhận Quyền ứng dụng (App Permissions): Trong trình cài đặt ứng dụng yêu cầu quyền truy cập, người dùng thấy thông báo yêu cầu quyền Họ chấp nhận từ chối quyền Ví dụ, ứng dụng máy ảnh cần quyền truy cập máy ảnh để chụp hình 37 Quản lý quyền mã nguồn (Runtime Permission): Một số quyền yêu cầu xác nhận từ người dùng thời điểm chạy ứng dụng, thời điểm cài đặt Điều gọi quản lý quyền mã nguồn (runtime permission) Lập trình viên cần kiểm tra xem quyền cấp hay chưa trước sử dụng chúng ứng dụng Quyền nhạy cảm (Dangerous Permissions): Hệ điều hành phân biệt loại quyền, số quyền xem "quyền nhạy cảm" (dangerous permissions) có tiềm gây rủi ro cho liệu cá nhân người dùng Ví dụ, quyền đọc danh bạ truy cập vị trí GPS thuộc loại quyền nhạy cảm Ví dụ quyền nhạy cảm hệ điều hành Android 38 Sự bảo mật ứng dụng: Lập trình viên cần tuân theo nguyên tắc best practice để đảm bảo bảo mật ứng dụng họ Điều bao gồm việc mã hóa liệu, sử dụng HTTPS cho kết nối mạng, tránh lưu trữ thông tin nhạy cảm mà không cần thiết, bảo vệ chống lại loại công SQL injection Cross-Site Scripting (XSS) Bảo mật thiết bị: Hệ điều hành cung cấp tính bảo mật mã PIN, mật khẩu, xác thực vân tay để bảo vệ truy cập vào thiết bị liệu cá nhân người dùng Quyền bảo mật phần quan trọng việc phát triển ứng dụng di động để đảm bảo tính riêng tư bảo mật cho người dùng Việc tuân thủ quyền sử dụng biện pháp bảo mật cách quan trọng để tránh vấn đề bảo mật tạo tin tưởng cho người dùng 1.6 Ứng dụng đa tảng Môi trường phát triển ứng dụng đa tảng hệ thống công cụ khung làm việc sử dụng để phát triển ứng dụng có khả hoạt động nhiều tảng khác nhau, chẳng hạn iOS, Android, Windows, nhiều tảng khác Điều giúp giảm thời gian công sức cần thiết cho việc phát triển trì ứng dụng nhiều tảng khác Dưới số ví dụ mơi trường phát triển ứng dụng đa tảng phổ biến: React Native: React Native framework phát triển ứng dụng di động mã nguồn mở phát triển Facebook Nó sử dụng JavaScript React để xây dựng thành phần giao diện người dùng cho phép chia sẻ mã nguồn tảng khác React Native hỗ trợ iOS, Android nhiều tảng khác thông qua thư viện plugins Flutter: Flutter framework phát triển ứng dụng di động phát triển Google Nó sử dụng ngơn ngữ Dart cho phép xây dựng giao diện người dùng đẹp trải nghiệm tương tự nhiều tảng, bao gồm iOS, Android, web máy tính để bàn 39 Môi trường phát triển ứng dụng đa tảng cung cấp giải pháp hiệu cho việc phát triển ứng dụng nhiều tảng mà không cần viết lại mã nguồn hoàn toàn cho tảng riêng biệt Tuy nhiên, cần lưu ý môi trường có đặc điểm riêng phù hợp cho loại dự án khác So sánh với mơi trường phát triển ứng dụng máy tính cá nhân 2.1 Giống Cả hai cung cấp công cụ tài nguyên cần thiết để phát triển ứng dụng Ngơn ngữ lập trình: Cả hai mơi trường phát triển hỗ trợ nhiều ngơn ngữ lập trình phổ biến Java, C++, Python, JavaScript, Swift Công cụ phát triển tích hợp (IDE): Cả hai mơi trường phát triển cung cấp IDE mạnh mẽ tiện ích để phát triển ứng dụng Ví dụ Android Studio Xcode dành riêng cho phát triển ứng dụng di động, Visual Studio IntelliJ IDEA sử dụng rộng rãi cho phát triển ứng dụng máy tính cá nhân Framework tảng: Cả hai mơi trường hỗ trợ sử dụng framework phát triển ứng dụng phổ biến Ví dụ, React Native Kotlin Multiplatform framework phát triển ứng dụng sử dụng để xây dựng ứng dụng cho hệ điều hành di động Các framework NET Framework, NET Core, Angular, VueJs, NodeJs,… sử dụng cho việc phát triển ứng dụng mơi trường máy tính cá nhân Cả hai mơi trường có tảng phát triển chính, kèm với cơng cụ, thư viện tài nguyên phát triển Ví dụ, Android iOS hai tảng phát triển ứng dụng di động phổ biến, Windows, macOS Linux tảng cho phát triển ứng dụng máy tính cá nhân Các tảng cung cấp công cụ SDK (Software Development Kit) API (Application Programming Interface) để phát triển ứng dụng tảng tương ứng Cả hai có quy trình phát triển ứng dụng tương tự Các quy trình bao gồm thiết kế, phát triển, kiểm tra triển khai 2.2 Khác Môi trường phát triển ứng dụng Môi trường phát triển ứng hệ điều hành di động dụng máy tính cá nhân u cầu cơng cụ tài nguyên Yêu cầu công cụ tài nguyên Có thể sử dụng cơng cụ đặc biệt cho hệ điều hành cụ thể tài nguyên chung cho nhiều hệ điều hành khác Hạn chế tài nguyên Các thiết bị di động thường có tài Các máy tính cá nhân thường có ngun hạn chế máy tính cá tài nguyên dồi thiết nhân bị di động Yêu cầu Quyền truy cập hạn chế nghiêm Quyền truy cập hạn chế có 40 bảo mật quyền riêng tư ngặt Các công Android Studio, Xcode, Visual cụ tài Studio for Mobile nguyên phổ biến phần linh hoạt Visual Studio, Eclipse, IntelliJ IDEA Giao diện Màn hình cảm ứng, touch gestures, Chuột, bàn phím người pinch-to-zoom dùng Tương Cảm biến vân tay, cảm biến gia tác phần tốc, GPS cứng Bàn phím, chuột, cấu hình phần cứng máy tính Mơi trường phát triển ứng dụng hệ điều hành di động thường nghiêm ngặt có số lý chính: Quyền truy cập bảo mật: Hệ điều hành di động đặt quyền truy cập bảo mật cao để bảo vệ người dùng thông tin cá nhân Ứng dụng di động phải yêu cầu cho phép người dùng để truy cập vào tài nguyên nhạy cảm vị trí, danh bạ, ảnh, microphone, camera, v.v Điều giúp người dùng có quyền kiểm soát giảm thiểu rủi ro bị xâm phạm quyền riêng tư.```````````````````` Quy trình xét duyệt ứng dụng: Các cửa hàng ứng dụng di động Google Play Store Apple App Store có quy trình xét duyệt nghiêm ngặt để đảm bảo chất lượng an toàn ứng dụng Các ứng dụng phải tuân thủ nguyên tắc hướng dẫn tảng, bao gồm việc kiểm tra tính năng, bảo mật, hiệu suất sách quảng cáo Quy trình xét duyệt giúp người dùng tránh ứng dụng độc hại không đáng tin cậy Đa dạng phần cứng hình: Hệ điều hành di động chạy nhiều thiết bị có kích thước hình độ phân giải khác nhau, từ điện thoại thơng minh đến máy tính bảng Điều đòi hỏi nhà phát triển phải tùy chỉnh giao diện người dùng trải nghiệm ứng dụng để phù hợp với thiết bị khác Quy trình phát triển kiểm tra nhiều tảng phần cứng khác làm tăng phức tạp yêu cầu nghiêm ngặt Tối ưu hóa tài nguyên hiệu năng: Mơi trường di động có tài ngun hạn chế nhớ, pin băng thông mạng Nhà phát triển ứng dụng di động phải tối ưu hóa ứng dụng để sử dụng tài nguyên cách hiệu quả, tiết kiệm pin đảm bảo hiệu suất ổn định Điều yêu cầu kiến thức quan tâm đến việc tối ưu hóa kiểm tra ứng dụng môi trường di động 41 PHẦN 3: THỬ NGHIỆM LẬP TRÌNH ĐỒ HỌA TRÊN HỆ ĐIỀU HÀNH DI ĐỘNG I Giới thiệu Để hiểu rõ hệ điều hành di động, nhóm có chuẩn bị ứng dụng thử nghiệm lập trình đồ họa hệ điều hành Android Ý tưởng ban đầu ứng dụng tạo nơi người kết nối với nhau, trị chuyện thơng qua tin nhắn Ứng dụng mô theo ứng dụng Message có giao diện chức tối giản mà đảm bảo tính phục vụ người dùng Trong ứng dụng này, người dùng tạo tài khoản, đăng nhập trải nghiệm trang cá nhân tùy chỉnh Ứng dụng tích họp tính quản lý bạn bè, cho phép người dùng kết nối với thông qua chức kết bạn gửi tin nhắn ứng dụng Điều phần làm rõ cách tạo mối quan hệ xã hội môi tường ứng dụng di động Ứng dụng phát triển Android Studio ngôn ngữ Kotlin, sử dụng kiến trúc Clean Architecture mơ hình MVVM Ngồi ra, ứng dụng tận dụng tài nguyên mà hệ điều hành cung cấp quyền đọc ghi nhớ thông qua Shared Preference, quyền gửi thông báo, quyền truy cập vào tài nguyên ảnh, video để gửi tin nhắn đa phương tiện, quyền truy cập camera … Để có nhìn tổng quan hơn, thầy bạn theo dõi qua video: https://youtu.be/T5-aKZIyuhQ?si=cuxtRQIC5FL3bn9f II Các chức Đăng nhập Để truy cập vào ứng dụng người dùng cần đăng nhập tài khoản đăng ký thành cơng trước với email mật Để bảo mật mật người dùng mã hóa bảo vệ cách an tồn Sau thông tin đăng nhập xác thực, người dùng chuyển đến trang cá nhân, nơi họ truy cập danh bạ bạn bè, gửi nhận tin nhắn, tùy chỉnh thông tin cá nhân Người dùng đăng ký tài khoản chưa có tài khoản cách nhấn vào nút “Đăng ký” cuối hình để chuyển sang trang “Đăng ký” Đăng ký 42 Khi người dùng đăng ký tài khoản mới, người dùng yêu cầu nhập vào Họ tên, Email, Mật Sau xem xét “chính sách” “điều khoản”, khơng có vấn đề gì, người dùng tích vào ô “Tôi đồng ý ” nhấn nút “Đăng ký” để hoàn tất việc tạo tài khoản Ở trang đăng ký, có liên kết để chuyển hướng sang trang “Đăng nhập” cuối hình người dùng có tài khoản khơng cần đăng ký thêm tài khoản Trang cá nhân Ở trang cá nhân, người dùng chỉnh sửa thơng tin cá nhân, chuyển đổi ngôn ngữ, thông báo đăng xuất tài khoản Trong chỉnh sửa trang cá nhân, người dùng cập nhật ảnh đại diện cách chụp ảnh lấy ảnh có sẵn từ máy, thêm số điện thoại ngày sinh Về ngôn ngữ, ứng dụng hỗ trợ ngôn ngữ Tiếng Anh Tiếng Việt Thông báo ứng dụng đẩy lên trung tâm thông báo Android 43 Chỉnh sửa trang cá nhân Chuyển đổi ngôn ngữ Message Trong trang tin nhắn, ứng dụng lưu trữ tin nhắn bạn bè mà người dùng hay trị chuyện theo thứ tự thời gian Ngồi ra, người dùng thể sử dụng chức “Tìm kiếm tin nhắn” để xem lại thơng tin trị chuyện cần Trang tin nhắn Tìm kiếm tin nhắn Quản lý bạn bè 44 Trong trang Bạn bè, người dùng xem danh sách bạn bè mình, yêu cầu kết bạn gần đây, gửi yêu cầu kết bạn, tương tự tin nhắn, người dùng “Tìm kiếm bạn bè” PHẦN 4: TỔNG KẾT Tổng kết lại, hệ điều hành di động có nhiều điểm tương đồng so với nguyên lý hệ điều hành chung mặt kiến trúc hệ thống, tổ chức nhớ, tổ chức I/O môi trường phát triển Tuy nhiên, hệ điều hành di động có cải biến thiết kế nhỏ gọn hay quản lý tối ưu, tiết kiệm lượng, tương tác với người dùng thông qua cảm ứng bảo mật để phù hợp với thiết bị di động có thiết kế nhỏ gọn mang tính di dộng cao Và thơng qua việc thử nghiệm lập trình ứng dụng đồ họa, nhóm mang tới trải nghiệm thực tế giao diện đồ họa hệ điều hành di động, phần hiểu rõ cách thức hoạt động hệ điều hành ứng dụng cụ thể Nhóm hy vọng báo cáo đem tới nhìn tổng quan hệ điều hành di động tới thầy bạn đọc mong giúp ích cho việc học tập làm việc tương lai 45