1. Trang chủ
  2. » Giáo Dục - Đào Tạo

XÂY DỰNG PHẦN MỀM ỨNG DỤNG HỌC TOÁN TRÊN ANDROID

72 386 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 2,79 MB

Nội dung

MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN BẢNG TÊN KÍ TỰ TÊN VIẾT TẮT CHƯƠNG I: GIỚI THIỆU BÀI TOÁN 1 I. TÌM HIỂU BÀI TOÁN 1 1. Phân tích thực tiễn 1 II. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID 2 1. Tìm hiểu chung về hệ điều hành Android 2 1.1. Khái niệm Android 2 1.2 Lịch sử Android 2 1.3 Một số đặc trưng của hệ điều hành Android 7 1.4 Một số tính năng hỗ trợ sẵn trong hệ điều hành Android 7 1.5 Cấu trúc của hệ điều hành Android 8 1.6 Máy ảo Dalvik 13 1.7 Các thành phần trong một ứng dụng Android 14 1.8 Công cụ phát triển hệ điều hành Android 17 2. Giới thiệu về PHP 19 3. Giới thiệu về MySql 25 CHƯƠNG II: XÁC ĐỊNH YÊU CẦU VÀ PHÂN TÍCH 27 THIẾT KẾ HỆ THỐNG 27 I. MỤC TIÊU VÀ PHẠM VI CỦA HỆ THỐNG 27 1. Phạm vi ứng dụng 27 2. Mục tiêu của ứng dụng 27 3. Yêu cầu hệ thống 27 II. PHÂN TÍCH THẾT KẾ HỆ THỐNG 28 1. Sơ đồ usecase tổng quát 28 2. Sơ đồ usecase phân rã chức năng 28 3. Chức năng quản lý lý thuyết 30 4. Chức năng quản lý bài tập 39 5. Chức năng quản lý bài tập 48 CHƯƠNG III: THIẾT KẾ CƠ SỞ DỮ LIỆU VÀ XÂY DỰNG CHƯƠNG TRÌNH 54 I. THIẾT KẾ CƠ SỞ DỮ LIỆU 54 II. THIẾT KẾ MODUN 59 1. Công cụ sử dụng 59 2. Thông tin phần mềm 59 III. GIAO DIỆN CHƯƠNG TRÌNH 60 1. Giao diện chính của chương trình 60 2. Giao diện lý thuyết 61 3. Giao diện bài tập 62 4. Giao diện chi tiết bài tập 63 5. Giao diện bài tập yêu thích 64 6. Giao diện đăng kí, đăng nhập. 65 7. Giao diện thêm bài tập. 66 KẾT LUẬN 67 DANH MỤC TÀI LIỆU THAM KHẢO 68  

Trang 1

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

XÂY DỰNG PHẦN MỀM ỨNG DỤNG

HỌC TOÁN TRÊN ANDROID

Trang 2

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

PHẠM THÚY HỒNG

XÂY DỰNG PHẦN MỀM ỨNG DỤNG HỌC

TOÁN TRÊN ANDROID

Chuyên ngành : Công nghệ thông tin

Người hướng dẫn : Th.S Trần Minh Thắng

Hà Nội - 2016

Trang 3

LỜI CAM ĐOAN

Em tên là: Phạm Thúy Hồng, sinh viên lớp DH2C2 – Trường Đại họcTài Nguyên và Môi Trường Hà Nội

Em xin cam đoan toàn bộ nội dung của đồ án do em tự học tập,nghiên cứu trên Internet, sách báo, các tài liệu trong và ngoài nước có liênquan Không sao chép hay sử dụng bài làm của bất kỳ ai khác, mọi tài liệuđều được trích dẫn cụ thể

Em xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trướcQuý Thầy Cô, Khoa và Nhà trường

Hà Nội, ngày 26 tháng 07 năm 2016

Người cam đoan

Phạm Thúy Hồng

Trang 4

LỜI CẢM ƠN

Trong thời gian nghiên cứu và làm đồ án, em xin chân thành cảm Bêncạnh đó, em xin chân thành cảm ơn các thầy cô giáo trong khoa Công NghệThông Tin - trường Đại Học Tài nguyên và Môi trường Hà Nội đã giảng dạy

và trang bị cho em những kiến thức cơ bản trong học tập nghiên cứu đồ áncũng như trong công việc sau này, cảm ơn thầy giáo hướng dẫn Trần MinhThắng đã giúp đỡ em hoàn thành tốt đề tài đồ án tốt nghiệp

Những lời động viên, khích lệ từ gia đình, sự chia sẻ, học hỏi từ bạn bècũng đã góp phần rất nhiều cho khóa luận tốt nghiệp của em đạt kết quả tốthơn Do trình độ hạn chế nên trong quá trình làm đồ án khó tránh khỏi nhữngthiếu sót, em rất mong sự chỉ bảo thêm của thày cô giúp em hoàn thành và đạtkết quả tốt hơn

Em xin chân thành cảm ơn!

Hà Nội, ngày 26 tháng 07 năm 2016

Sinh viên thực hiện

Phạm Thúy Hồng MỤC LỤC

Trang 5

DANH MỤC HÌNH

Trang 6

BẢNG TÊN KÍ TỰ TÊN VIẾT TẮT

Trang 7

CHƯƠNG I: GIỚI THIỆU BÀI TOÁN

Tìm hiểu bài toán: Trước hết phân tích nhu cầu người dùng Sau khi

phân tích yêu cầu người dùng, sẽ tiến hành khảo sát các hệ thống hiện tại Đưa ra các tính năng nổi bật và mặt hạn chế của hệ thống Cuối cùng, đề xuất phương hướng giải quyết cho hệ thống.

Giới thiệu về ngôn ngữ phát triển hệ thống: Tìm hiểu chung vền ngôn

ngữ lập trình android và hệ quản trị cơ sở dữ liệu mysql.

I TÌM HIỂU BÀI TOÁN

1 Phân tích thực tiễn

Khi công nghệ ngày càng phát triển, những thiết bị tiên tiến nhưngsmart phone là vật dụng không thể thiếu được đối với mỗi người thế nhưngngoài chức năng nhắn tin, gọi điện thì những smart phone đó còn có nhữngđiểm gì nổi bật so với những dòng điện thoại cũ?

Khi sở hữu những chiếc smart phone thì nhu cầu của người dùng ngàycảng lớn, họ đòi hỏi những chiếc diện thoại đó phải phục vụ cho những nhucầu cá nhân của mình Một trong những nhu cầu lớn của người dùng đó là họmuốn có được những chương trình phục vụ cho việc học tập của bản thânhoặc con em của mình.Từ nhu cầu đó em đã phân tích và để xuất phát triểnứng dụng học toán

Môi trường cài đặt cũng là một yếu tố hết sức quan trọng cần phải nhắctới Khảo sát thực tế, những thiết bị di động được nhiều người sử dụng nhấtđều chạy trên hệ điều hành android Vì thế em quyết định phát triển một ứng

dụng “Học toán trên nền tảng android”.

Trang 8

II GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID

1 Tìm hiểu chung về hệ điều hành Android

1.1 Khái niệm Android

Android là hệ điều hành trên thiết bị di động (mobile, tablet và hiện nay

là cả trên các thiết bị phát HD, PC) phát triển bởi Google và dựa trên nền tảngLinux

Android là nền tảng cho thiết bị di động bao gồm một hệ điều hành,midware và một số ứng dụng chủ đạo Bộ công cụ Android SDK cung cấp cáccông cụ và bộ thư viện các hàm API cần thiết để phát triển ứng dụng cho nềntảng Android sử dụng ngôn ngữ lập trình Java

Hình 1.1 Minh họa Android [5]

Ưu điểm chính của việc áp dụng Android là cung cấp một cách tiếp cậnthống nhất để phát triển ứng dụng Các nhà phát triển chỉ cần phát triển choAndroid và các ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau,miễn là các thiết bị được hỗ trợ bằng cách sử dụng Android [9]

1.2 Lịch sử Android

Trước đây, Android được phát triển bởi công ty liên hợp Android (sau

đó được Google mua lại vào năm 2005) Các nhà phát triển viết ứng dụng choAndroid dựa trên ngôn ngữ Java Sự ra mắt của Android vào ngày 5 tháng 11năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở

Trang 9

Google công bố hầu hết các mã nguồn của Android theo bản cấp phépApache [8]

Dường như ai dùng hệ điều hành Android thì cũng đều biết đều đượcbiết rằng nó thường gắn với một cái tên nhất định Tuy nhiên ở bản 1.0 thìAndroid xuất hiện thì nó chưa có một cái tên ý nghĩa mà nó chỉ mới được đặttên bằng số Sau đó Google phát hành bản cập nhật Android 1.1 dành riêngcho T-Mobile G1

Hình 1.2 Phiên bản Andoid 1.0 [5]

Từ phiên bản 1.5 Google chính thức đặt tên nó là một món tráng miệngđược phát hành theo thứ tự bảng chữ cái thì người ta mới thực sự chú ý hơnvới các tính năng nổi bật Andoird 1.5 với cái tên là Cupcake (bánh nướngnhỏ), phiên bản dựa trên nhân Linux 2.6.27 phát hành vào tháng 4 năm 2009

Hình 1.3 Phiên bản Andoid 1.5 [5]

Tiếp đó, tháng 9 cùng năm Android 1.6 ra đời với cái tên là Donut.Donut là tên của một loại bánh rán hình vòng tròn

Trang 10

Hình 1.4 Phiên bản Andoid 1.6 [5]

Chỉ một tháng tung ra phiên bản Donut thì Google đã tung ra phiên bảnmới để sửa lỗi và cập nhật với mã là 2.0, 2.1 và được gọi với cái tên chung làEclair, một loại bánh ngọt xuất xứ từ Pháp có hình dạng thon dài lại có nhânkem và phủ các loại kem hoặc đường đông bên trên

Hình 1.5 Phiên bản Andoid 2.0 [5]

Món tráng miệng tiếp theo được Google chọn ra là vào tháng 5 năm

2010, món sữa chua đá Froyo viết tắt của Frozen Yogurt (sữa chua đá tuyết),hay còn có tên với số hiệu là 2.2

Hình 1.6 Phiên bản Andoid 2.2 [5]

Một bản cập nhật tiếp mà hiện nay đang là bản Android phổ biến sauJelly Bean đó là Android 2.3 (Gingerbread) cho suốt năm 2010 cho đến tậnthời điểm này Chính vì sự ổn định của nó mà tại thời điểm này người dùngvẫn ngại không nâng cấp lên phiên bản mới Bánh gừng Gingerbread là têngọi của phiên bản 2.3 xuất hiện vào cuối năm 2010, gần 6 tháng sau Froyo

Trang 11

Hình 1.7 Phiên bản Andoid 2.3[5]

Sau khi tập trung vào mảng điện thoại di động thì Google cũng đã nhận

ra tiềm năng của những chiếc máy tính bảng khi Ipad của Apple đang có sứcthu hút lớn trên toàn thế giới Và muốn chặn đứng lại trào lưu này, hệ điềuhành Android 3.0 là câu trả lời đầu tiên của Google dành cho Apple Phiênbản Android 3.0 lấy tên gọi từ bánh mật tổ ong, Honeycomb, được thiết kế lấymáy tính bảng làm trung tâm ra đời vào ngày 10 tháng 5 năm 2011

Hình 1.8 Phiên bản Andoid 3.0[5]

Ra mắt ngày 19 tháng 10 năm 2011, phiên bản 4.0 có một thiết kế hoàntoàn khác biệt trọng đó là nó đã gộp giao diện điện thoại di động với máy tínhbảng làm một, cho thấy một điều máy tính bảng và điện thoại di động đã đượctích hợp trong cùng một hệ điều hành Android Ice Cream Sandwich là mộtchiếc sandwich kem lạnh, tên món tráng miệng của Android 4.0

Trang 12

Tháng 7 năm 2012, một nhân vật mới trình làng Android có cái tên cũngnhư biểu tượng khá ngộ nghĩnh Đây cũng là phiên bản ra sau Ice CreamSandwich nhưng có lượng người dùng hiện đang là đông đảo nhất Android4.1 hay còn gọi là Jelly Bean, một loại kẹo dẻo hình hạt đậu với nhiều tínhnăng hấp dẫn.

Hình 1.10 Phiên bản Andoid 4.1[5]

Tháng 10 năm 2013, phát hành phiên bản 4.4 với tên gọi là KitKat.KitKat là phiên bản đầu tiên mà Google đã hợp tác với một thương hiệu bênngoài để làm linh vật Android, thương hiệu đó là Nestlé Chiếc bánh sô cô

la này đem đến những hương vị ngọt ngào bởi những tính năng tuyệt vời

Hình 1.11 Phiên bản Andoid 4.4[5]

Giữa tháng 10 năm nay Google chính thức ra mắt phiên bản Android 5.0Lollipop (kẹo que, kẹo mút)

Hình 1.12 Phiên bản Andoid 5.0[5]

Trang 13

Nói về Android thì đã có quá nhiều thay đổi về cả hình thức cũng nhưnội dung kể từ khi nó xuất hiện Với thị trường di động mọi thứ phát triểnnhanh hơn rất nhiều và Android đang là trung tâm của sự phát triển ấy Công

ty liên hợp Android được Google mua lại vào năm 2005 hiện đã cho Googlequá nhiều thứ [7]

1.3 Một số đặc trưng của hệ điều hành Android

-Application framework: cho phép sử dụng lại và thay thế các thànhphần trong lập trình ứng dụng

- Dalvik virtual machine: tối ưu hóa cho thiết bị di động

- Intergrated browser: trình duyệt tích hợp, dựa trên cơ chế WebKit mãnguồn mở

- SQLite: cơ sở dữ liệu trong môi trường di động

- Media support: hỗ trợ các định dạng audio, video và hình ảnh thôngdụng

- GSM Telephony: mạng điện thoại di động (phụ thuộc vào phần cứng)

- Bluetooth, EDGE, 3G, và WiFi: các chuẩn kết nối dữ liệu (phụ thuộcvào phần cứng)

- Camera, GPS, la bàn, và gia tốc kế (phụ thuộc vào phần cứng)

- Môi trường phát triển phong phú: bao gồm thiết bị mô phỏng, công cụcho việc dò tìm lỗi, bộ nhớ, định hình hiệu năng và một plugin cho EclipseIDE

1.4 Một số tính năng hỗ trợ sẵn trong hệ điều hành Android

- Storage: Sử dụng SQLite, một cơ sở dữ liệu quan hệ nhẹ cho việclưu trữ dữ liệu

- Connectivity: Hỗ trợ GSM/EDGE, IDEN, CDMA, EV-DO, UMTS,Bluetooth (bao gồm AD2P và AVRCP), Wifi, LTE và WiMAX

Trang 14

- Web browser: Dựa trên mã nguồn mở Webkit, cùng với công nghệJavaScript V8 của Chrome.

- Media support: Bao gồm hỗ trợ các phương tiện truyền thông sau:H.263, H.264 ( Trong 3GP hoặc MP4 container), MPEG-4 SP, AMP, AMR-

WB (3GB container), AAC, HE-AAC (MP4 hoặc 3GP container), MP3,MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF và BMP

- Hardware support: Accelerometer Sensor, Camera, Digital Compass,Proximity Sensor và GPS

- Multi-touch: Hỗ trợ màn hình cảm ứng đa điểm

- Multi-tasking: Hỗ trợ ứng dụng đa tác vụ

- Flash support: Android 2.3 hỗ trợ Flash 10.2

- Tethering: Hỗ trợ kết nối Internet không dây/có dây

1.5 Cấu trúc của hệ điều hành Android

Các tầng cơ bản trong hệ điều hành Android: Linux Kernel, AndroidRuntime và Native Libraries, Application Framework, Application Mỗi tầnglàm việc đều nhờ sự giúp đỡ của tầng bên dưới

a. Tầng Linux Kernel

Linux Kernel là tầng trong cùng đóng vai trò làm cơ sở, nền tảng pháttriển cho hệ điều hành Android Tất cả mọi hoạt động của điện thoại muốnthực thi đều phải thông qua tầng này, tầng này giúp ta kết nối đến tất cả cácphần cứng của điện thoại

Hình 1.2 Tầng Linux Kernel trong kiến trúc Android [9]

Trang 15

+ 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ínhiệ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ớimạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năngtruyền thông được thực hiện

+ Flash memory Driver: Quản lý việc đọc ghi lên các thiết bị như thẻnhớ SD, Flash

+ Power Management: Giám sát việc tiêu thụ điện năng

b. Tầng Libraries và Android Runtime

Tầng Libraries:

Tầng libraries chứa tất cả các thư viện lõi chủ yếu được xây dựng dựatrên ngôn nhữ C/C++ của hệ điều hành Android để cung cấp cho nhà pháttriển thiết thế chương trình

Hình 1.3 Tầng Libraries trong kiến trúc Android [9]

Trang 16

+ SQLite: cung cấp tất cả các đối tượng được sử dụng để quản lý cơ sở

dữ liệu trong ứng dụng và chia sẻ dữ liệu với các ứng dụng khác

+ OPENGL ES: là thư viện đồ họa 3D

+ Free Type: giúp tùy chỉnh Fonts chữ trong ứng dụng

+ WebKit: là công cụ hỗ trợ lướt web

Android Runtime

Hình 1.4 Tầng Android Runtime trong kiến trúc Android [9]

+ Libraries Core: là thư viện lõi được viết bằng ngôn ngữ java, chứa tất

cả các class, io, tool để sử dụng trong ứng dụng

+ Daivik Virual Machine: là máy ảo được xây dựng trong Device để cóthể chạy được những ứng dụng với file là apk

c. Tầng Application Framework

Tầng này cung cấp một nền tảng phát triển ứng dụng mở và xây dựng

bộ công cụ các phần tử ở mức cao qua đó cho phép nhà phát triển ứng dụng

có thể nhanh chóng xây dựng ứng dụng và khả năng tạo ra các ừng dụng mớiphong phú hơn

Trang 17

Các lợi ích mà tầng này cung cấp cho nhà phát triển:

Với các nhà sản xuất phần cứng điện thoại: có thể tùy biến hệ điều hành

để phù hợp với cấu hình phần cứng điện thoại mà họ sản xuất cũng như để cónhiều mẫu mã điện thoại để phù hợp với thị hiếu của người tiêu dùng

Với nhà phát triển ứng dụng: Cho phép các 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ển rõ cấu trúc bên dưới Mộttập hợp các 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, điều nàytạo điều kiện thuận lợi cho các lâp trình viên làm việc vì họ chỉ cần quan tâmđến nội dung mà ứng dụng của họ mà không cần phải quan tâm đến nhữngthứ liên quan khác

Hình 1.5 Tầng Application Framework trong kiến trúc Android [9]

Các thành phần của Application Framework:

+ ACTIVITY MANAGER: Activity Manager là những gì quản lý vòngđời của các ứng dụng Nó cũng duy trì việc trở lại ngăn xếp chung vì vậy cácứng dụng mà đang chạy trong các quá trình khác nhau có thể có một trảinghiệm điều hướng tích hợp thông suốt

+ PACKAGE MANAGER: Package manager là những gì theo dõi cácứng dụng được cài đặt trên thiết bị của bạn Vì vậy, nếu bản tải về các ứngdụng mới qua môi trường hoặc cài đặt các ứng dụng, đó là quản lý gói nó chịutrách nhiệm cho việc theo dõi những gì bạn có và những khả năng của mỗiứng dụng của bạn là những gì

Trang 18

+ WINDOW MANAGER: Quản lý việc xây dựng và hiển thị các giaodiệ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.+ TELEPHONY MANAGER: Telephony Manager có chứa các API màchúng ta có thể sử dụng để xây dựng các ứng dụng điện thoại, cung các sựkiện liên quan đến điện thoại như gọi đến/gọi đi.

+ LOCATION MANAGER: Cho phép xác định vị trí của điện thoại dựavào hệ thống định vị toàn cầu GPS và Google Maps

+ NOTIFICATION MANAGER: Cho phép tất cả các ứng dụng hiển thịcác thông báo tùy chỉnh trên thanh trạng thái

+ CONTENT PROVIDERS: Cho phép truy cập dữ liệu từ các ứng dụngkhác (như tiếp xúc) quản lý danh bạ hoặc chia sẽ dữ liệu của riêng mình.+ RESOURCE MANAGER: Quản lý tất cả các 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 tất cả những phần bênngoài của một ứng dụng mà không phải code

+ VIEW SYSTEM: được dùng để xây dựng giao diện một ứng dụng baogồm các văn bản, nút bấm và cả những web nhúng, kể cả những thứ như điềuphối sự kiện, thiết kế bản vẽ

d. Tầng Applications

Đây là tầng ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng

cơ bản được cài đặt gắn liền với hệ điều hành như: phone, contacts, web,SMS, Calendar …

Các ứng dụng trong tầng Application được phát triển bằng ngôn ngữjava, phần mở rộng là file apk

Khi một ứ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ươngtrình có giao diện với người sử dụng hoặc là một Background: chương trìnhchạy nền hay là dịch vụ

Trang 19

Hình 1.6 Tầng Applications trong kiến trúc Android [9]

1.6 Máy ảo Dalvik

Máy ảo Dalvik (DalvikVM) được đặt bởi Bornstein theo tên một làngchài ở Iceland, nơi tổ tiên của ông sống, đây là một máy ảo register-based.Nói cách khác, “register-based” mà chúng ta đã nói ở đầu là khác so với máy

ảo Java thông thường (trên các hệ thống Windows, Linux… của Sun)

Dalvik là tên của máy ảo Android Nó chỉ là một máy ảo thông dịchthực thi các file ở định dạng thực thi của Dalvik (Dalvik Executable - *.dex),một định dạng được tối ưu hóa cho lưu trữ và sử dụng bộ nhớ hiệu quả Đây

là một máy ảo register-based, và nó có thể chạy các class được biên dịch bởimột trình biên dich Java đã được chuyển thành định dạng tương thích với nóbởi công cụ “dx” Máy ảo chạy ở mức trên cùng của nhân Linux 2.6 và dựatrên các chức năng phía dưới của hệ thống (giống như luồng và trình quản lý

bộ nhớ mức thấp) DalvikVM cũng được tối ưu hóa để chạy đa thể hiện vớimột very low memory-footprint Một vài máy ảo cung cấp cơ chế bảo vệ cácứng dụng của chúng không bị ảnh hưởng bởi một ứng dụng gặp lỗi khác

Cơ chế máy ảo Dalvik?

+ Ngay khi thực hiện ứng dụng, quá trình Linux kết hợp với các ứngdụng Android làm việc trong môi trường máy ảo riêng của mình

+ Khi một ứng dụng chạy trong quá trình Linux riêng của mình, hệthống Android bắt đầu quá trình khi bất kỳ của các thành phần của ứng dụngcần được thực hiện và tắt quá trình khi nó không còn cần thiết

Trang 20

Hình 1.7 Cơ chế máy ảo Dalvik [5]

Sự khác biệt với máy ảo Java thông thường?

Máy ảo Java có thể tìm thấy trên hầu hết các máy tính ngày nay làstack-based VM DalvikVM thì khác, là một register-based, bởi vì một vi xử

lý di động được tối ưu hóa cho thao tác register-based Máy ảo register-basedcũng cho phép thời gian thực thi nhanh hơn

1.7 Các thành phần trong một ứng dụng Android

Trong một ứng dụng Android cơ bản thường có 4 loại thành phần khácnhau: Activity, Service, Broadcast Receiver và Content Provider Đây lànhững thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khaibáo trong AndroidManifest

a. Activity

Trong một ứng dụng Android thường có một hoặc nhiều Activity

Một Activity đại diện cho duy nhất một giao diện người dùng hiển thịlên màn hình Một Activity sẽ có vòng đời riêng biệt, độc lập với tất cả cácActivity khác trong một một ứng dụng Android

Trang 21

Vòng đời của một Activity:

Hình 1.19 Vòng đời của một Activity [9]

+ onCreate(): là trạng thái được triệu gọi khi Activity được khởi tạo.Trạng thái này chỉ được triệu gọi duy nhất một lần trong xuất một vòng đờicủa Activity

+ onStart(): được gọi đến trong hai trường hợp:

• Khi Activity được khởi tạo mới Onstart được gọi sau khi onCreate được khởitạo

• Khi Activity được hiện thị trở lại (Activity từ trạng thái Background chuyểnsang trạng thái Foreground)

+ onPause(): được gọi đến khi activity trở về trạng thái Background.+ onResume(): cũng giống như trạng thái onStart nhưng nó được gọiđến sau khi onStart được khởi tạo

Trang 22

+ onStop(): được gọi đến khi vòng đời của Activity kết thúc hoặc khiActivity trở về trạng thái Background (được triệu gọi sau onPause().

+ onDestroy(): là trạng thái được gọi đến sau cùng khi và chỉ khiActivity kết thúc vòng đời

b. Services

Services là một trong những thành phần chính trong hệ điều hànhandroid Services chạy dưới nền background thực hiện các công việc liên tục,lâu dài nhưng không ảnh hưởng đến giao diện người dùng

Vòng đời của services:

Hình 1.8 Vòng đời của một Activity [9]

Một vòng đời của services có thể được khởi tạo bằng 2 cách:

startService(): ta dùng phương thức này khi thực hiện một hành độngđơn và hành động đó không trả về kết quả(ví dụ như chơi nhạc)

bindService(): cung cấp 1 interface dạng client-server cho phép dứngdụng có thể tương tác với service

Trang 23

Ví dụ: bạn viết một chương trình thay thế cho phần gọi điện mặc địnhcủa Android, khi đó bạn cần một BR để nhận biết các Intent là các cuộc gọitới.

1.8 Công cụ phát triển hệ điều hành Android

a. Android SDK

Công cụ phát triển ứng dụng Android (Android SDK) bao gồm một bộcông cụ phát triển toàn diện bao gồm một trình gỡ lỗi, các thư viện, thiết bịgiả lập dựa trên QEMU, tài liệu, mẫu ví dụ tham khảo, và hướng dẫn Hiệntại Android SDK được hỗ trợ các máy tính chạy hệ điều hành Linux, Mac OS

X 10.5.8 hoặc mới hơn, Windows XP, Windows Vista, Windows 7 và mớihơn Hỗ trợ chính thức môi trường phát triển tích hợp (IDE) Eclipse bằngcách sử dụng Android Development Tools (ADT) Plugin, bên cạnh đó còn cóIntelliJ IDEA IDE (tất cả các phiên bản) hỗ trợ đầy đủ lập trình Android, vàNetBeans IDE cũng hỗ trợ phát triển Android thông qua một Plugin Ngoài ra,các nhà phát triển có thể sử dụng trình soạn thảo bất kỳ để chỉnh sửa các tậptin Java và XML, sau đó sử dụng công cụ dòng lệnh (Java Development Kit

và Apache Ant được yêu cầu) để tạo, biên dịch và gỡ lỗi các ứng dụng

Trang 24

Android cũng như kiểm soát các thiết bị Android (ví dụ, kích hoạt khởi độnglại máy, cài đặt phần mềm từ xa).

Cải tiến của Android SDK đi đôi với sự phát triển của toàn bộ nền tảngAndroid SDK cũng hỗ trợ các phiên bản cũ hơn của nền tảng Android trongtrường hợp các nhà phát triển muốn phát triển ứng dụng cho thiết bị cũ Cácthành phần của Android SDK dễ dàng tải xuống vì thế các phiên bản củaPlatform có thể tải về phiên bản mới nhất cũng như cũ hơn phục vụ quá trìnhkiểm thử

Các ứng dụng Android được đóng gói thành tệp apk Và dữ liệu được

lưu trữ trong thưc mục /data/app trên hệ điều hành Android Trong tệp APK

chứa tệp tin dex (mã nguồn được dịch thành mã byte chạy trên bộ xử lýdalvik), và các tập tin tài nguyên, vv… [10]

b. Eclipse

Eclipse là một nền tảng phát triển mã nguồn mở dựa trên Java có thể mởrộng được Eclipse bao gồm một tập hợp các dịch vụ để xây dựng các ứngdụng từ các thành phần plug-in Eclipse được tạo thành bởi một tập hợp cácplug-in chuẩn JDT (Java Development Tools)

Dự án Eclipse được IBM bắt đầu vào tháng 11 năm 2001 Các dự án củaEclipse tập trung vào việc xây dựng nền tảng mã nguồn mở bao gồm cácFramework có thể mở rộng, các tool và thư viện để xây dựng, triển khai vàquản lý các phần mềm

Eclipse là một tổ chức phi lợi nhuận, là nơi phát triển cộng đồng mãnguồn mở và hệ thống các sản phẩm, dịch vụ Những người phát triển plug-incho Eclipse hoặc những người sử dụng Eclipse như là nền tảng cho các ứngdụng phát triển phần mềm cần tuân thủ giấy phép EPL

Kiến trúc Eclipse nền tảng bao gồm nhiều thành phần Các chức năngcủa thành phần lõi tách biệt với các chức năng của phần giao diện

Trang 25

Kiến trúc nền tảng Eclipse cung cấp các công cụ cùng cơ chế sử dụng

và quy định để có thể tích hợp các công cụ một cách dễ dàng Những cơ chếnày được thể hiện thông qua giao diện API, lớp và phương thức Ngoài ra, nềntảng Eclipse còn cung cấp các framework để dễ dàng phát triển các công cụmới

Eclipse SDK gồm Eclipse Platform, JDT và PDE JDT và PDE là cácplug-in được gắn vào Platform Eclipse Platform được xây dựng dựa trên cơ

chế “phát hiện, tích hợp và chạy” Plug-in là đơn vị chức năng nhỏ nhất có thể

được phát triển và phân phối một cách riêng biệt Thông thường, công cụ nhỏđược viết trong một plug-in riêng biệt và công cụ phức tạp được tách ra thànhnhiều plug-in

- SWT (Standard Widget Toolkit) là một gói công cụ mã nguồn mở

được phát triển bởi IBM, cung cấp cho các lập trình viên Java giải pháp đểphát triển giao diện đồ họa người dùng

- JFace là toolkit để xây dựng giao diện người dùng cấp cao, JFace là

tầng trên cùng của SWT, cung cấp các lớp thuộc mô hình MVC để phát triểncác ứng dụng đồ họa dễ dàng hơn

Những người muốn phát triển Eclipse sẽ sử dụng PDE (Plug-inDevelopment Environment) để bổ sung thêm các plug-in mới [10]

2 Giới thiệu về PHP

Giới thiệu về ngôn ngữ php

PHP - viết tắt của PHP Hypertext Preprocessor - một định nghĩa đệ quykhó hiểu

Vào khoảng năm 1994, Rasmus Lerdorf đưa một số đoạn Perl Scriptvào trang Web để theo dõi xem ai đang đọc tài liệu của ông ta Dần dần, người

ta bắt đầu thích các đoạn Script này và sau đó đã xuất bản một gói công cụ có

Trang 26

cơ chế nhúng và kết hợp với một số công cụ khác để phân tích đầu vào từ cácmẫu biểu HTML: FI, Form Interpreter hay Phiên dịch mẫu biểu, được tạo ratheo cách đó và được đặt tên là PHP/FI hay PHP2 Nó được hoàn thành vàokhoảng giữa năm 1995.

Sau đó, người ta bắt đầu sử dụng các công cụ này để xây dựng nhữngthứ rắc rối hơn, và đội ngũ phát triển đã thay đổi từ một người duy nhất thànhmột nhóm các nhà phát triển nòng cốt trong dự án, và nó đã được tổ chức hoá

Đó là sự bắt đầu của PHP3 Đội ngũ các nhà phát triển (Rasmus Lerdorf, AndiGutmans, Zeev Suraski, Stig Bakken, Shane Caraveo và Jim Winstead) đã cảitiến và mở rộng bộ máy nhúng và bổ sung thêm một số hàm API đơn giản chophép các lập trình viên khác tự do bổ sung nhiều tính năng vào ngôn ngữ bằngcách viết các module cho nó Cấu trúc của ngôn ngữ đã được tinh chế, đượckết cấu thân thiện hơn đối với những người đến từ các ngôn ngữ hướng đốitượng hay các ngôn ngữ hướng thủ tục Nếu bạn đã biết một vài ngôn ngữ lậptrình khác thì khi đến với PHP, bạn sẽ không cảm thấy khó khăn

Các kiểu dữ liệu trong PHP

PHP có 3 kiểu dữ liệu cơ bản: Integer, double và string Ngoài ra cònmột số kiểu dữ liệu khác, được xây dựng dựa trên các kiểu dữ liệu cơ bảntrên, như mảng, object, mà chúng ta sẽ đề cập đến sau Tất cả các biến đềuđược chỉ định kiểu dữ liệu, và như chúng ta đã nói ở trên, giá trị của chúng cóthể bị thay đổi trong quá trình sử dụng

Kiểu giá trị Integer sử dụng 4 byte của bộ nhớ Đây là kiểu giá trịnguyên (không phải là số thực) và có giá trị nằm trong khoảng từ -2 tỷ đến 2

tỷ Kiểu dữ liệu double là kiểu dữ liệu số thực, cho phép chứa các số thực.Kiểu String được sử dụng để chứa các dữ liệu như là các ký tự văn bản, ký tựđặc biệt và các chữ số Dữ liệu kiểu string được đặt trong cặp dấu ngoặc kép("") chỉ định một xâu (hay còn gọi là chuỗi ký tự)

Trang 27

Hằng và biến

Giống như trong toán học, một hằng số xác định một giá trị duy nhấtthông qua tên của hằng số, trong tin học cũng vậy Môt hằng số xác định mộtgiá trị duy nhất trong toàn bộ chương trình Người ta có thể sử dụng giá trịnày thông qua tên của hằng số đó trong chương trình

Tương tự đối với biến Một biến trong lập trình được sử dụng để lưu trữmột giá trị nào đó thông qua tên biến Sở dĩ người ta gọi nó là biến, vì khôngnhư hằng số (giữ nguyên giá trị trong toàn bộ quá trình chạy chương trình)người ta có thể thay đổi giá trị của biến số thông qua các phép gán

Để tạo điều kiện dễ dàng trong quá trình phân tích dữ liệu, PHP quyđịnh bất kỳ từ nào có dấu $ ở trước đều là tên của biến Ví dụ:

$ten xác định một biến có tên là ten $custome_name: xác định một biến cótên là $custome_name

Do quy định các chuỗi ký tự có chứa dấu $ ở trước là một tên biến, nênPHP tự động khởi gán giá trị của các biến này là rỗng (đối với kiểu dữ liệuvăn bản) hoặc 0 đối với kiểu dữ liệu số

Toán tử và biểu thức trong PHP

• Toán tử gán:

Chúng ta đã từng tiếp xúc với toán tử này bởi việc khởi tạo 1 biến Nógồm ký tự đơn = Toán tử gán lấy giá trị của toán hạng bên phải gán nó vàotoán hạng bên trái

Ví dụ: $name = "vinanghinguyen";

Trang 28

• Toán tử số học:

Là dạng phép tính giản đơn cộng, trừ, nhân, chia trong số học Ngoài racòn có phép chia lấy dư (%) Được sử dụng để lấy ra đơn vị dư của 1 phéptoán

• Toán tử so sánh:

Là toán tử được sử dụng để thực hiện các phép toán so sánh giữa hai sốhạng

Trang 29

Các bước xây dựng chương trình có kết nối tới CSDL My SQL:

Thông thường, trong một ứng dụng có giao tiếp với CSDL, ta phải làmtheo bốn trình tự sau:

• Bước 1: Thiết lập kết nối tới CSDL

Trang 30

• Bước 3: Tiến hành các truy vấn SQL, xử lý các kết quả trả về nếu có.

• Bước 4: Đóng kết nối tới CSDL

• Thiết lập kết nối tới MySQL

Để kết nối tới cơ sở dữ liệu ta dùng hàm mysql_connect() cú pháp nhưsau: mysql_connect (host, user_name, password);

Trong đó :

 Host: tên host hoặc ip của host

 User_name: tên truy cập để truy cập tới mysql

Php kết hợp với các ngôn ngữ khác

• Javascript

JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịchbản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu Ngôn ngữnày được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khảnăng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng Nó vốnđược phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tênđầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thànhJavaScript Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với

Self hơn Java .js là phần mở rộng thường được dùng cho tập tin mã nguồn

JavaScript

• Jquery

JQuery chính là một thư viện kiểu mới của Javascript giúp đơn giản hóacách viết Javascript và tăng tốc độ xử lý các sự kiện trên trang web JQuerythêm tương tác Ajax vào trong website JQuery được thiết kế để thay đổi cáchviết Javascript của lập trình viên Chỉ với 10 dòng lệnh JQuery bạn có thểthay thế cả 20 chục dòng lệnh DOM JavaScript bới thế mà nó được mang cáislogan là “The Write Less, Do More…”

Trang 31

3. Giới thiệu về MySql

Sơ lược về Mysql

• My SQL là gì?

 MySQL là một phần mềm quản trị CSDL mã nguồn mở, miễn phínằm trong nhóm LAMP (Linux - Apache -MySQL - PHP)

• Tại sao lại sử dụng MySQL?

 MySQL là phần mềm miễn phí hoàn toàn, ổn định, an toàn

• Một số đặc điểm của MySQL

 MySQL là một phần mềm quản trị CSDL dạng server-based (gầntương đương với SQL Server của Microsoft)

 MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể cónhiều bảng quan hệ chứa dữ liệu

 MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng

có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có mộttên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL

 Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập vàmật khẩu của tài khoản có quyền sử dụng CSDL đó Nếu không, chúng ta sẽkhông làm được gì cả

Các câu lệnh căn bản trong SQL

• SELECT

Phát biểu SQL dạng SELECT là 1 trong những phát biểu yêu cầuMySQL truy vấn dữ liệu trên cơ sở dữ liệu chỉ định.SELECT dùng để đọcthông tin từ cơ sở dữ liệu theo trường trường hợp quy định hay những biểuthức cho trường hợp đó

Mệnh đề FROM chỉ ra tên 1 bảng hay những bảng có quan hệ cần truyvấn thông tin

Trang 32

Mệnh đề WHERE để tạo nên điều kiện cần lọc mẩu tin theo tiêu chuẩnđược định nghĩa Thông thường WHERE dùng cột (trường) để so sánh với giátrị cột khác,hay biểu thức chứa cột (trường) bất kỳ có trong bảng (table)

Phát biểu SQL có dạng:

• UPDATE

Phát biểu SQL dạng UPDATE dùng cập nhật lại dữ liệu đã tồn tại trongbảng.Khi UPDATE dùng cập nhật dữ liệu cho một mẩu tin chỉ định nào đóthường lệnh này sử dụng chung với mệnh đề WHERE

Nếu cập nhật tất cả các mẩu tin trong bảng bạn có thể bỏ mệnh đềWHERE Cấu trúc như sau:

Nếu cập nhật giá trị là kết quả trả về từ phát biểu SELECT trên 1 haynhiều bảng khác.Cấu trúc như sau:

• INSERT

Khi cần thêm mẩu tin vào bảng (table) trong CSDL MySQL ,bạn cónhiều cách để thực hiện công việc này, nhưng để sử dụng các phát biểu SQLmang tính chuyên nghiệp bạn cần sử dụng phát biểu INSERT

Khi thêm dữ liệu, cần chú ý kiểu dữ liệu giống hoặc tương ứng với kiểu

dữ liệu đã khai báo của cột ( column ), nếu không phù hợp thì lỗi sẽ phát sinhMuốn INSERT vào CSDL thì ta có cấu trúc như sau:

Trang 33

CHƯƠNG II: XÁC ĐỊNH YÊU CẦU VÀ PHÂN TÍCH

THIẾT KẾ HỆ THỐNG

Mục đích và phạm vi hệ thống: Trước tiên xác định phạm vi hệ thống,

đặt ra các mục tiêu cần đạt được của hệ thống.

Yêu cầu hệ thống: Xác định yêu cầu của hệ thống và các chức năng

của hệ thống

Phân tích hệ thống: Xác định các tiến trình và xây dựng biều đồ dữ

liệu liên quan.

2 Mục tiêu của ứng dụng

- Ứng dụng trực quan, dễ thao tác, sử dụng với người dùng

- Cơ động có thể học toán được ở mọi lúc mọi nơi

- Dữ liệu phong phú đa dạng

3 Yêu cầu hệ thống

Mục đích giúp người dùng có nâng cao kiến thức về môn toán học.Với các mục tiêu đề ra chúng em thấy được phẩn mềm xây dựng cầnđáp ứng được những modul chính sau: Quản lý lý thuyết toán, Quản lý bài tậptoán

Trang 34

II PHÂN TÍCH THẾT KẾ HỆ THỐNG

1 Sơ đồ usecase tổng quát

Hình 2.2.1: Sơ đồ usecase tổng quát hệ thống xây dựng phần mềm học Toán

2 Sơ đồ usecase phân rã chức năng

Hình 2.2.3: Sơ đồ usecase phân rã chức năng đăng kí đăng nhập

Trang 35

Hình 2.2.4: Sơ đồ usecase phân rã chức năng quản lý lý thuyết

Hình 2.2.3: Sơ đồ usecase phân rã chức năng quản lý bài tập

Trang 36

Hình 2.2.4: Sơ đồ usecase phân rã chức năng quản lý bài tập yêu thích

3 Chức năng quản lý lý thuyết

Tên use case Quản lý lý thuyết

Tác nhân chính Quản trị hệ thống

Tiền điều kiện Đã khởi động app

Hậu điều kện Hệ thống cập nhập lại dữ liệu

Kích hoạt Người dùng chọn các chức năng quản lý lý thuyếtChuỗi sự kiện chính:

1. Hệ thống yêu cầu lựa chọn chức năng: thêm,sửa,xóa, hiển thị

2. Người dùng lựa chọn chức năng

3. Hệ thống hiển thị giao diện nhập thông tin cần thay đổi

4. Người dùng nhập thông tin

5. Người dùng chọn đồng ý

6. Hệ thông kiểm tra thông tin

7. Hệ thống cập nhập thông tin vào cơ sở dữ liệu

8. Hệ thống thông báo thành công và quay lại giao diện chính

Ngoại lệ:

1. Hệ thống thông báo thông tin không hợp lệ

2. Hệ thống yêu cầu nhập lại thông tin

3. Người dùng nhập lại hoặc thoát

Ngày đăng: 06/07/2017, 08:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trần Đình Quế và Nguyễn Mạnh Sơn, Giáo trình phân tích và thiết kế hệ thống thông tin, Học viện Công nghệ Bưu chính viễn thông, Hà nội, 2007 Sách, tạp chí
Tiêu đề: Giáo trình phân tích và thiếtkế hệ thống thông tin
[3] Mike O'Docherty, Object - Oriented Analysis & Design, Wiley India Pvt, Limited, 2005 Sách, tạp chí
Tiêu đề: Object - Oriented Analysis & Design
[4] Andy Ju An Wang Kai Quian, Component - Oriented Programming, Wikey, 2005. Website tham khảo Sách, tạp chí
Tiêu đề: Andy Ju An Wang Kai Quian
[6] Khảo sát các hệ thống hiện tại:https://play.google.com/store[7] https://www.youtube.com/user/cellphoneuk Link
[2] Tài liệu lập trình Android tiếng việt Tài liệu Tiếng Anh Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w