Đăng ký Đăng nhập
Trang chủ Xây dựng ứng dụng hỗ trợ luyện thi gre cho sinh viên ictu trên nền tảng android...

Tài liệu Xây dựng ứng dụng hỗ trợ luyện thi gre cho sinh viên ictu trên nền tảng android

.PDF
113
303
66

Mô tả:

LỜI CẢM ƠN Trong thời gian từ học tập và rèn luyện tại trường Đại học công nghệ thông tin – Truyền thông Thái Nguyên với nhiều sự khó khăn ban đầu trong học tập cũng như rèn luyện của bản thân nhưng em đã nhận được sự giúp đỡ, chỉ bảo tận tình của các thầy giáo, cô giáo trong trường. Em xin cảm ơn tới các thầy cô giáo đã tận tình giảng dạy, trang bị cho em những vốn kiến thức và kinh nghiệm quý báu, cung cấp cho em những điều kiện và môi trường học tập tốt nhất. Để hoàn thành được đồ án này, em xin chân thành cảm ơn thầy giáo Trần Phạm Thái Kiên - giảng viên trường Đại học công nghệ thông tin – Truyền thông Thái Nguyên đã trực tiếp hướng dẫn, chỉ bảo tận tình cho em và tạo điều kiện giúp đỡ em trong suốt thời gian thực hiện đề tài. Em xin chân thành cảm ơn! Thái Nguyên, tháng 06 năm 2016 Sinh viên Đinh Mạnh Tường 1 LỜI CAM ĐOAN Em xin cam đoan đồ án này là công trình tổng hợp và nghiên cứu của cá nhân em, được thực hiện trên cơ sở nghiên cứu lý thuyết, kiến thức dưới sự hướng dẫn tận tình của thầy giáo ThS. Trần Phạm Thái Kiên. Trong đồ án có sử dụng một số tài liệu tham khảo như đã nêu trong phần tài liệu tham khảo. Thái Nguyên, tháng 06 năm 2016 Sinh viên thực hiện Đinh Mạnh Tường 2 MỤC LỤC LỜI CẢM ƠN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 LỜI CAM ĐOAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 MỤC LỤC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 danh mục hình ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 LỜI NÓI ĐẦU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1. Tổng quan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Lý do chọn đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 CHƯƠNG 1. CƠ SỞ LÝ THUYẾT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1 Giới thiệu về bài thi GRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.1 Sơ lược bài thi GRE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.2 Cấu trúc của bài thi GRE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 Giới thiệu về Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.2 Nền tảng của Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2.3 Kiến trúc của hệ điều hành Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2.4 Cấu trúc của project Android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.2.5 Các thành phần cơ bản của ứng dụng Android . . . . . . . . . . . . . . . . . . . . . . 20 1.2.6 Web Service trong Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.3 Tổng quan về phân tích thế kế hướng đối tượng UML . . . . . . . . . . . . . . . . . . 33 1.3.1 Giới thiệu chung về UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.3.2 Các đặc điểm cơ bản của hệ thống hướng đối tượng . . . . . . . . . . . . . . . . 34 1.3.3 Ưu nhược điểm của phân tích thiết kế hướng đối tượng. . . . . . . . . . . . . 35 1.4 Ứng dụng mô hình UML trong thiết kế ứng dụng Android . . . . . . . . . . . . . . 36 CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.1 Khảo sát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.1.1 Một số phần mềm thi Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3 2.1.2 Khảo sát hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.1.3 Yêu cầu công nghệ của hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.1.4 Kiến trúc hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.2 Phân tích thiết kế. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.2.1 Xác định tác nhân và use-case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.2.2 Đặc tả use-case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.2.3 Biểu đồ trình tự. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.2.4 Biểu đồ thành phần . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.2.5 Biểu đồ hoạt động. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.2.6 Xây dựng cơ sở dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 CHƯƠNG 3. CÀI ĐẶT CHƯƠNG TRÌNH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.1 Mô hình phía Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.1.1 Chức năng Đăng nhập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.1.2 Chức năng Quản lý câu hỏi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.1.3 Chức năng Quản lý kỳ thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.1.4 Chức năng Quản lý bài thi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.2 Mô hình phía Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.2.1 Chức năng Đăng nhập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.2.2 Chức năng xem Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.2.3 Chức năng Thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 TÀI LIỆU THAM KHẢO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4 danh mục hình ảnh Hình 1.1 Bảng thống kê số lượng App trên Store Hình 1.2 Kiến trúc của hệ điều hành Android. 14 15 Hình 1.3 Trình tự các Activity khi đưa vào ngăn xếp 21 Hình 1.4. Trình tự các Activity đưa ra ngoài ngăn xếp 21 Hình 1.5. Vòng đời của một Activity Hình 1.6. Hoạt động của Intents 23 23 Hình 1.7 Phương thức Call back 25 Hình 1.8 Kiến trúc Webservice đơn giản 28 Hình1.9 Webservice với php và mySql 32 Hình 2.1 Mô hình kiến trúc hệ thống 42 Hình 2.2 Biểu đồ Use case mức tổng quát 44 Hình 2.3 Biểu đồ trình tự chức năng đăng nhập 47 Hình 2.4 Biểu đồ trình tự chức năng cập nhật thông tin 49 Hình 2.5 Biểu đồ trình tự chấm điểm bài thi Hình 2.6 Biểu đồ thành phần 50 51 Hình 2.7. Biểu đồ hoạt động của Use Case đăng nhập 51 Hình 2.8: Biểu đồ hoạt động của Use Case chọn bài thi 52 Hình 2.9 Mô hình thực thể liên kết. 55 Hình 3.1: File connect.php 56 Hình 3.2 Xử lý dữ liệu dạng json 56 Hình 3.4 Giao diện Đăng nhập 58 Hình 3.5 Giao diện Trang chủ 58 Hình 3.6 Giao diện Quản lý câu hỏi 59 Hình 3.7 Giao diện thêm chi tiết câu hỏi 60 5 Hình 3.8 Chức năng Quản lý kỳ thi 60 Hình 3.9 Giao diện Quản lý bài thi 61 Hình 3.10. Giao diện bài thi của 1 học viên 62 Hình 3.11. Giao diện Đăng nhập phía Client 63 Hình 3.12 Giao diện Trang chủ 64 Hình 3.13. Danh sách các Tips 65 Hình 3.14 Giới thiệu về ứng dụng. 65 Hình 3.15 Cách làm bài hiệu quả. 66 Hình 3.16 Hướng dẫn sử dụng phần mềm GRE online. 67 Hình 3.17 Top 10 cách làm bài thi GRE tốt. 68 Hình 3.18 Có thể bạn chưa biết. 69 Hình 3.19 Giao diện trang làm bài thi 70 Hình 3.20 Giao diện danh sách các câu hỏi trong bài thi Hình 3.21 Giao diện nhập nội dung trả lời 71 Hình 3.22 Giao diện câu hỏi toán học dạng trắc nghiệm. Hình 3.23 Giao diện câu hỏi ngôn ngữ. 73 Hình 3.24 Giao diện câu hỏi ngôn ngữ dạng đoạn văn. 74 Hình 3.25 Thông báo xác nhận khi nộp bài 6 71 75 72 LỜI NÓI ĐẦU  Tổng quan Thế giới hôm nay đang chứng kiến những thay đổi mạnh mẽ trong mọi hoạt động phát triển kinh tế – xã hội nhờ những thành tựu của Công nghệ thông tin. Công nghệ thông tin đã góp phần quan trọng cho việc tạo ra những nhân tố năng động mới cho quá trình hình thành nền kinh tế tri thức và xã hội thông tin. Khi công nghệ thông tin ngày càng phát triển thì việc ứng dụng nó vào các lĩnh vực khác nhau cũng là một điều tất yếu. Đối với giáo dục và đào tạo, công nghệ thông tin có tác dụng mạnh mẽ, làm thay đổi nội dung, phương pháp dạy và học. Công nghệ thông tin là phương tiện để tiến tới “xã hội học tập”. Mặt khác, giáo dục và đào tạo đóng vai trò quan trọng thúc đẩy sự phát triển của Công nghệ thông tin thông qua việc cung cấp nguồn nhân lực cho CNTT. Bộ giáo dục và đào tạo cũng yêu cầu “đẩy mạnh ứng dụng CNTT trong giáo dục đào tạo ở tất cả các cấp học, bậc học, ngành học theo hướng dẫn học CNTT như là một công cụ hỗ trợ đắc lực nhất cho đổi mới phương pháp dạy học ở các môn”. Chính vì vậy, thực hiện tinh thần chỉ đạo trên của bộ giáo dục và của sở giáo dục và đào tạo, nhận thức được rằng, việc ứng dụng CNTT phục vụ cho việc đổi mới phương pháp dạy học là một trong những hướng tích cực nhất, hiệu quả nhất trong việc đổi mới phương pháp dạy học. Nhưng làm thế nào để ứng dụng CNTT hiệu quả trong các tiết dạy, biết cách tận dụng nó, biến nó thành công cụ hiệu quả cho công việc của mình, mục đích của mình đó là vấn đề mà bất cứ một ai cũng gặp phải khi có ý định đưa CNTT vào giảng dạy.  Lý do chọn đề tài Ở nước ta hiện nay cùng với công cuộc đổi mới, nền giáo dục cũng đang có nhiều biến chuyển rõ rệt cả về lượng và chất. Thể hiện ở những tiến bộ trong cách dạy và học cũng như trong cách kiểm tra đánh giá kết quả học tập của người học. 7 Việc đánh giá kết quả học tập đóng vai trò hết sức quan trọng trong việc nâng cao chất lượng đào tạo. Đánh giá đúng kết quả học tập sẽ khuyến khích khả năng học tập của người học. Bên cạnh những cách kiểm tra đánh giá chất lượng bài thi truyền thống là thi viết và thi vấn đáp thì hiện nay cũng đã có nhiều nơi thực hiện phương pháp thi trắc nghiệm trên máy tính, tuy nhiên nó cũng còn nhiều mặt hạn chế về mặt trang thiết bị, cơ sở hạ tầng, và thời gian của cả người dạy và người học. Đối với các bài thi đánh giá năng lực nói chung và bài thi đánh giá năng lực tiếng Anh GRE nói riêng thì việc đánh giá chính xác, đúng thực chất năng lực của người học là hết sức cần thiết. Bên cạnh đó cũng cần có những thay đổi về mặt cơ chế quản lý, hình thức thi,... nhằm nâng cao chất lượng giảng dạy, đánh giá năng năng lực và tạo điều kiện cho cả người học và người dạy. Với những nhu cầu đặt ra ở trên, nay em thực hiện đề tài “Xây dựng ứng dụng hỗ trợ luyện thi GRE cho sinh viên ICTU trên nền tảng Android” Mặc dù đã rất cố gắng hoàn thành đồ án nhưng chắc chắn sẽ không tránh khỏi những sai sót, em rất mong nhận được sự thông cảm, góp ý tận tình chỉ bảo từ các thầy, cô. 8 CHƯƠNG 1. CƠ SỞ LÝ THUYẾT  Giới thiệu về bài thi GRE  Sơ lược bài thi GRE GRE (Graduate Record Examination) là một bài kiểm tra, đánh giá nhằm giúp cho các trường đại học, các tổ chức tài trợ học bổng đánh giá một cách đúng đắn năng lực của các thí sinh khi xin học sau đại học tại Mỹ. GRE kiểm tra thí sinh về 3 năng lực cơ bản là ngôn ngữ (Verbal), toán học (Math) và viết luận (Analytical Writing). GRE thực sự là một kì thi khó vì nó đòi hỏi bạn phải có một lượng từ vựng khổng lồ khoảng 5000 từ và các kỹ năng làm bài thành thạo. Chính vì thế, nên việc học và ôn luyện GRE mất rất nhiều thời gian và phải đầu tư nhiều công sức. Bắt đầu từ ngày 1 tháng 8, 2011, bài thi GRE Tổng quát hiệu chỉnh thay thế bài thi GRE Tổng quát hiện hành. Bài thi GRE Tổng quát hiệu chỉnh đo lường cùng các kỹ năng như bài thi GRE Tổng quát trước đây – lý luận ngôn ngữ, lý luận định lượng và viết luận phân tích. Đây là những kỹ năng đã được phát triển trong một thời gian dài và không giới hạn trong bất cứ lĩnh vực học tập cụ thể nào, nhưng rất quan trọng cho tất cả các lĩnh vực. Bài thi hiệu chỉnh cho bạn một kinh nghiệm thi tốt hơn và các loại câu hỏi mới cho phép biểu lộ khả năng và trình độ của bạn sẵn sàng cho trình độ cao học. Là 1 trong những kỳ thi nổi tiếng nhất trên thế giới trong việc xét điều kiện nhập học sau đại học (Master hoặc PhD) ở các chuyên ngành khoa học tự nhiên và khoa học xã hội (trừ Y, Dược, Luật) tại Mỹ và một số nước khác do Cục Khảo Thí Hoa Kỳ (ETS) tổ chức. Chứng chỉ GRE được sử dụng để so sánh và đánh giá thành tích học tập của các thí sinh sau đại học bên cạnh bảng điểm đại học và các chứng chỉ liên quan khác. Điểm thi GRE có giá trị trong vòng 5 năm. 9  Cấu trúc của bài thi GRE Bài thi này có 2 dạng thức: GRE General Test - là bài thi chung cho các bạn sinh viên muốn học sau đại học (thời gian dành cho bài thi này là 3 giờ 45 phút) và GRE Subject Test - là bài thi chuyên ngành theo từng lĩnh vực (hóa học, sinh học, khoa học máy tính ...), không bắt buộc mà chỉ mang tính chất khuyến khích (thời gian dành cho bài thi này là 2 giờ 50 phút). GRE General Test: Tổng điểm cho bài thi GRE General test là 1600 điểm cho 2 phần Verbal và Math, và 6 điểm cho phần Analytical Writing.  Verbal (Ngôn ngữ - 60 phút): Thí sinh trả lời câu hỏi về khoa học tự nhiên và khoa học xã hội, bao gồm các dạng bài:  Analogy: Chọn cặp từ có mối liên hệ gần nhất với cặp từ gốc. Có 5 cặp đáp án chọn lựa A, B, C, D và E , thí sinh trả lời bằng cách chọn đáp án đúng nhất và tô đen ô đánh số câu tương ứng trong tờ đáp án.  Antonym: Tìm từ đối nghĩa với từ gốc. Dạng câu hỏi loại bài này là dạng chọn lựa đáp án đúng nhất trong 4 đáp án.  Sentence Completion: Lựa chọn từ/cặp từ để điền vào chỗ trống trong câu làm cho câu hoàn chỉnh nhất. Đề bài thường xen kẽ các câu có 1 ô trống và câu có 2 ô trống tương ứng với mỗi câu là 5 đáp án chọn lựa.  Reading Comprehension: Đọc hiểu các đoạn văn về các đề tài khoa học, xã hội và trả lời các câu hỏi trắc nghiệm trong bài. Dạng câu hỏi thường là trắc nghiệm 4 chọn lựa và thí sinh làm bài như các phần trên.  Math/Quantitative (Toán học – 60 phút): phần này nhằm để đánh giá kiến thức cơ bản của các môn số học, đại số, hình học, phân tích dữ liệu và tính toán ở chương trình phổ thông và giải quyết được các bài toán, không kiểm tra kiến thức toán cao cấp hay tính toán phức tạp. GRE mới sẽ loại bỏ bớt các câu hỏi về hình 10 học nhưng tăng cường các câu hỏi về phân tích dữ liệu. Thí sinh sẽ lựa chọn đáp án đúng trong 5 đáp án.  Analytical Writing (Phân tích – 75 phút): Thí sinh phải viết hai bài luận: một bài trình bày cảm nhận của mình về một vấn đề, một bài phân tích một tranh luận mà đề đưa ra.  Issue task: Yêu cầu thí sinh sẽ viết và trình bày cảm nhận về một vấn đề liên quan đến đời sống, xã hội. Nội dung bài luận gần giống bài luận số 2 trong TOEFL iBT nhưng mang tính chất học thuật hơn và yêu cầu cũng cao hơn.  Argument task: Yêu cầu thí sinh sẽ viết một bài phân tích chứng minh và bác bỏ một tranh luận mà đề đưa ra. Để làm dạng bài thi này, thí sinh cần chuẩn bị tốt tư duy logic và lập luận chặt chẽ.  Giới thiệu về Android  Tổng quan Các thiết bị di động đã trải qua rất nhiều năm phát triển với rất nhiều loại thiết bị khác nhau, có thể kể đến như máy nhắn tin di động, điện thoại di động, thiết bị trợ giúp cá nhân (PDA, Palm...), điện thoại thông minh, máy tính bảng... Các thiết bị nghe nhìn khác như máy ảnh, máy quay kỹ thuật số, máy nghe nhạc... cũng có thể được xếp vào "thiết bị di động". Giáo trình này sẽ không đề cập đến các thiết bị đã là lịch sử (không còn hoặc gần như không còn được sử dụng trong thực tế) và các thiết bị nghe nhìn và chỉ đề cập đến các loại thiết bị điện toán cầm tay hiện đang phổ biến trên thị trường tiêu dùng. Các thiết bị này thường được phân thành các loại như sau:  Điện thoại di động cơ bản (basic phones và featured phones) - là các điện thoại di động với các tính năng cơ bản như nghe, gọi, danh bạ... và một số ứng dụng dựng sẵn đơn giản. Các thiết bị này thường có kích thước nhỏ, màn hình độ phân giải thấp, có hoặc không có bàn phím, pin dùng được lâu, ít khả năng kết nối, 11 khả năng phát triển cũng như cài đặt thêm phần mềm của nhà phát triển là (gần như) không có.  Điện thoại di động thông minh (smartphones) là các điện thoại được trang bị cấu hình tốt hơn, chạy hệ điều hành thông minh với các bộ công cụ phát triển phần mềm (Software Development Kit - SDK) cho phép lập trình viên phát triển đa dạng các ứng dụng phục vụ mọi mục đích của cuộc sống và công việc. Các thiết bị này thường có kích thước và màn hình lớn hơn nhiều so với featured phones, cấu hình phần cứng (CPU, RAM, GPU, camera...) cao, đa dạng các kết nối (Wifi, Bluetooth, 3G/4G, GPS, Glonass, NFC...), có thể có một số loại cảm biến (cảm biến gia tốc, la bàn, cảm biến tiệm cận, cảm biến ánh sáng, con quay hồi chuyển, cảm biến áp suất...). Với tính năng đa dạng như vậy nên dù thường được trang bị thỏi pin lớn hơn so với các máy điện thoại cơ bản, thời lượng pin của điện thoại thông minh thường hạn chế hơn so với featured phones.  Máy tính bảng (tablets) là các thiết bị thông minh, tương tự như smartphones nhưng có kích thước màn hình lớn hơn rất nhiều (thông thường từ 7"13"), có thể có khe cắm thẻ SIM (phục vụ việc nhắn tin, gọi điện hoặc truy cập Internet qua mạng 3G).  Điện thoại thông minh lai máy tính bảng (phablet) là loại thiết bị lai giữa smartphone và máy tính bảng, về tính năng nó là một smartphone, nhưng được trang bị màn hình cỡ lớn hơn smartphone thông thường và nhỏ hơn kích thước phổ biến của màn hình tablet. Màn hình của phablet thường có kích thước 5.0"-6.9". Trong lập trình, các phablet thường được xếp cùng với với các smartphones. Android liên tục đượ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. Chẳng hạn như theo một đánh giá thì android phiên bản 2.2 hoạt động nhanh hơn bản 2.1 tới 450%. Hiện nay, phiên bản mới nhất 2.3 phát 12 hành ngày 6/12/2010 và đang tiếp tục được cập nhật. Ban đầu, Android được phát triển bởi Android Corporation, 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 vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở (Open Handset Alliance - http://www.openhandsetalliance.com/), một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm 2008.  Nền tảng của Android 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 tùy biến 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 ngôn ngữ lập trình Java có sửa đổi. Vào tháng 7 năm 2013, có hơn một triệu ứng dụng cho thiết bị Android được công bố, và số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính của Android, ước tính đạt khoảng 50 tỷ. Một cuộc khảo sát các nhà phát triển vào tháng 4 - 5 năm 2013 cho thấy hơn 71% lập trình viên cho di động đã phát triển ứng dụng cho Android. Tại sự kiện Google I/O 2014, "gã khổng lồ" công bố đã có hơn một tỉ người dùng Android hàng tháng, trong khi con số này vào tháng 6 năm 2013 mới chỉ là 538 triệu. Những yếu tố trên đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010 (chiếm 33%), và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, giá rẻ để chạy trên các thiết bị công nghệ cao thay vì xây dựng từ đầu. 13 Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 3 năm 2012, với tổng cộng 750 triệu thiết bị đã được kích hoạt. Vào tháng 4 năm 2013 đã có 1,5 triệu lượt kích hoạt mỗi ngày và tổng số thiết bị Android được kích hoạt lên đến 1 tỷ vào tháng 9 năm 2013. Sự thành công của hệ điều hành này cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ. 14 Hình 1.1 Bảng thống kê số lượng App trên Store 15  Kiến trúc của hệ điều hành Android Hình 1.2 Kiến trúc của hệ điều hành Android. Tầng hạt nhân Linux (Linux Kernel layer) 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 16 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 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). 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. Tầng Library và android runtime Phần này có 2 thành phần là phần Library và Android Runtime  Phần Libraries 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, 17 đượ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..  Thư viện SQLite : Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng...... b. Phần 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. Gồm các thành phần:  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ác công cụ điều khiển 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 dựa vào hệ 18 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ó email mới….). 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 thoại (phone), quản lý danh bạ (contacts), duyệt web (browser), nhắn tin (sms), lịch làm việc (calendar), đọc email (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ó 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ụ.  Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chương trình chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.  Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.  Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền. 19  Cấu trúc của project Android AndroidManifest.xml Trong bất kì một project Android nào khi tạo ra đều có một file AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như main activity sẽ chạy đầu tiên. Fie này tự động sinh ra khi tạo một Android project. Trong file manifest bao giờ cũng có 3 thành phần chính đó là : application, permission và version. Dưới đây là nội dung của một file AndroidManifest.xml 20
- Xem thêm -

Tài liệu liên quan