1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh

60 453 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 60
Dung lượng 2,89 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với ưu thế nhỏ gọn, tiện dụng và đa nhiệm, điện thoại thông minh trở thành một công cụ đắc lực trong việc học tập và giải trí, đặc biệt là các điện thoại dùng hệ điều hành Android – hệ đ

Trang 1

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Tìm hiểu HĐH Android và xây dựng ứng dụng

minh họa phần mềm Học Tiếng Anh

Trang 2

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Tìm hiểu HĐH Android và xây dựng ứng dụng

minh họa phần mềm Học Tiếng Anh

Sinh viên thực hiện Cán bộ hướng dẫn Nguyễn Phúc Vinh Ths Nguyễn Minh Trung MSSV:1111560

Trang 3

LỜI CẢM ƠN

Tôi xin chân thành cảm ơn Quý thầy cô Khoa Công nghệ thông tin và Truyền thông, trường Đại học Cần Thơ đã tận tình dạy bảo và truyền thụ những kiến thức quý báu trong suốt thời gian tôi học tập tại trường, cũng như tạo điều kiện để tôi có thể hoàn thành tốt đề tài luận văn

Tôi xin chân thành cảm ơn thầy Nguyễn Minh Trung đã tận tình hướng dẫn, giúp đỡ tôi trong suốt quá trình thực hiện đề tài, tôi có thể hoàn thành đề tài này cũng nhờ sự giúp đỡ nhiệt tình của thầy

Tôi xin cảm ơn tất cả bạn bè, các bạn sinh viên ngành Tin học ứng dụng khóa

37 đã giúp đỡ, đóng góp nhiều ý kiến quý báu để tôi có thể chỉnh sửa và khắc phục kịp thời

Mặc dù đã cố gắng khắc phục và hoàn thiện đề tài được tốt hơn nhưng chắc chắn tôi cũng mắc những sai lầm trong quá trình thực hiện Rất mong nhận được sự thông cảm, phê bình và những ý kiến quý báu của thầy cô

Tôi xin chân thành cảm ơn

Cần Thơ, ngày 15 tháng 06 năm 2015

Người thực hiện

Nguyễn Phúc Vinh

Trang 4

MỤC LỤC

LỜI CẢM ƠN 1

MỤC LỤC ii

DANH MỤC HÌNH iv

DANH MỤC BẢNG vi

TÓM TẮT vii

ABSTRACT viii

Chương 1 GIỚI THIỆU 1

1.1 ĐẶT VẤN ĐỀ 1

1.2 PHẠM VI ĐỀ TÀI 1

1.3 PHƯƠNG PHÁP NGHIÊN CỨU 1

Chương 2 CƠ SỞ LÝ THUYẾT 2

2.1 HỆ ĐIỀU HÀNH ANDROID [6,8] 2

2.1.1 Tổng quan về hệ điều hành Android 2

2.1.2 Các phiên bản Android 2

2.1.3 Kiến trúc HĐH Android 3

2.1.3.1 Phần cứng 3

2.1.3.2 Hệ điều hành Android 4

2.1.3.3 Kết nối mạng 6

2.1.3.4 Bảo mật 7

2.1.4 Cấu trúc của một ứng dụng Android 7

2.1.4.1 Các thành phần của một ứng dụng Android 7

2.1.4.2 Cấu trúc lưu trữ dự án trong Android 9

Thư mục mã nguồn (SRC): 9

2.2 TEXT TO SPEECH TRONG ANDROID 11

2.2.1 Giới thiệu về Text to Speech 11

2.2.2 Cách sử dụng Text to Speech 11

2.3 SQLITE 12

2.3.1 Giới thiệu SQLite 12

2.3.2 Chi tiết về các đặc tính SQLite 13

2.4 GIỚI THIỆU VỀ LINQ 14

Trang 5

2.4.1 LinQ là gì ? 14

2.4.2 Tại sao nên dùng LinQ ? 14

2.4.3 Cách dùng LinQ 14

2.5 DỊCH VỤ WEB (WEB SERVICES) [1,3,5] 16

2.5.1 Kiến trúc dịch vụ Web 16

2.5.2 Xây dựng ứng dụng Web 17

2.5.3 Cách đưa CSDL và ứng dụng Web lên Web Service trên mạng 20

2.5.4 Giao tiếp giữa Android và Web Service dựa trên SOAP [1] 27

2.5.5 Sử dụng dịch vụ Web trong Android 29

2.5.6 Thư viện kSoap trong Android [1,3] 30

Chương 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 38

3.1 PHÂN TÍCH CHƯƠNG TRÌNH 38

3.1.1 Giới thiệu 38

3.1.2 Luật chơi và cách tính điểm 38

3.1.3 Lưu trữ thông tin người dùng 38

3.2 THUẬT TOÁN VÀ THIẾT KẾ CHƯƠNG TRÌNH 39

3.2.1 Thuật toán trong chương trình 39

3.2.2 Mô hình CSDL 39

3.2.3 Tập Thực Thể 41

3.2.4 Mô Hình Use Case 42

3.3 KẾT QUẢ ĐẠT ĐƯỢC 43

3.3.1 Giao Diện Trên Web 43

3.3.2 Giao Diện Trên Android 44

Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49

4.1 KẾT LUẬN 49

4.1.1 Ưu điểm 49

4.1.2 Hạn chế 49

4.2 HƯỚNG PHÁT TRIỂN 49

TÀI LIỆU THAM KHẢO 50

Trang 6

DANH MỤC HÌNH

Những yêu cầu về phần cứng của hđh Android 4

Các tầng của hệ điều hành Android 6

Biều đồ miêu tả Activity State 8

Cài đặt Text to Speech 12

Cài đặt thêm ngôn ngữ khác 12

Tạo mới file Data Classes 15

Thêm các table vào Data Classes 15

Tạo ứng dụng Web 17

Ứng dụng Web 17

Tạo mới một Web Service chạy trên localhost 18

Nội dung trong Web Service vừa tạo 18

Phương thức Web 19

Các phương thức trong dịch vụ Web được định nghĩa 20

Nhập giá trị cần tính trong phương thức ktUser 20

Kết quả thực thi 20

Chọn Server miễn phí 21

Tạo một tài khoản mới 21

Tạo website mới 22

Tạo mới CSDL 22

Cấu hình CSDL 23

Chuỗi kết nối đến Web Service 23

Đưa CSDL lên web bước 1 24

Đưa CSDL lên web bước 2 24

Đưa CSDL lên web bước 3 25

Đưa CSDL lên web bước 4 25

Đưa ứng dụng lên web bước 1 26

Đưa ứng dụng lên web bước 2 26

Đưa ứng dụng lên web bước 3 27

HTML frontend 27

Direct Web service invocation 28

Web service gateway 29

Gửi yêu cầu và nhận kết quả từ dịch vụ Web sử dụng HttpTransport 30

Mô hình class đợn giản của kSoap2 31

Sơ đồ biểu diễn việc xử lý dữ liệu của chương trình từ SQLite và Web Service 32

Hàm trả về câu trả lời 33

Cách config giữa Android và Web Service 33

Cách lưu dữ liệu từ Web vào SQLite 35

Dữ liệu trong SQLite 35

Trang 7

Kết quả khi chạy hàm 37

Sơ đồ thuật toán làm bài học 39

Mô hình CSDL 40

Mô hình use case người quản trị 42

Mô hình use case người dùng 43

Form đăng nhập 44

Màn hình chỉnh sửa câu hỏi 44

Giao diện đăng nhập 45

Giao diện chính 46

Danh mục mức độ 46

Hiển thị đáp án câu hỏi 47

Màn hình Báo lỗi và Thoát 48

Màn hình hiển thị kết quả 48

Trang 8

DANH MỤC BẢNG

Bảng 2.1 Các phiên bản của hệ điều hành Android 3

Bảng 2.2 Cấu trúc lưu trữ dự án trong Android 10

Bảng 2.3 Cấu trúc lưu trữ trong thư mục res 11

Bảng 3.1 Mô tả tập thực thể Nguoi_Dung 41

Bảng 3.2 Mô tả tập thực thể Mức Độ 41

Bảng 3.3 Mô tả tập thực thể Bài Học 41

Bảng 3.4 Mô tả tập thực thể Báo Lỗi 41

Bảng 3.5 Mô tả tập thực thể Câu hỏi 42

Bảng 3.6 Mô tả tập thực thể Trả Lời 42

Trang 9

TÓM TẮT

Ngày nay đối với mọi ngành nghề, Tiếng Anh là một phần không thể thiếu trong các yêu cầu tuyển dụng Đặc biệt là đối với các sinh viên Công nghệ thông tin, điều này trở thành một nhu cầu tất yếu

Cùng với sự phát triển vượt bậc của công nghệ thông tin, các điện thoại thông minh

đã trở nên gần gũi hơn đối với mọi người Với ưu thế nhỏ gọn, tiện dụng và đa nhiệm, điện thoại thông minh trở thành một công cụ đắc lực trong việc học tập và giải trí, đặc biệt là các điện thoại dùng hệ điều hành Android – hệ điều hành chiếm hơn 75% thị phần điện thoại thế giới

Vì lẽ đó, đề tài luận văn “Tìm hiểu HĐH Android và xây dựng ứng dụng minh họa phần mềm Học Tiếng Anh” được ra đời nhằm đáp ứng nhu cầu người dùng cần học Tiếng Anh

Phần mềm được viết trên hệ điều hành Android sử dụng ngôn ngữ Java kết hợp với Webservice để lưu trữ dữ liệu

Từ khóa: phần mềm học tiếng anh, ksoap, android, webservices, sqlite

Trang 10

ABSTRACT

Today, for all professions, English is an integral part of the recruitment requirements

Especially for students of Information Technology, which became an essential

With the boom of information technology, the smart phone has become closer to the

people With the advantage of compact, handy and multitasking, the smartphone

becomes a powerful tool for learning and entertainment, especially the phone using

the Android operating system - OS accounted for over 75% world phone market

Therefore, the thesis "Learn Android and build software applications illustrated Learn

English" was created to meet the needs of users who need to learn English

Software written for the operating system Android uses the Java language associated

with Webservice to store data

Key words: English learning software, kSOAP, android, webservices, sqlite

Trang 11

Chương 1 GIỚI THIỆU 1.1 ĐẶT VẤN ĐỀ

Ngày nay, hầu như tất cả các ngành nghề hiện đại đều có sự xuất hiện của Công nghệ thông tin, đặc biệt là kinh tế xã hội ngày càng phát triển nên việc sử dụng những sản phẩm của Công nghệ thông tin với kích thước nhỏ gọn, tiện lợi không còn gì là

xa lạ đối với mọi người Trong đó, công nghệ di động và những ứng dụng của nó được mọi người quan tâm và sử dụng phổ biến hơn

Trong những năm gần đây, việc học tiếng anh trở thành một như cầu thiết yếu trong cuộc sống, nhất là đối với những sinh viên ra trường tìm việc, tiếng anh trở thành một trong những yêu cầu hàng đầu của các nhà tuyển dụng Tuy nhiên, việc học tiếng anh trên giấy theo cách truyền thống mang lại nhiều khó khăn cho người học: khó lưu trữ, tốn kém tiền bạc, tốn nhiều thời gian tìm kiếm, … làm cho nhiều người học tuy tốn nhiều thời gian nhưng vẫn không thể học tốt

Nhận thấy nhu cầu thiết yếu trên nên em quyết định chọn đề tài: “Tìm hiểu HĐH Android và xây dựng ứng dụng minh họa phần mềm Học Tiếng Anh” Ứng dụng có thể giúp người dùng học tiếng anh miễn phí với nhiều câu hỏi trong nhiều lĩnh vực khác nhau và nghe cách phát âm các câu nói đơn giản Tuy còn khiêm tốn nhưng ứng dụng cũng đã giải quyết phần nào nhu cầu về việc học tiếng anh

1.2 PHẠM VI ĐỀ TÀI

Ứng dụng học tiếng anh giúp mọi người có thể làm trắc nghiệm trên nền tảng Android với các chức năng xem lại bài làm, chọn mức độ, nghe cách phát âm chuẩn,…

Lưu trữ câu hỏi trên mạng giúp người dùng có thể làm bài mọi lúc, mọi nơi với nhiều lĩnh vực và mức độ khác nhau

Tạo trang web đơn giản giúp admin tiếp nhận báo lỗi từ người dùng và chỉnh sửa, thêm mới các câu hỏi

1.3 PHƯƠNG PHÁP NGHIÊN CỨU

Đề tài được nghiên cứu và thực hiện tuần tự theo các bước sau:

 Tìm hiểu hệ điều hành Android, Web Service, SQLite

 Cách tạo và đưa CSDL lên Web Service

 Cách cấu hình, đọc và ghi dữ liệu Web Service với SQLite

 Phân tích và thiết kế chương trình

 Cài đặt và kiểm thử

 Nhận xét và đánh giá kết quả đạt được

Trang 12

Chương 2 CƠ SỞ LÝ THUYẾT 2.1 HỆ ĐIỀU HÀNH ANDROID [6,8]

2.1.1 Tổng quan 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 Ban đầu, Android được phát triển bởi Tổng 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 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ở: 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

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 Vào tháng 10 năm

2012, có khoảng 700.000 ứng dụng trên Android, 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 khoảng 25 tỷ lượt

Những yếu tố này đã 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 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, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu Kết quả

là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng

mã nguồn mở để tạo ra những dự án do cộng đồng quản lý Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác

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 500 triệu thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày Sự thành công của hệ điều hành 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 "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ

2.1.2 Các phiên bản Android

Trong khi các số phiên bản của Android phiên bản hệ điều hành tuần tự là: 1.6, 2.1, 4.2, Các bản phát hành cũng được đặt tên tương tự như các mặt hàng khác nhau

Trang 13

trong một thực đơn tráng miệng hảo hạng: Donut, Eclair, và Jelly Bean Khi mọi người ám chỉ Jelly Bean có nghĩa là phiên bản Android 4.2 Phiên bản Android cũng được mô tả ở cấp độ API, bởi số nguyên tăng dần theo trình tự Vì vậy, Android API

ở mức 17 đề cập đến Android phiên bản 4.2, còn được gọi là Jelly Bean

Bảng 2.1 Các phiên bản của hệ điều hành Android

Phiên bản Tên mã Ngày phát hành API Phân bố

5.0 Lollipop 07/2014 20 Dành cho người

phát hành 4.4 KitKat 10/2013 19 17,9%

Trang 14

Phần Cứng Những yêu cầu tối thiểu

Chipset ARM-based

RAM 128MB RAM,258MB Flash External

Ổ cứng Mini hoặc Micro SD

Màn hình chính QVGA TFT LCD hoặc lớn hơn,16 bit color hoặc tốt hơn

Navigation Key 2MP CMOS

USB Standard mini-B USB interface

Bluetooth 1.2 hoặc hơn

Những yêu cầu về phần cứng của hđh Android

Những yêu cầu về phần cứng có thể khác nhau tuỳ theo phiên bản Android

2.1.3.2 Hệ điều hành Android

Có 5 tầng phân biệt trong hệ thống android

Tầng lõi ARM Linux (Linux Kernel):

Là tầng thấp nhất được xây dựng từ hai thành phần chính là Linux Kernel và bộ

vi xử lý ARM (Acorn RISC Machine) Bộ vi xử lý ARM hoạt động với hiệu suất cao nhưng tiêu thụ năng lượng rất ít

Android dựa trên Linux phiên bản 2.6, từ Android 4.0 trở về sau là phiên bản 3.x Linux kernel phiên bản 2.6 là phiên bản có tính ổn định cao Sự kết hợp giữa hai thành phần này nhằm giải quyết phần nào giới hạn nguồn năng lượng sử dụng và tối ưu việc sử dụng các tài nguyên trong thiết bị

Nền tảng Linux Kernel 2.6 chứa những drivers để điều khiển phần cứng như keypad, wifi, camera, audio, màn hình,v.v Đây là trung tâm điều khiển của Android.Các giải thuật quản lý tài nguyên, chuyển đổi qua lại giữa các tác vụ phân chia quyền, giải quyết tranh chấp được cài đặt trong kernel Tuy nhiên lập trình viên sẽ không lập trình trực tiếp trên tầng này

Tầng thư viện (Libraries):

Chứa mã nguồn mở cấp thấp cho những chức năng cơ bản như: mã hoá và giải

mã âm thanh, hình ảnh kĩ thuật số, trình bày các giao diện đồ hoạ, bảo mật lưu lượng TCP/IP cũng như các thành phần cho trình duyệt web, hỗ trợ truy xuất cơ

sở dữ liệu (SQLite),v.v

Đây là tầng chứa các thư viện C/C++ được gọi thông qua giao diện java Tầng này gồm thư viện surface (tạo các cửa sổ giao diện), OpenGL (hỗ trợ xây dựng ứng dụng 2D và 3D), Media Framework (hỗ trợ xây dựng các ứng dụng về âm thanh hình ảnh), SSL (cung cấp các chức năng bảo mật thiết bị), SQLite (cơ sở dữ liệu mã nguồn mở được nhúng trong thiết bị), webkit (hỗ trợ hiển thị nội dung website),v.v

Trang 15

Tầng máy ảo Android (Android Runtime):

Đây là một phần mềm dùng để chạy các ứng dụng trên thiết bị Android, bao gồm một tập các thư viện lõi (core libraries) cung cấp hầu hết các chức năng trong thư viện lõi của ngôn ngữ lập trình Java và máy ảo Dalvik Mỗi ứng dụng android sẽ chạy trên một tiến trình dành riêng cho nó, với một máy ảo Dalvik riêng cũng được thiết lập dành riêng cho mỗi ứng dụng Dalvik được viết để một thiết bị có thể chạy nhiều máy ảo cùng lúc hiệu quả Máy ảo Dalvik thực thi các tập tin dex,

là loại tập tin được đóng gói từ các file class giúp tối ưu bộ nhớ, quản lý tiến trình

và quản lý bộ nhớ hiệu quả, máy ảo này cũng sử dụng các chức năng do Linux kernel cung cấp

Tầng khung ứng dụng Android (Android Application Framework):

Tầng này định nghĩa Android API, cung cấp bộ công cụ ở mức cao để các lập trình viên nhanh chóng xây dựng ứng dụng

Chứa các thư viện java hỗ trợ người dùng giao tiếp với tầng thư viện và tầng máy

ảo Một phần của tầng này do Google cung cấp sẵn, một phần do lập trình viên tạo ra Trong tầng này thì thành phần quan trọng nhất là Activity Manager vì nó quản lý chu kì sống của Activity

 Activity Manager: quản lý chu trình sống của các Activity trong ứng dụng

Android

 Telephony Manager: cung cấp thư viện để truy xuất đến các dịch vụ điện

thoại cũng như là thông tin thuê bao

 View System: xử lý giao diện trong ứng dụng android

 Location Manager: cung cấp thư viện hỗ trợ người dùng định vị vị trí của

thiết bị

Tầng ứng dụng lõi Android (Applications):

Đây là tầng cao nhất và ứng dụng của lập trình viên sẽ nằm ở tầng này Google đã viết sẵn một số thư viện tiện ích trong tầng này để việc truy xuất thông tin ở các tầng dưới thuận tiện,linh hoạt và hiệu quả nhất

Bao gồm các những ứng dụng cơ bản hỗ trợ thêm cho người lập trình như: Webkit browser, Google Calendar, Gmail, Map Application, SMS Messenger, Email Client ,v.v

Trang 16

Các tầng của hệ điều hành Android

2.1.3.3 Kết nối mạng

Android hỗ trợ giao tiếp không dây bằng cách sử dụng:

Mạng wifi 802.11: Là hệ thống mạng không dây sử dụng sóng vô tuyến giống

như điện thoại di động, truyền hình và radio với băng tầng 2,4 3,6 và 5 Ghz

Công nghệ GSM (The Global System Mobile Communication): là hệ thống

mạng tế bào sử dụng kỹ thuật TDMA (Time Division Multi Access) – đa truy cập theo thời gian Mỗi cuộc gọi được phát triển trên tầng số chung nhưng theo các khoảng thời gian khác nhau Khoảng thời gian này đủ bé để người sử dụng không nhận thấy sự rời rạc khi nghe người khác nói Công nghệ dành cho mạng 2G và hoạt động ở băng tầng 900MHz hay 1800MHz

EDGE (Enhanced Data Ratesn for GSM Evolution): Còn được gọi là EGPGS,

là một công nghệ được phát triển từ GPRS, cho phép truyền dữ liệu với tốc độ

384 kbit/s cho người dùng cố định hoặc di chuyển chậm và 144 kbit/s cho người dùng di chuyển với tốc độ cao EDGE được biết đến như một công nghệ 2,75G

3G: là công nghệ truyền thông thứ ba, cho phép truyền dữ liệu thoại và dữ liệu

ngoài thoại (tải dữ liệu, gửi email,tin nhắn nhanh, hình ảnh) Công nghệ này tăng băng thông và hỗ trợ đa dạng ứng dụng hơn trong đó có dịch vụ video call

4G LTE: Là công nghệ thứ tư của công nghệ không dây 4G được thiết kế nhằm

tăng tốc độ cho người dùng điện thoại thông minh và máy tính bảng với 100Mbps dowload và 50Mbps upload Hầu hết điện thoại thông minh hỗ trợ 4G đều chạy

hệ điều hành Android

Trang 17

2.1.3.4 Bảo mật

Android là một hệ thống đa tiến trình, trong đó mỗi ứng dụng chạy riêng biệt trong một tiến trình riêng biệt dành cho nó Bảo mật giữa ứng dụng và hệ thống được thực thi ở mức tiến trình thông qua những tiêu chuẩn của Linux Mỗi ứng dụng trong Android được gán một ID và mặc định khi ứng dụng chạy sẽ không có bất cứ tiến trình hay hệ thống khác can thiệp vào nó

Việc cho phép trao đổi thông tin và tương tác qua lại giữa các tiến trình phải được định nghĩa trước trong ứng dụng đó để khi cài đặt, hệ điều hành sẽ nhận diện được thông tin này

2.1.4 Cấu trúc của một ứng dụng Android

2.1.4.1 Các thành phần của một ứng dụng Android

Các thành phần tạo nên ứng dụng Android được chia làm 6 loại bao gồm:

Activity: là nền của 1 ứng dụng Khi khởi động một ứng dụng Android nào

đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác

Service: thành phần chạy ẩn trong Android Service sử dụng để update dữ liệu,

đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy

Content Provider: kho dữ liệu chia sẻ Content Provider được sử dụng để

quản lý và chia sẻ dữ liệu giữa các ứng dụng

Intent: nền tảng để truyền tải các thông báo Intent được sử dụng để gửi các

thông báo đi nhằm khởi tạo một Activity hay Service để thực hiện công việc mong muốn

Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới

Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng

hoạt động

Activity, Service, Broadcast Receiver và Content Provider mới 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 khai báo trong AndroidManifest

Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng

Activity bao gồm 4 state:

- active (running): Activity đang hiển thị trên màn hình (foreground)

Trang 18

- paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus)

- stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop

- killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc

ưu tiên

Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó

Biều đồ miêu tả Activity State

Vòng đời của Activity:

- Entire lifetime: Từ phương thức onCreate() cho tới onDestroy()

- Visible liftetime: Từ phương thức onVisible() cho tới onInvisible()

- Foreground lifetime: Từ phương thức onBegin() cho tới onPause()

Trang 19

Khi xây dựng Actitvity cho ứng dụng cần phải viết lại phương thức onCreate() để thực hiện quá trình khởi tạo Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình

Android có cơ chế quản lý các process theo chế độ ưu tiên Các process có priority thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên

Foreground process: là process của ứng dụng hiện thời đang được người dùng tương

tác

Visible process: là process của ứng dụng mà activity đang hiển thị đối với người

dùng (onPaused() của activity được gọi)

Service process: là Service đang running

Background process: là process của ứng dụng mà các activity của nó không hiển thị

với người dùng (onStoped() của activity được gọi)

Empty process: process không có bất cứ 1 thành phần nào active Theo chế độ ưu

tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process

2.1.4.2 Cấu trúc lưu trữ dự án trong Android

Thư mục assets Thư mục này dùng để lưu trữ dữ liệu do lập trình viên tự định

nghĩa như tập tin HTTP, tập tin XML, tập tin văn bản, tập tin CSDL,.v.v

Các tập tin này sẽ được ứng dụng truy xuất thông qua đối tượng Asset Manager của Android

Việc truy xuất tài nguyên trong Assets thông qua việc đọc và lưu trữ các bit và byte

Thư mục RES Cũng giống như thư mục assets, đây là thư mục để lưu trữ các

tài nguyên của ứng dụng

Thư mục này có thể lưu trữ bất cứ loại tài nguyên nào từ chuỗi cho tới hình ảnh và âm thanh

Việc truy xuất tài nguyên trong RES thông qua IDs.Khi thêm tài vào thư mục RES, Android sẽ phát sinh một ID và lưu trữ

ID này vào tập tin R.java và chỉ cần gọi ID này để truy xuất

Trang 20

là thư viện của JDK hay Android SDK mà là một thư viện bên ngoài

Thư mục Referenced Libraries được tạo khi thêm thư viện vào thư mục Libs

Thư mục GEN Thư mục này được tạo trong lần biên dịch đầu tiên của ứng

dụng

Thư mục GEN chứa tập tin R.java dùng để lưu trữ các giá trị

ID Khi muốn truy xuất tài nguyên nào chỉ cần chỉ định giá trị

ID tương ứng của tài nguyên đó

Tập tin

Android

Manifest.xml

Đặt tên cho Java package của ứng dụng

- Mô tả các thành phần (component) của ứng dụng: activity, service, broadcast receiver hoặc content provider

- Thông báo những permission mà ứng dụng cần có để truy nhập các protected API và tương tác với các ứng dụng khác

- Thông báo những permission mà các ứng dụng khác cần có để tương tác với ứng dụng hiện thời

- Thông báo level thấp nhất của Android API mà ứng dụng cần

để chạy

- Khai báo các thư viện mà ứng dụng sử dụng

- Khai báo quyền hạn của ứng dụng

Bảng 2.2 Cấu trúc lưu trữ dự án trong Android

Cách tổ chức tài nguyên trong thư mục RES:

Thư mục con Loại tài nguyên lưu trữ

anim/ Các tập tin XML định nghĩa loạt ảnh (animation)

color/ Các tập tin XML định nghĩa danh sách màu

drawable/ Các tập tin hình ảnh hoặc các tập tin XML có thể được

biên dịch thành các tài nguyên hình ảnh

Drawable-hdpi/ Các tập tin hình ảnh với độ phân giải cao

Drawable-ldpi/ Các tập tin hình ảnh với độ phân giải thấp

Drawable-mdpi/ Các tập tin hình ảnh với độ phân giải trung bình

layout/ Các tập tin XML định nghĩa các giao diện trong dự án

menu/ Các tập tin XML định nghĩa menu trong ứng dụng

raw/ Các tập tin dữ liệu thô dùng trong ứng dụng

values/ Các tập tin XML định nghĩa các giá trị đơn giản:

Trang 21

 Array.xml: chứa các tài nguyên mảng

 Color.xml: chứa các định nghĩa màu sắc

 Dimens.xml: định nghĩa các giá trị kích thước

 String.xml định nghĩa các giá trị kiểu chuỗi

 Style.xml: Định nghĩa tài nguyên về phong cách

Bảng 2.3 Cấu trúc lưu trữ trong thư mục res

2.2 TEXT TO SPEECH TRONG ANDROID

2.2.1 Giới thiệu về Text to Speech

Tính năng chuyển văn bản thành giọng nói (Text-to-speech hay TTS)

được Google trang bị sẵn cho hệ điều hành Android từ phiên bản 1.6 Donut Tính năng rất hữu ích trong nhiều trường hợp, đặc biệt đối với các phần mềm từ điển, giúp cho bạn có thể nghe phát âm của từ một cách đơn giản, ngoài ra một số phần mềm khác có thể đọc giúp bạn nội dung đang hiển thị trên màn hình, đọc tin nhắn hay số điện thoại đang gọi, hướng dẫn chỉ đường bằng giọng nói Chỉ có một vài phần mềm trên Android tự xây dựng cơ sở dữ liệu phát âm và giải thuật riêng của mình, còn phần lớn đều dựa vào dịch vụ có sẵn của Google để chuyển văn bản thành giọng nói

Vào Settings -> Accessibility -> Text-to-speech output:

Trang 22

Cài đặt Text to Speech

Mặc định thì voice data (giọng eng) đã được cài sẵn, vì thế lựa chọn Install voice data chỉ hữu ích khi bạn muốn cài thêm giọng khác như Đức, Tây Ban Nha, Pháp hay Ý Như đã nói ở trên, tất cả dữ liệu đều được Goolge xử lý trên server nên voice data của họ có dung lượng khá nhỏ, chỉ khoảng vài MB:

Cài đặt thêm ngôn ngữ khác

2.3 SQLITE

2.3.1 Giới thiệu SQLite

SQLite là một thư viện thực thi các chức năng của một database engine với đặc điểm giống như một phần mềm portable, không cần cài đặt, không cần cấu hình, không cần

Trang 23

server, những điểm này rất khác so với việc sử dụng SQL Server hoặc Oracle, nhưng

nó vẫn có transaction để đảm bảo tính toàn vẹn và an toàn trong quá trình thao tác dữ liệu Có thể so sánh nó có một vài điểm giống với Access, nhưng nhìn chung vẫn có nhiều sự khác biệt

Đặc điểm của SQLite là gọn, nhẹ, đơn giản Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500kb, không cần cài đặt, không cần cấu hình hay khởi động mà có thể

sử dụng ngay Dữ liệu database cũng được lưu ở một file duy nhất Không có khái

SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa và nhỏ thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm v.v và

là sự lựa chọn phù hợp cho những người bắt đầu học database

2.3.2 Chi tiết về các đặc tính SQLite

Không cần phải thiết lập bất kỳ một cấu hình nào để có thể sử dụng SQLite

Các HQTCSDL như SQL Server, Oracle, Postgre thường cần một server riêng để triển khai ứng dụng, cài đặt database engine, các máy khách sẽ kết nối đến server để

xử lý dữ liệu một cách tập trung Tuy nhiên SQLite không làm việc theo cách này mà ứng dụng sẽ truy xuất trực tiếp vào file database, các máy khách cũng có thể truy xuất một file database SQLite để trên một server thông qua cơ chế chia sẻ và bảo mật file của hệ điều hành,người dùng nào truy cập được vào thư mục và có quyền đọc - ghi thì sẽ có thể đọc ghi vào file database SQLite Tuy nhiên sẽ có những hạn chế nhất định

Database do SQLite tạo ra là một file dữ liệu duy nhất

Có thể copy file database SQLite từ hệ thống này sang hệ thống khác, từ hệ thống 32 hay 64 bit, từ phiên bản SQLite này sang phiên bản khác mà không cần chuyển đổi , nâng cấp hệ điều hành, cấu trúc hệ thống hay phải làm lại file database

Cực kỳ nhỏ gọn và dễ sử dụng

Số lượng kiểu dữ liệu của SQlite rất ít, điều này là một đặc trưng của nó, bởi trong SQLite, kiểu dữ liệu là một thuộc tính của chính giá trị được lưu chứ không phải là thuộc tính của cột lưu giá trị đó Tuy vậy, cũng có một vài ràng buộc, là với cột khóa chính kiểu integer thì phải lưu giá trị phải chính xác là kiểu int, ngoài ra SQLite cũng

cố gắng chuyển đổi kiểu của giá trị sang kiểu của cột lưu nó khi có thể Mục đích của việc thiết kế kiểu dữ liệu như vậy nhằm làm cho nó tin cậy và đơn giản hóa việc sử dụng, và cũng để dễ tương thích hơn khi sử dụng với các ngôn ngữ như Tcl hoặc Python

Dữ liệu lưu bao nhiêu thì hệ thống cấp phát cho bấy nhiêu không gian bộ nhớ cho từng dòng dữ liệu, không cấp phát thừa hoặc thiếu không gian lưu trữ cho dữ liệu, nhờ đó mà file database trở nên nhỏ gọn và tốc độ xử lý dữ liệu cũng nhanh hơn SQLite là một hệ quản trị CSDL mã nguồn mở, hoàn toàn miễn phí

Trang 24

2.4 GIỚI THIỆU VỀ LINQ

LINQ là một tập hợp các thành phần mở rộng cho phép viết các câu truy vấn dữ liệu ngay trong một ngôn ngữ lập trình, như C# hoặc VB.NET Khi tạo một đối tượng LINQ thì Visual Studio sẽ tự động sinh ra các lớp có các thành phần tương ứng với CSDL của chúng ta Khi muốn truy vấn, làm việc với CSDL ta chỉ việc gọi và truy xuất các hàm, thủ tục tương ứng của LINQ mà không cần quan tâm đến các câu lệnh SQL thông thường

2.4.2 Tại sao nên dùng LinQ ?

- Trước đây, cách phổ biến nhất để ứng dụng lấy dữ liệu từ các hệ cơ sở dữ liệu (CSDL) là sử dụng SQL (Structure Query Language - ngôn ngữ truy vấn cấu trúc) SQL có cú pháp rất khác với những ngôn ngữ lập trình phổ dụng như C# và VB.NET, do vậy bạn phải nhọc công "hàn gắn" hai thực thể khác biệt này với nhau trong mỗi dự án phần mềm LINQ ra đời để giảm gánh nặng thao tác "hàn gắn" trên nhiều ngôn ngữ khác nhau

- Hơn nữa để sử dụng trong ứng dụng C# lại thêm 1 tầng phức tạp nữa với các câu lệnh: dùng ConnectionString khởi tạo kết nối tới DataBase, tự khai báo các biến để chạy 1 lệnh - command, rồi còn phải tính toán đầu ra của câu lệnh Điều này rất phức tạp và hay gặp phải lỗi

- LinQ có khả năng hỗ trợ trên nhiều nền tảng khác: XML, SQLite, Excel

2.4.3 Cách dùng LinQ

Vào Project, Add new items rồi chọn như hình dưới đây:

Trang 25

Tạo mới file Data Classes

Sau đó, ta kéo các bảng trong CSDL cần tương tác vào khung:

Thêm các table vào Data Classes

Khai báo biến để tương tác với LinQ:

DB.DBDataContext db = new DB.DBDataContext ();

Sử dụng LinQ để viết hàm kiểm tra người dùng:

Trang 26

public bool ktUser( String acc, String pass)

{

int count = db.Nguoi_Dungs

Where(c => c.Ten_hien_thi == acc && c.Mat_Khau == pass) .Count();

Câu lệnh được thực hiện tương ứng trong SQL:

SELECT COUNT (*) AS [value]

FROM [dbo] [Nguoi_Dung] AS [t0]

WHERE ( [t0] [Ten_hien_thi] = @p0 ) AND [t0] [Mat_Khau] = @p1 )

2.5 DỊCH VỤ WEB (WEB SERVICES) [1,3,5]

Web Serivce là một công nghệ cho phép client truy xuất để thực hiện mọi tác

vụ như một ứng dụng Web (Web application) thông qua các phương thức Web (Web method) được cung cấp từ dịch vụ Web (Web services) Về bản chất, dịch vụ Web dựa trên XML và HTTP, trong đó XML làm nhiệm vụ mã hóa, giải mã dữ liệu và dùng SOAP để truyền tải dữ liệu Dịch vụ web không phụ thuộc vào nền tảng, vì vậy người dùng có thể sử dụng chúng trên bất cứ hệ điều hành nào

2.5.1 Kiến trúc dịch vụ Web

- Dịch vụ Web cơ bản

- SOAP (Simple Object Access Protocol): cho phép tạo ra các ứng dụng trong

đó một kết quả được chuyển qua nhiều thành phần trung gian trước khi đến được điểm cuối cùng

- WSDL (Web Service Description Language): ngôn ngữ mô tả các dịch vụ Web được trình bày theo tiêu chuẩn một dịch vụ Web dựa trên SOAP WSDL khi được kết hợp với những công cụ thích hợp, cho phép bạn gọi một dịch vụ Web trong chương trình mà không cần biết thực sự dịch vụ Web đang làm gì, truy xuất những chi tiết từ tập tin trả về WSDL và sử dụng chúng trong giao diện chương trình

- UDDI (Universal Description, Discovery, and Integration): tích hợp, khám phá và mô tả đa năng

- Dịch vụ Web mở rộng

- Web - Security: xử lý mã hóa và chữ ký số, cho phép tạo một ứng dụng có tính bảo mật và không bị người khác nghe trộm thông tin

Trang 27

- Web - Policy: cho phép mô tả chi tiết hơn một dịch vụ Web cung cấp cho ai

sử dụng và sử dụng nó như thế nào

- Web - I: cung cấp các bộ tiêu chuẩn để giải quyết vấn đề tương thích

- WS-BPEL: xác định các tương tác như là phân nhánh và xử lý đồng quy

- WS-ReliableMessaging: đảm bảo đã nhận được một và chỉ một bản sao

2.5.2 Xây dựng ứng dụng Web

- Từ menu File/ chọn New/ chọn Website (hoặc nhấn tổ hợp phím Shift

+ATL+ N) để tạo một website trong Visual Studio:

Trang 28

Web Service này chỉ chạy trên localhost, mục đích của chúng ta là tương tác với Android nên cần sử dụng một Web Service thực sự):

Tạo mới một Web Service chạy trên localhost

- Sau khi tạo xong, ta có kết quả như hình:

Nội dung trong Web Service vừa tạo

Trang 29

Các phương thức (web method) phải đặt ở chế độ public nếu không sẽ không

hiển thị trên web service

 Tất cả các phương thức Web phải là một hàm có kết quả trả về

- Dựa theo kết quả trả về, phương thức Web chia hai loại:

 Trả về một giá trị duy nhất: int, string, boolean, double,

 Trả về một giá trị chứa nhiều giá trị, danh sách các điểm: Datatable, DataSet,

- Phương thức Web có thể có hoặc không có tham số truyền vào Nếu phương thức Web có tham số truyền vào là một đối tượng, thì khi sử dụng dịch vụ Web, cần phải khai báo các ánh xạ của đối tượng đó

- Ví dụ: tạo phương thức kiểm tra người dùng:

 Phương thức được viết bằng LinQ, dùng để kiểm tra đăng nhập của người dùng:

Phương thức Web

 Chạy ứng dụng để kiểm tra kết quả Chọn phương thức cần kiểm tra (ktUser)

Trang 30

Các phương thức trong dịch vụ Web được định nghĩa

 Nhập giá trị và chọn Invoke để chạy phương thức Web

Nhập giá trị cần tính trong phương thức ktUser

 Kết quả trả về ở dạng XML

Kết quả thực thi

2.5.3 Cách đưa CSDL và ứng dụng Web lên Web Service trên mạng

- Tạo một website

Ngày đăng: 12/01/2016, 20:20

HÌNH ẢNH LIÊN QUAN

Bảng 2.1 Các phiên bản của hệ điều hành Android - Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh
Bảng 2.1 Các phiên bản của hệ điều hành Android (Trang 13)
Bảng 2.2  Cấu trúc lưu trữ dự án trong Android - Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh
Bảng 2.2 Cấu trúc lưu trữ dự án trong Android (Trang 20)
Bảng 2.3 Cấu trúc lưu trữ trong thư mục res - Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh
Bảng 2.3 Cấu trúc lưu trữ trong thư mục res (Trang 21)
Bảng 3.2 Mô tả tập thực thể Mức Độ - Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh
Bảng 3.2 Mô tả tập thực thể Mức Độ (Trang 51)
Bảng 3.4 Mô tả tập thực thể Báo Lỗi - Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh
Bảng 3.4 Mô tả tập thực thể Báo Lỗi (Trang 51)
Bảng 3.5 Mô tả tập thực thể Câu hỏi - Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh
Bảng 3.5 Mô tả tập thực thể Câu hỏi (Trang 52)
Hình 4.30 Đăng ký tài khoản. - Tìm hiểu hđh android và xây dựng ứng dụng minh họa phần mềm học tiếng anh
Hình 4.30 Đăng ký tài khoản (Trang 55)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w