Đăng ký Đăng nhập
Trang chủ Công nghệ phát triển ứng dụng di động react native và ứng dụng thí nghiệm cho ph...

Tài liệu Công nghệ phát triển ứng dụng di động react native và ứng dụng thí nghiệm cho phần mềm hỗ trợ học tiếng anh

.PDF
87
237
73

Mô tả:

BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG REACT NATIVE VÀ ỨNG DỤNG THÍ NGHIỆM CHO PHẦN MỀM HỖ TRỢ HỌC TIẾNG ANH PHẠM THỊ HÀ HẠNH CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN MÃ SỐ: 60.48.02.018 NGƢỜI HƢỚNG DẪN KHOA HỌC TS. DƢƠNG THĂNG LONG HÀ NỘI - 2017 LỜI CAM ĐOAN Tôi xin cam đoan toàn bộ nội dung đƣợc trình bày trong bản luận văn này là kết quả tìm hiểu và nghiên cứu của riêng tôi, chƣa đƣợc sử dụng để bảo vệ một học vị nào. Tôi xin cam đoan rằng, mọi sự giúp đỡ trong việc thực hiện luận văn này đã đƣợc cảm ơn và các thông tin trích dẫn trong luận văn đều đã đƣợc ghi rõ nguồn gốc. Hà Nội, ngày 12 tháng 11 năm 2017 Học viên Phạm Thị Hà Hạnh i LỜI CẢM ƠN Trong quá trình thực hiện luận văn, tôi đã nhận đƣợc sự hƣớng dẫn, giúp đỡ động viên của nhiều cá nhân và tập thẻ. Tôi xin đƣợc bày tỏ sự cảm ơn sâu sắc nhất tới tất cả các cá nhân tập thẻ đã tạo điều kiện giúp đỡ tôi trong học tập và nghiên cứu. Tôi xin trân trọng cảm ơn Ban giám hiệu nhà trƣờng, khoa Đào tạo Sau đại học và các thầy giáo, cô giáo Viện Đại học Mở Hà Nội, đặc biệt là TS. Dƣơng Thăng Long đã nhiệt tình hƣớng dẫn chỉ bảo tôi trong quá trình nghiên cứu và thực hiện đề tài của mình. Tôi xin cảm ơn sự động viên, giúp đỡ của bạn bè và gia đình đã giúp đỡ tôi thực hiện đề tài này. Tôi xin chân thành cảm ơn mọi sự giúp đỡ quý báu đó! Hà Nội, ngày 12 tháng 11 năm 2017 Học viên Phạm Thị Hà Hạnh ii MỤC LỤC LỜI CAM ĐOAN ....................................................................................................... i LỜI CẢM ƠN ............................................................................................................ ii MỤC LỤC ................................................................................................................. iii DANH MỤC CÁC THUẬT NGỮ, KÝ HIỆU, CỤM TỪ VIẾT TẮT .................... vi DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ .......................................................... vii MỞ ĐẦU .....................................................................................................................1 CHƢƠNG 1. TỔNG QUAN VỀ DI ĐỘNG VÀ LẬP TRÌNH DI ĐỘNG ...............4 1.1. Giới thiệu về điện thoại thông minh .................................................................4 1.2. Kiến trúc của các nền tảng hệ điều hành ..........................................................5 1.2.1. Hệ điều hành Android ...........................................................................5 1.2.2. Hệ điều hành iOS ................................................................................10 1.2.3. Các hệ điều hành khác .........................................................................15 1.3. Các phƣơng pháp lập trình ứng dụng .............................................................15 1.3.1. Phƣơng pháp lập trình ứng dụng Native .............................................15 1.3.2. Phƣơng pháp lập trình ứng dụng lai ....................................................16 1.3.3. Phƣơng pháp lập trình ứng dụng đa nền tảng .....................................17 1.4. Kết luận chƣơng .............................................................................................18 CHƢƠNG 2. LẬP TRÌNH ỨNG DỤNG DI ĐỘNG VỚI REACT NATIVE .........19 2.1. Tổng quan về React Native ............................................................................19 2.1.1. Giới thiệu React Native ........................................................................19 2.1.2. Lịch sử phát triển ..................................................................................20 2.1.3. Ý tƣởng hình thành của React Native ..................................................21 2.2. React Native và các công nghệ liên quan .......................................................23 2.2.1. Ngôn ngữ lập trình Javascript .............................................................23 2.2.2. Javascript VM (V8 engine) .................................................................24 2.2.3. ReactJS ................................................................................................26 iii 2.2.4. JSX ......................................................................................................27 2.2.5. Node.js và NPM ..................................................................................28 2.3. Kiến trúc React Native ...................................................................................28 2.3.1. Kiến trúc ứng dụng React Native ........................................................28 2.3.2. Cách thức hoạt động của React Native ...............................................31 2.3.3. Luồng hoạt động và hiệu năng ............................................................37 2.4. Thành phần và các khái niệm cơ bản .............................................................38 2.4.1. React Native Component ....................................................................38 2.4.2. Props và state của Component ............................................................39 2.4.3. Vòng đời của React Native Component ..............................................42 2.4.4. Định dạng và bố cục ............................................................................44 2.4.5. Làm việc với mạng ..............................................................................47 2.4.6. Xử lý chạm ..........................................................................................48 2.5. Các thành phần và giao diện...........................................................................48 2.5.1. Các thành phần đƣợc hỗ trợ bởi React Native ....................................49 2.5.2. Các giao diện đƣợc hỗ trợ từ React Native .........................................49 2.6. Kết luận chƣơng .............................................................................................50 2.6.1. Ƣu điểm ...............................................................................................50 2.6.2. Nhƣợc điểm .........................................................................................52 CHƢƠNG 3. PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG HỖ TRỢ HỌC TIẾNG ANH DỰA TRÊN CÔNG NGHỆ REACT NATIVE ........................................................53 3.1. Phƣơng pháp triển khai ..................................................................................53 3.1.1. Lựa chọn nội dung và phạm vi phát triển ứng dụng ...........................53 3.1.2. Mục tiêu phát triển ..............................................................................53 3.2. Xác định và phân tích chức năng ...................................................................54 3.3. Phân tích hệ thống ..........................................................................................55 3.4. Hình ảnh ứng dụng khi chạy thực tế ..............................................................63 3.5. Kết luận chƣơng .............................................................................................67 iv KẾT LUẬN ...............................................................................................................68 DANH MỤC TÀI LIỆU THAM KHẢO ..................................................................70 PHỤ LỤC ..................................................................................................................72 v DANH MỤC CÁC THUẬT NGỮ, KÝ HIỆU, CỤM TỪ VIẾT TẮT Kí hiệu, từ viết tắt Tiếng Anh Tiếng Việt Cây cú pháp trừu tƣợng AST Abstract Syntax Tree Cmp Component CocoaPod CocoaPod DOM Document Object Model Framework Framework IOT Internet of Things Native app Native application Một đối tƣợng giao diện ngƣời dùng của React Native Bộ công cụ phát triển phần mềm cho hệ điều hành iOS Mô hình các đối tƣợng trong tài liệu HTML Nền tảng lập trình và thực thi ứng dụng Kết nối vạn vật Ứng dụng viết bằng ngôn ngữ gốc phát hành kèm theo hệ điều hành. Dùng để mô tả công việc vẽ một Render giao diện ngƣời dùng lên màn hình Render hiển thị của thiết bị di động. Tên một nền tảng hỗ trợ lập trình RN React Native SDK Software Development Kit State state UI User Interface Giao diện ngƣời dùng VM Virtual Machine Máy ảo ứng dụng di động Bộ công cụ phát triển phần mềm Trạng thái của một Cmp trong React Native vi DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ Hình 1.1. Kiến trúc hệ điều hành Android ..................................................................6 Hình 1.2. Kiến trúc hệ điều hành iOS .......................................................................11 Hình 2.1. Các ứng dụng đƣợc viết bằng React Native ..............................................20 Hình 2.2. Cách thức hoạt động của DOM ảo ............................................................22 Hình 2.3. Cách thức hoạt động của React Native .....................................................22 Hình 2.4. Cách thức hoạt động của Javascript VM ..................................................25 Hình 2.5. Quá trình tạo lớp ẩn của Javascript VM....................................................26 Hình 2.6. Kiến trúc ứng dụng React Native ..............................................................29 Hình 2.7. Mỗi trƣờng cầu nối giữa JavaScript VM và ngôn ngữ gốc .......................29 Hình 2.8. Quá trình thực thi mã nguồn React Native ...............................................30 Hình 2.9. Chi tiết quá trình hoạt động của mã nguồn RN thông qua cầu nối ...........31 Hình 2.10. Ví dụ ứng dụng “Hello world” bằng React Native .................................32 Hình 2.11. Quá trình biên dịch và tải mã nguồn Javascript ......................................33 Hình 2.12. Quá trình thực thi ứng dụng React Native ..............................................34 Hình 2.13. Quá trình tƣơng tác qua lại giữa JavaScript mà ngôn ngữ gốc ...............35 Hình 2.14. Quá trình thành phần giao diện gốc đƣợc tạo tƣơng ứng với JavaScript 36 Hình 2.15. Quá trình xử lý tƣơng tác ngƣời dùng .....................................................37 Hình 2.16. Quá trình giao diện thay đổi theo state ...................................................41 Hình 2.17. Vòng đời của một component trong React Native ..................................42 Hình 2.18. Các bƣớc thay đổi của component trong Reat Native.............................42 Hình 2.19. Định dạng giao diện trong React Native .................................................45 Hình 2.20. Quá trình thay đổi kích thƣớc của thành phần giao diện trong RN ........45 Hình 2.21. Cách thức bố cục trong React Native......................................................46 Hình 3.1. Biểu đồ User case tổng quát ......................................................................56 Hình 3.2. Biểu đồ hoạt động đăng ký .......................................................................57 vii Hình 3.3. Biểu đồ hoạt động đăng nhập ....................................................................57 Hình 3.4. Biểu đồ hoạt động xem video ...................................................................58 Hình 3.5. Biểu đồ hoạt động đƣa vào danh sách yêu thích .......................................59 Hình 3.6. Biểu đồ hoạt động phát âm câu .................................................................59 Hình 3.7. Biểu đồ hoạt động phát âm từ ...................................................................60 Hình 3.8. Biểu đồ hoạt động tra từ ............................................................................60 Hình 3.9. Biểu đồ trình tự đăng ký............................................................................61 Hình 3.10. Biểu đồ trình tự phát âm câu ...................................................................61 Hình 3.11. Biểu đồ trình tự phát âm từ .....................................................................62 Hình 3.12. Biểu đồ trình tự tra từ ..............................................................................62 Hình 3.13. Màn hình đăng nhập ................................................................................63 Hình 3.14. Màn hình đăng ký....................................................................................63 Hình 3.15. Màn hình danh sách nội dung bài học.....................................................64 Hình 3.16. Màn hình menu nội dung ƣa thích ..........................................................64 Hình 3.18. Màn hình xem nội dung video của bài học .............................................65 Hình 3.19. Tra từ điển khi xem chi tiết................................................................. 66 Hình 3.20. Tra từ điển khi xem video.................................................................. 66 viii MỞ ĐẦU Mạng viễn thông xuất hiện tại Việt Nam từ đầu những năm 1990 và theo thời gian số lƣợng các thuê bao cũng nhƣ các nhà cung cấp dịch vụ đi động tại Việt Nam ngày càng tăng. Do nhu cầu trao đổi thông tin ngày càng tăng và nhu cầu sử dụng sản phẩm công nghệ cao nhiều tính năng, cấu hình cao, chất lƣợng tốt, kiểu dáng mẫu mà đẹp, phong phú nên nhà cung cấp phải luôn luôn cải thiện, nâng cao những sản phẩm của mình. Do đó việc xây dựng các ứng dụng cho điện thoại di động đang là một ngành công nghiệp mới đầy tiềm năng và hứa hẹn nhiều sự phát triển vƣợt bậc của ngành khoa học kĩ thuật. Trong những năm gần đây tại các triển lãm điện tử tiêu dùng CES, các thiết bị thông minh nhƣ tivi thông minh, điện thoại thông minh, tủ lạnh thông minh... liên tục đƣợc các hãng công nghệ lớn giới thiệu. Các hãng công nghệ không chỉ tập trung vào các thiết bị độc lập nữa mà chuyển sang xu hƣớng kết nối các thiết bị thông minh với nhau thông qua Internet hay còn gọi là xu hƣớng kết nối vạn vật (Internet of Things - gọi tắt là IOT). Chúng có khả năng trao đổi và truyền tải thông tin, dữ liệu một cách hiệu quả, tiện lợi thông qua mạng Internet mà không cần sự tƣơng tác trực tiếp giữa ngƣời với thiết bị hay giữa ngƣời với ngƣời. Theo hãng Gartner thì trong năm 2016 có tới 6,4 triệu thiết bị có thể kết nối, tăng 30% so với năm 2015, đến năm 2017 đƣợc dự đoán là có tới 8.4 triệu thiết bị có thể kết nối, và đến năm 2020 dự đoán có thể có tới 21 triệu thiết bị có thể kết nối vào mạng Internet [12],[13]. Do đó, IOT là xu hƣớng tất yếu và đăng đƣợc các doanh nghiệp trong lĩnh vực công nghệ quan tâm, đầu tƣ và nghiên cứu. Cùng với xu hƣớng IOT, điện thoại thông minh hay còn gọi là smartphone đang trở nên rất phổ biến ở thời điểm hiện tại, smartphone là một loại trong IoT nhƣng nó có vai trò lớn trong tƣơng tác, tính toán và xử lý trong một hệ tích hợp IoT. Các hệ điều hành đƣợc sử dụng trên các thiết bị này cũng không ngừng phát triển và hoàn thiện. Đã có rất nhiều hệ điều hành đƣợc nghiên cứu và phát triển nhƣ Android, iOS, WindowsPhone, Blackberry, Tizen... Tuy nhiên theo hãng nghiên cứu thị trƣờng Gartner cho biết, hệ điều hành di động Android của Google và iOS 1 của Apple đã chiếm đến 99,6% thị phần smartphone bán ra trong ba tháng cuối năm 2016 [13]. Và sang đến năm 2017 chủ yếu chỉ còn lại cuộc đua giữa hai hệ điều hành Android và iOS. Điều này đã khẳng định vị trí của Android và iOS trên thị trƣờng. Ứng dụng cho điện thoại thông minh hiện nay rất đa dạng và phong phú trên các hệ điều hành di động cũng phát triển mạnh mẽ và đang thay đổi từng ngày. Tuy nhiên, để phát triển và bảo trì một ứng dụng trên mỗi hệ điều hành các lập trình viên cần phải tìm hiểu cách thức hoạt động của hệ điều hành, công cụ phát triển đƣợc phát hành kèm theo hệ điều hành và các hệ sinh thái liên quan đến hệ điều hành đó. Chẳng hạn, để phát triển ứng dụng cho Android lập trình viên sẽ phải tìm hiểu công cụ phát triển cho Android, ngôn ngữ lập trình Java [7], để phát triển ứng dụng cho công cụ phát triển cho iOS, ngôn ngữ lập trình Object-C hoặc Swift [8],... Để khắc phục hạn chế này một số các phƣơng pháp phát triển ứng dụng đa nền tảng đã ra đời nhƣ: + Phƣơng pháp hybrid sử dụng Html5 với một số công cụ nhƣ Ionic, PhoneGap, Appcelerator…. Tuy nhiên phƣơng pháp này gặp phải vấn đề hiệu năng kém đối với các ứng dụng lớn, yêu cầu xử lý phức tạp. + Phƣơng pháp phát triển ứng dụng đa nền tảng Xamarin, đƣợc phát hành bởi Microsoft. Tuy nhiên với phƣơng pháp này là lập trình viên không có toàn quyền điều khiển mã nguồn đƣợc cung cấp kèm theo hệ điều hành, cũng nhƣ phải mất phí sử dụng cho một số các công cụ nhất định. + Phƣơng pháp phát triển ứng dụng đa nền tảng React Native, đƣợc phát hành bởi Facebook. Phƣơng pháp này đang đƣợc các lập trình viên sử dụng khá nhiều và ngày càng tăng lên đặc biệt là các dự án khởi nghiệp, do công cụ phát triển này là mã nguồn mở, hiệu năng gần giống nhƣ ứng dụng viết bằng ngôn ngữ của hệ điều hành, thời gian phát triển nhanh cũng nhƣ khả năng linh hoạt trong việc sử dụng công cụ cũng nhƣ tƣơng thích với mã nguồn viết bằng các công cụ, ngôn ngữ kèm theo hệ điều hành. 2 Do vậy, luận văn sẽ nghiên cứu một công nghệ phát triển ứng dụng di động đa nền tảng mới React native và ứng dụng công nghệ này phát triển ứng dụng hỗ trợ học Tiếng Anh. Công nghệ này hứa hẹn sẽ mang lại một phƣơng pháp phát triển ứng dụng đa nền tảng mới bằng một ngôn ngữ và công cụ phát triển duy nhất giúp làm giảm thời gian, chi phí phát triển và bảo trì. Ngoài phần mở đầu và kết luận, luận văn đƣợc chia làm 3 chƣơng, nội dung cụ thể của các chƣơng nhƣ sau: Chƣơng I: Tổng quan về di động và lập trình di động Chƣơng II: Lập trình ứng dụng di động với React Native Chƣơng III: Phát triển ứng dụng di động hỗ trợ học Tiếng Anh dựa trên công nghệ React Native Tuy đã rất cố gắng để hoàn thiện, tuy nhiên trong luận văn không thể tránh khỏi còn nhiều thiếu sót, em rất mong nhận đƣợc ý kiến đóng góp quý báu của thầy cô và đồng nghiệp. 3 CHƢƠNG 1. TỔNG QUAN VỀ DI ĐỘNG VÀ LẬP TRÌNH DI ĐỘNG 1.1. Giới thiệu về điện thoại thông minh Điện thoại di động ngày nay đang trở thành một vật dụng không thể thiếu trong cuộc sống hằng ngày. Mục đích ban đầu của điện thoại di động là tạo sự thuận lợi trong liên lạc, xóa bỏ sự hạn chế về khoảng cách địa lý. Tuy nhiên không chỉ dừng lại ở đó, điện thoại di động ngày nay đã phát triển mạnh mẽ về chức năng. Không chỉ đơn thuần nghe, gọi hay nhắn tin SMS nhƣ lúc đầu, mà nó còn là phƣơng tiện giải trí đa chức năng, là công cụ hỗ trợ cho nhu cầu công việc của con ngƣời. Khái niệm smartphone (điện thoại thông minh) đang ngày càng đƣợc nhiều ngƣời biết đến. Điện thoại thông minh là khái niệm để chỉ loại điện thoại tích hợp một nền tảng hệ điều hành di động với nhiều tính năng hỗ trợ tiên tiến về điện toán và kết nối dựa trên nền tảng cơ bản của điện thoại di động thông thƣờng. Ban đầu điện thoại thông minh bao gồm các tính năng của điện thoại di động thông thƣờng kết hợp với các thiết bị phổ biến khác nhƣ PDA, thiết bị điện tử cầm tay, máy ảnh kỹ thuật số, hệ thống định vị toàn cầu GPS. Điện thoại thông minh ngày nay bao gồm tất cả chức năng của laptop nhƣ duyệt web, Wi-Fi, các ứng dụng của bên thứ 3 trên di động và các phụ kiện đi kèm cho máy. Những điện thoại thông minh phổ biến nhất hiện nay dựa trên nền tảng của hệ điều hành Windows Phone của Microsoft, Android của Google và iOS của Apple. Các ngành công nghiệp tin rằng điện thoại thông minh đa số có một màn hình độ phân giải cao hơn so với điện thoại truyền thống và điện thoại thông minh nhƣ một máy tính di động, vì nó có một hệ điều hành riêng biệt vì có thể hiển thị phù hợp các trang website bình thƣờng và ngƣời dùng có thể thay đổi một giao diện và sở hữu khả năng mở ứng dụng tiện hơn và dễ dàng cài đặt lẫn gõ bỏ ứng dụng; điện thoại thông minh có màn hình cảm ứng độ phân giải cao, và sẵn sàng để gọi bàn phím ảo và viết chữ tay. Có thể tiến hành đa tác vụ thao tác, và có một đa phƣơng tiện mạnh mẽ, Email, Internet và hoàn toàn có thể thay đổi các thiết bị 4 truyền thống nhƣ MP3 và PDA điện thoại thông minh có thể thay thế xử lý các vấn đề máy tính văn phòng và các vấn đề khác, nó có thể giao tiếp với mạng duy trì một thời gian kết nối liền mạch với thời gian, đồng thời có thể vô hiệu hóa mạng bất cứ lúc nào, và đồng bộ hóa dữ liệu với máy tính, máy tính xách tay và các thiết bị khác. 1.2. Kiến trúc của các nền tảng hệ điều hành 1.2.1. Hệ điều hành Android 1.2.1.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à máy tính bảng [7]. Ban đầu, Android đƣợc phát triển bởi 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 và trở thành một hệ điều hành di động mã nguồn mở, miễn phí, mạnh mẽ và đƣợc ƣa chuộng cao trên thế giới. Năm 2008, hệ điều hành Android đã chính thức mở toàn bộ mã nguồn, điều đó cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở này hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí phát triển hệ điều hành. 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. Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Cửa hàng ứng dụng chính của Android, Google Play có hơn 82 triệu ứng dụng tải xuống trong năm 2016 và hơn 2,7 triệu ứng dụng đƣợc công khai trong năm 2017. 5 Android liên tục phát triển, mỗi bản cập nhật từ Google là mỗi lần Android đƣợc tối ƣu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới. Hiện nay, phiên bản mới nhất của Android là 8.0 đang đƣợc các hãng điện thoại tích cực cập nhật [7]. 1.2.1.2. Kiến trúc hệ điều hành android Hệ điều hành Android có 4 tầng từ dƣới lên trên là tầng hạt nhân Linux, tầng Libraries & Android runtime, tầng Application Framework và trên cùng là tầng Application [2, tr.12]. Hình 1.1. Kiến trúc hệ điều hành Android 6  Tầng hạt nhân (Linux Kernel layer) Hệ điều hành Android đƣợc phát triển dựa trên hạt nhân Linux. Mọi hoạt động của điện thoại muốn thi hành thì đều đƣợc thực hiện ở lớp này bao 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). 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ầu kết nối mạng không dây… Tầng này có các thành phần chủ yếu: - 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 - 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. - M-System Driver: Quản lý việc đọc ghi... lên các thiết bị nhớ nhƣ thẻ SD, flash - Power Madagement: Giám sát việc tiêu thụ điện năng. 7  Tầng Library 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): 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 code để 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.. - Thƣ viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng. - …  Tầ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 của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển.  Tầng Application Framework Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình viên có thể nhanh chóng xây dựng ứng dụng. Nó đƣợc viết bằng Java, có khả năng sử dụng chung để tiết kiệm tài nguyên. Đây là một nền tảng mở, điều đó có 2 điều lợi: - Với các hãng sản xuất điện thoại: Có thể tùy biến để phù hợp với cấu hình điện thoại mà họ sản xuất cũng nhƣ để có nhiều mẫu mã, style hợp thị hiếu 8 ngƣời dùng. Vì thế nên tuy cùng chung nền tảng android mà điện thoại của Google có thể khác hẳn với Motorola, HTC, T-Mobile, Samsung... - Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng trên mà không cần phải hiểu rõ cấu trúc bên dƣới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc. Một tập hợp API rất hữu ích đƣợc xây dựng sẵn nhƣ hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao ... Giới thiệu một số thành phần của phần này: - 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 - XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực - 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. - Notication Manager: Quản lý việc hiển thị các thông báo (nhƣ báo có tin nhắn, có e-mail mới..) - Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file hình ảnh, âm thanh, layout, string. (Những thành phần không đƣợc viết bởi ngôn ngữ lập trình)  Tầng Application: Đây là lớp ứng dụng giao tiếp với ngƣời dùng, bao gồm các ứng dụng nhƣ: - Các ứng dụng cơ bản, đƣợc cài đặt đi liền với hệ điều hành là gọi điện (phone), quản lý danh bạ (Contacts), duyệt web (Browser), nhắn tin 9 (SMS), lịch làm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh (camera)... - Các ứng dụng đƣợc cài thêm nhƣ các phần mềm chứng khoán (Stock), các trò chơi (Game), từ điển... Các chƣơng trình có các đặc điểm là: - Viết bằng Java, phần mở rộng là apk - Khi mỗi ứng dụng đƣợc chạy, nó có một phiên bản Virtual Machine đƣợc dựng lên để phục vụ cho nó. Nó có thể là một Active Program: Chƣơng trình có giao diện với ngƣời sử dụng hoặc là một background: chƣơng trình chạy nền hay là dịch vụ. 1.2.2. Hệ điều hành iOS 1.2.2.1. Giới thiệu về hệ điều hành iOS iOS (viết tắt của iPhone Operating System) là một hệ điều hành trên thiết bị di động đƣợc xây dựng và phát triển bởi tập đoàn Apple. Hệ điều hành này đƣợc sử dụng trên nhiều thiết bị di động, bao gồm iPhone, iPad và iPod Touch. Đây là hệ điều hành trên thiết bị di động phổ biết thứ hai, sau hệ điều hành Android [1],[8]. Bắt đầu đƣợc phát triển từ năm 2007, sử dụng cho iPhone, iOS dần đƣợc mở rộng và hỗ trợ các thiết bị khác của Apple nhƣ iPod Touch (từ tháng 9 năm 2007) và iPad (từ tháng 1 năm 2010). Đến tháng 1 năm 2017, cửa hàng ứng dụng của Apple đã có hơn 2.2 tỷ ứng dụng iOS, 1 triệu ứng dụng trong số đó chỉ dành riêng cho iPad. Số lƣợng lƣợt tải xuống của những ứng dụng này đã lên đến hơn 130 tỷ lần. Giao diện ngƣời dùng của iOS dựa trên cơ sở thao tác bằng tay, sử dụng cảm ứng đa điểm. Các thành phần điều khiển trên giao diện bao gồm thanh trƣợt, công tắc và các nút. Ngƣời dùng tƣơng tác với hệ điều hành thông qua các cử chỉ bao gồm vuốt, gõ, chụm, và lật ngƣợc, tất cả đều đƣợc định nghĩa trong ngữ cảnh của hệ điều hành. Máy đo gia tốc đƣợc sử dụng trong một số ứng dụng để nhận biết đƣợc các chuyển động rung, lắc của thiết bị, hoặc xoay thiết bị theo nhiều chiều. Apple 10 đƣợc đánh giá cao trong việc kết hợp các chức năng truy cập trong suốt vào iOS, cho phép ngƣời dùng khiếm thị hoặc gặp khó khăn về thính giác vẫn có thể sử dụng đƣợc sản phẩm của mình. Hàng năm, Apple đều cho ra những phiên bản mới cập nhật của iOS. Hai phiên bản mới nhất vừa đƣợc cập nhật là iOS 10.3.3, phát hành vào ngày 25/07/2017, sử dụng trên các phiên bản iPhone từ iPhone 5 trở đi, iPad Air, iPad Air 2, iPad Pro… Phiên bản iOS 11 vừa mới đƣợc ra mắt chính thức vào ngày 19/9/2017 vừa qua. 1.2.2.2. Kiến trúc hệ điều hành iOS Kiến trúc của iOS là một kiến trúc theo tầng. Tầng cao nhất hoạt động nhƣ phần trung gian kết nối giữa phần cứng bên dƣới với các thao tác thực hiện trên ứng dụng. Ứng dụng không giao tiếp trực tiếp với phần cứng [8]. Ứng dụng “nói chuyện” với phần cứng thông qua một bộ giao diện hệ thống đã đƣợc định nghĩa. Các giao tiếp này giúp đơn giản hóa việc xây dựng các ứng dụng hoạt động trên các thiết bị có phần cứng khác nhau. Hình 1.2. Kiến trúc hệ điều hành iOS 11
- Xem thêm -

Tài liệu liên quan