1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android

97 296 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 97
Dung lượng 1,39 MB

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

Nội dung

 Đặc tính mở của android Android được xây dựng để cho phép các nhà phát triển tạo ra các ứng dụng di động hấp dẫn, tận dụng tất cả các tính năng của một chiếc điện thoại cung cấp... Tấ

Trang 1

LỜI CẢM ƠN

Để hoàn thành bài đồ án tốt nghiệp này, lời đầu tiên em xin gửi lời biết ơn

chân thành và sâu sắc nhất đến thầy giáo Th.S Nguyễn Văn Việt đã tận tình hướng

dẫn, truyền đạt những kinh nghiệm quý báu cho em trong suốt quá trình làm đồ án

Em xin gửi lời cảm ơn đến các thầy cô giáo trong khoa Công nghệ thông tin cùng toàn thể các thầy cô giáo đã truyền đạt vốn kiến thức quý báu cho em trong suốt quá trình học tâp vừa qua Em đã được các thầy cô cung cấp và truyền đạt tất

cả kiến thức chuyên môn cần thiết và quý giá nhất Ngoài ra, em còn được rèn luyện một tinh thần học tập và làm việc độc lập, sáng tạo Đây là nền tảng hết sức cần thiết để có thể thành công khi bắt tay vào nghề nghiệp trong tương lai

Đồ án tốt nghiệp là cơ hội để em có thể áp dụng, tổng kết lại những kiến thức mà mình được học Đồng thời, em rút ra được những kinh nghiệm thực tế và quý giá trong suốt quá trình thực hiện đồ án Sau một thời gian khá dài, em tập trung công sức cho đồ án và làm việc tích cực, đặc biệt nhờ sự chỉ đạo và hướng

dẫn tận tình của thầy Th.S Nguyễn Văn Việt cùng với các thầy cô trong trường Đại

học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên, đã giúp em hoàn thành đồ án một cách thuận lợi và gặt hái được những kết quả như mong muốn Bên cạnh những kết quả khiêm tốn mà em đạt được, chắc chắn không tránh khỏi những thiếu sót khi thực hiện báo cáo của mình, kính mong thầy cô thông cảm Sự phê bình, góp ý của quý thầy cô sẽ là nhưng bài học kinh nhiệm quý báu cho công việ thực tế của em sau này

Em cũng xin chân thành cảm ơn Ban lãnh đạo nhà trường cùng toàn thể các thầy cô giáo trong nhà trường đã tạo mọi điều kiện thuận lợi, cung cấp cơ sở vật chất, trang thiết bị cần thiết trong quá trình học tập của em tại trường

Kính chúc quý thầy cô mạnh khỏe, tiếp tục đạt được nhiều thắng lợi trong nghiên cứu khoa học và sự nghiệp trồng người

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

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan toàn bộ nội dung trong đồ án này là do tự em đọc và nghiên cứu các tài liệu, khảo sát các phần mềm hiện nay Từ đó viết ra cơ sở lý thuyết và xây dựng chương trình “phần mềm học tiếng Anh tỏng hợp trên Android”

Mọi nguồn tham khảo, trích dẫn trong đồ án đều được ghi rõ nguồn gốc

Người cam đoan

Nguyễn Văn Phú

Trang 3

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 6

MỞ ĐẦU: 7

CHƯƠNG 1: LÝ THUYẾT ANDROID 8

I GIỚI THIỆU ANDROID 8

1.1 Khái niệm android 8

1.1.1 Android khác với các hệ điều hành chạy trên thiết bị di động khác.8 1.1.2 Đặc tính mở của android 8

1.2 Kiến trúc android 9

1.2.1 Android Flatform 9

1.2.2 Tầng Linux Kernel 10

1.2.3 Native Labraries 10

1.2.4 Tầng Runtime 10

1.2.5 Tầng Application Framework 11

II MÔI TRƯỜNG LẬP TRÌNH 13

2.1 Các công cụ cần thiết để lập trình trên android và hướng dẫn cài đặt 13 2.1.1 Các công cụ cần thiết để lập trình 13

2.1.2 Chúng ta có 2 bước chính: Cài đặt JDK và Adroid Studio 13

2.2 Chu kỳ sống của ứng dụng android 13

2.2.1 Chu kỳ sống thành phần 13

2.2.2 Activity Stack 13

2.2.3 Các trạng thái của chu kỳ sống 14

2.2.4 Chu kỳ sống của ứng dụng 15

2.2.5 Các sự kiện trong chu kỳ sống của ứng dụng 15

Trang 4

2.2.6 Thời gian sống của ứng dụng 16

2.2.7 Thời gian hiển thị của Activity 16

2.2.8 Các hàm thực thi 16

2.3 Thành phần giao diện trong android 17

2.3.1 View 17

2.3.2 ViewGroup 17

2.4 Các control 18

2.4.1 Button 18

2.4.2 ListView 19

2.4.3 EditText 19

2.4.4 TextView 19

2.4.5 CheckBox 20

2.4.6 MenuOption 20

2.4.7 ContextMenu 21

2.4.8 Tùy biến control (Custom Control) 21

III LẬP TRÌNH TRÊN ANDROID 22

3.1 Giới thiệt Intents 22

3.1.1 Thành phần Intent 22

3.1.2 Sử dụng Intent khởi động cho Activities 23

3.1.3 Intent không tường minh thực thi Activity 23

3.1.4 Intent tường minh thực thi Activity 24

3.1.5 Sử dụng Intent để truyền thông tin ra ngoài Activity 24

3.2 Giới thiệu Adapter 24

3.2.1 Một số Adapter 25

3.2.2 Sử dụng Adapter hiển thị dữ liệu 25

3.3 Kỹ thuật lưu trữ dư liệu trong android 25

3.4 Lưu trữ dữ liệu ứng dụng một cách đơn giản 26

3.4.1 Tạo và lưu dữ liệu với Shared Preferences 26

Trang 5

3.4.2 Truy xuất Shared Preferences 27

3.5 Cơ sở dữ liệu trong android 27

3.5.1 Giới thiệu SQLite 27

3.5.2 Cursors và ContentValues 27

3.5.3 Sử dụng SQLiteOpenHelper 28

3.5.4 Truy xuất và tạo cơ sở dữ liệu không dung SQLiteHelper 28

3.5.5 Truy vấn cơ sở dữ liệu 29

3.5.6 Lấy kết quả từ Cursors 29

3.5.7 Thêm, cập nhật và xóa dòng 30

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 31

DEMO CHƯƠNG TRÌNH 31

I PHÂN TÍCH THIẾT KẾ HỆ THỐNG 31

1.1 Thực trạng 31

1.2 Mục tiêu của đề tài 31

1.3 Đối tượng 31

1.4 Ý nghĩa của phần mềm 31

1.5 Yêu cầu chức năng 32

1.6 Yêu cầu phi chức năng 33

II Biểu đồ 33

2.1 Biểu đồ UseCase 33

2.2 Biểu đồ trình tự 43

III DEMO CHƯƠNG TRÌNH 51

3.1 Giao diện chính của phần mềm 51

3.2 Giao diện chức năng luyện nghe 53

3.3 Giao diện chức năng luyện nói 55

3.4 Giao diện chức năng luyện đọc 56

3.5 Chức năng luyện viết 57

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 58

Trang 6

TÀI LIỆU THAM KHẢO: 59 NHẬN XÉT CỦA GIÁO VIÊN 60

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1.1 Kiến trúc Android 12

Hình 2.1 UseCase tổng quan 34

Hình 2.2 UseCase tra cứu từ vựng 35

Hình 2.3 UseCase luyện nghe 36

Hình 2.4 UseCase luyện nói 37

Hình 2.10 Biểu đồ trình tự chức năng luyện nghe 43

Hình 2.11 Biểu đồ trình tự chức năng luyện nói44

Hình 2.12 Biểu đồ trình tự chức năng luyện đọc45

Hình 2.13 Biểu đồ trình tự chức năng luyện viết46

Hình 2.14 Biểu đồ trình tự học ngữ pháp47

Hình 2.15 Biểu đồ tuần tự kiểm tra - test48

Hình 2.16 Biểu đồ trình tự tra cứu từ vựng 49

Hình 2.17 Biểu đồ trình tự phương pháp học 50

Hình 2.18 Giao diện mở đầu của phần mềm 51

Hình 2.19 Giao diện tùy chọn chính 52

Hình 2.20 Danh sách các bài nghe 53

Hình 2.21 Màn hình nghe đoạn hội thoại54

Hình 2.22 Giao diện chức năng luyện nói 55

Hình 2.23 Chức năng đọc sách 56

Hình 2.24 Màn hình đang đọc chuyện "The sleeping beauty" 57Hình 2.25 Chức năng viết 57

Trang 9

MỞ ĐẦU:

Với hơn 1,5 tỉ người dùng, tiếng Anh là ngôn ngữ phổ biến nhất thế giới Tiếng Anh được coi là ngôn ngữ chung quốc tế.Tất cả các nước phát triển đều sử dụng tiếng Anh Như vậy, tiếng Anh có thể coi là cầu nối để hội nhập với thế giới tốt hơn Với ý nghĩa lớn như vậy, em đã mạnh dạn làm đồ án với đề tài “xây dựng phần mềm học tiếng Anh tổng hợp trên hệ điều hành Android” để người Việt mình

có thêm một công cụ học tiếng Anh tiện lợi, hiệu quả

Trên cửa hàng Google Play đã có khá nhiều phần mềm học tiếng Anh cho thiết bị chạy Android như “tflat” nhưng chỉ tập trung vào từng khía cạnh riêng lẻ của tiếng Anh Do đó, em mạnh dạn làm đề tài xây dựng phần mềm học tiếng Anh tổng hợp cho thiết bị chạy Android Phần mềm tổng hợp 4 kỹ năng chính trong việc học tiếng Anh cũng giống như các ngôn ngữ khác đó là: nghe, nói, đọc, viết, và một số chức năng khác….Hy vọng phần mềm sẽ giúp ích cho người Việt học tốt tiếng Anh

Mặc dù đã cố gắng hết sức, tập trung tâm huyết làm đồ án này, em nghĩ rằng vẫn không tránh khỏi thiếu sót Em rất mong nhận được phản hồi, đóng góp quý báu từ thầy cô, bạn bè, và người dùng để phần mềm ngày càng hoàn thiện hơn

Em xin chân thành cảm ơn các thầy cô khoa Công nghệ thông tin đã tạo mọi điều kiện để em hoàn thành đề tài này Em xin cảm ơn chân thành giảng viên Th.S Nguyễn Văn Việt trực tiếp nhiệt tình hướng dẫn em làm đề tài này Lời cuối, em xin chúc thầy cô và các bạn sức khỏe, công tác tốt

Thái Nguyên, tháng 5 năm 2016

Sinh viênNguyễn Văn Phú

Trang 11

CHƯƠNG 1: LÝ THUYẾT ANDROID

 GIỚI THIỆU ANDROID

 Khái niệm android

Trước hết Android là nền tảng phần mềm dựa trên mã nguồn mở Linux

OS (Kernel 2.6) cho máy di động và những phần mềm trung gian(middleware) để hổ trợ các ứng dụng mà người sử dụng cần đến Một cáchđịnh nghĩa không quá chuyên môn thì có thể coi Android là tên một nền tảng

mở cho thiết bị di động của Google (gồm hệ điều hành, middleware và một sốứng dụng cơ bản) Android sẽ đương đầu với một số hệ điều hành (viết tắt làHDH) dành cho thiết bị di dộng khác đang hâm nóng thị trường như Windows Mobile, Symbian và dĩ nhiên là cả OS X (iPhone)

Có thể nói một cách nôm na rằng Android là một HDH chạy trên thiết bị di động, cũng giống như Windows, Linux hay Mac chạy trên máy vi tính vậy

 Android khác với các hệ điều hành chạy trên thiết bị di động khác

Android đã thu hút sự chú ý của giới công nghệ toàn cầu khi đứa con của Google sử dụng giấy phép mã nguồn mở Đó là sản phẩm kết tinh từ ý tưởng của khối Liên minh thiết bị cầm tay do Google dẫn đầu, gồm 34 thành viên là các công

ty hàng đầu về công nghệ và di động toàn cầu như Qualcomm, Intel, Motorola, Texas Instrucments, LG Electronics, các nhà mạng như T-Mobile, Sprint Nextel, NTT Comodo, và China Mobile

Các nhà phát triển có thể sử dụng miễn phí bộ Kit Android Software Developement để xây dựng các ứng dụng của mình

 Đặc tính mở của android

Android được xây dựng để cho phép các nhà phát triển tạo ra các ứng dụng

di động hấp dẫn, tận dụng tất cả các tính năng của một chiếc điện thoại cung cấp

Trang 12

Nó được xay dựng để thực sự mở Ví dụ, một ứng dụng có thể gọi bất kỳ chức năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản, hoặc sử dụng bằng máy ảnh, giúp nhà phát triển tạo ra các ứng dụng phong phú cho người dử dụng Android được xây dựng trên mã nguồn mở Linux Kernel Hơn nữa, nó sử dụng máy ảo tùy chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng của thiết bị di động.

Android không phân biệt giữa các ứng dụng lõi và các ứng dụng của bên thứ 3 Tất cả có thể được xây dựng để có thể truy cập bằng khả năng của một thiết

bị di động cung cấp cho người sử dụng với một dải rộng các ứng dụng và dịch vụ Với các thiết bị xây dựng trên android, người dụng hoàn toàn có thể thích ứng với điện thoại đến lợi ích của họ Với android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem vị trí của bạn bè của họ và thông báo khi họ đang có trong vùng phụ cận cho phép kết nối

Android cung cấp truy cấp đến một loạt các thư viện công cụ hữu ích và có thể được sử dụng để xây dựng các ứng dụng phong phú Ví dụ, android cho phép các thiết bị giao tiếp với nhau tạo điều kiện cho đồng đẳng rich-to-peer trong ứng dụng xã hội Ngoài ra, android bao gồm một tập đầy đủ các công cụ đã được xây dựng công phu, với việc cung cấp nền tảng phát triển, với năng suất và cái nhìn sâu vào ứng dụng

 Kiến trúc android.

“Understanding Android” là cách mà ta tiếp cận lập trình Android và thấu hiểu kiến trúc hệ thống của nó Chúng ta có thể không cần hiểu rõ cấu trúc của một

hệ điều hành nhưng chúng ta vẫn có thể lập trình trên hệ điều hành đó, đây là điều

mà nhà sản xuất muốn khi release SDK với một framework có sẵn của họ Như chúng ta đã biết điều này cũng có mặt tốt mặt xấu Framework là một nền tảng cao cấp dành cho lập trình viên, nó đều có giới hạn của nó, chúng ta có thể chỉ lập trình ứng dụng phổ biến, không nên tiến tới những ứng dụng cao cấp đi xâu vào hệ thống của hệ điều hành

Trang 13

 Android Flatform.

Bao gồm hệ điều hành Android với dày đủ tính năng, các ứng dụng và các tầng trung gian để developer có thể mở rộng, tùy chỉnh hoặc thêm vào các component của họ

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

 Tầng Linux Kernel.

Đây là nhân của hệ điều hành Android, mọi xử lý của hệ thống đều phải thông qua tầng này Linux Kernel cung cấp các trình điều khiển thiết bị phần cứng (driver) như: camera, USB, Wifi, Bluetooth, Display Power Management Android dựa trên phiên bản Linux 2.6 lựa chọn các tính năng cốt lõi như bảo mật, quản lý bộ nhớ, quản lý tiến trình, mạng stack, và các trình điều khiển phần cứng Kernel hoạt động như một lớp trừu tượng giữa phần cứng và phần mềm của hệ thống

 Surface Manager: quản lý việc hiển thị và kết hợp đồ họa 2D và 3D

 LibWebCore: Android dùng lại webkit engine cho việc render trình duyệt mặc định của HĐH android browser và cho dạng web nhúng (như HTML nhúng)

 SGL – 2D engine

 3D libraries – thư viện 3D dựa trên OpenGL ES 1.0 API, có nâng cấp tăng tốc

“hardware 3D acceleration”

Trang 14

 FreeType – render bitmap và vector font.

 SQLite – quản lý database và ứng dụng

 Tầng Runtime.

Mỗi ứng dụng Android chạy trên một proccess riêng của Dalvik VM (máy ảo) Dalvik được viết để chạy nhiều máy ảo cùng lúc một cách hiệu quả trên cùng một thiết bị

Máy ảo Dalvik thực thi các file mang định dạng dex (Dalvik Excutable), định dạng này là định dạng đã được tối ưu hóa chỉ để chiếm một vùng nhớ vừa đủ

và nhỏ nhất có thể VM chạy các class (đã được compile trước đó bởi một trình biên dịch ngôn ngữ java), sở dĩ VM chạy được các class nhớ này nhờ chương trình

DX tool đã convert các định dạng dex

 Tầng Application Framework

Đây là tầng mà Google xây dựng cho các developer để phát triển các ứng dụng của họ trên Android, chỉ bằng cách gọi các hàm API có sẵn mà Google đã viết để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc các tầng phía dưới

Bằng cách cung cấp một nền phát triển mở Android cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa chỉ truy cập, các dịch vụ chạy nền, thiết bị hệ thống báo thức, thêm thông báo cho các thanh trạng thái, và nhiều hơn nữa

Tất cả các ứng dụng thường gồm một số các dịch vụ và hệ thống cơ bản sau:

 View UI dùng để xây dựng các layout của ứng dụng bao gồm: list view, text field, button, dialog, form

 Content Providers cho phép các ứng dụng có thể truy cập dữ liệu từ các ứng dụng khác, hoặc để chia sẻ dữ liệu của riêng ứng dụng

Trang 15

 Resources Manager: cung cấp cách thức truy cập đến non-code resource như các asset, graphic, image, music, video,

 Notification Manager: cho phép tất cả các ứng dụng hiển thị thông báo của mình trên hệ điều hành

 Activity Manager: quản lý vòng đời của các ứng dụng

Hình 1.1 Kiến trúc Android

Trang 17

 MÔI TRƯỜNG LẬP TRÌNH.

 Các công cụ cần thiết để lập trình trên android và hướng dẫn cài đặt.

 Các công cụ cần thiết để lập trình.

 Hệ điều hành: window 7, 8, 8.1 và 10, Ubuntu

 Công cụ lập trình: JDK và Android Studio

 Chúng ta có 2 bước chính: Cài đặt JDK và Adroid Studio.

 Bước 1: Vào địa chỉ

http://www.oracle.com/technetwork/java/javase/downloads/index.htmlđể

download JDK Download xong tiến hành cài đặt

 Bước 2: Vào địa chỉ

http://developer.android.com/intl/vi/sdk/index.html#topđể download

Android Studio và tiến hành cài đặt

 Chu kỳ sống của ứng dụng android.

Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng dụng khi codes cần được xây dựng, khởi chạy và sẽ còn chạy cho đến khi:

 Nó không phụ thuộc

 Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác.Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của tiến trình ứng dụng không được điều khiển trực tiếp bởi chính nó Thay vào đó, nó được xác định bởi hệ thống qua một kết hợp của:

 Những phần của ứng dụng mà hệ thống biết đang chạy

 Những phần đó quan trọng như thế nào đối với người dùng

 Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống

 Chu kỳ sống thành phần.

Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt đầu khởi tạo cho đến thời điểm kết thúc, đôi lúc chúng ta có thể actice (visible

Trang 18

hoặc invisible) hoặc inactive.

 Activity Stack.

Bên trong hệ thống các activity được quản lý như một activity stack Khi một activity mới được start, nó được đặt ở đỉnh của stack và trở thành activity đang chạy, activity trước sẽ ở dưới activity mới và sẽ không thấy trong suốt quá trình activity mới tồn tại

Nếu người dùng nhấn nút Back thì activity kế tiếp của stack sẽ di chuyển lên trên và trở thành active

 Các trạng thái của chu kỳ sống.

Trang 19

có thể bị kết thúc bởi hệ thống trong trường hợp thiếu vùng nhớ.

 Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác Nó vẫn còn trạng thái và thông tin thành viên trong nó Người dùng không thấy nó và thường bị loại bỏ trong trường hợp hệ thống cần vùng nhớ cho tác vụ khác

Trang 20

 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 đó

 Chu kỳ sống của ứng dụng.

Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều có một chu kỳ sống riêng Ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần trong ứng dụng kết thúc Activity là một thành phần cho phép người dùng giao tiếp với ứng dụng Tuy nhiên khi tất cả các activity kết thúc và người dùng không còn giao tiếp được với ứng dụng nữa không có nghĩa là ứng dụng đã kết thúc Bởi vì ngoài activity là thành phần có khả năng tương tác với người dùng còn có các thành phần khác có khả năng tương tác với người dùng như Service, Broadcast receier Có nghĩa là những thành phần không tương tác với người dùng có thể chạy background dưới sự giám sát của HDH cho đến khi người dùng tự tắt chúng

 Các sự kiện trong chu kỳ sống của ứng dụng.

Nếu một Activity được tạm dừng hoặc dừng hẳn, hệ thống có thể bỏ qua thông tin của nó từ vùng nhớ bởi việc gọi hàm finish() của nó, hoặc đơn giản là kill tiến trình của nó Khi nó được hiển thị lần nữa với người dùng, nó phải được hoàn toàn restart và phục hồi lại trạng thái trước đó Khi một Activity chuyển qua chuyển lại giữa các trạng thái, nó phải khai báo việc chuyển của nó bằng việc gọi hàm transition

Tất cả các phương thức là những móc nối mà chúng ta có thể override để

Trang 21

làm tương thích công việc trong ứng dụng khi thay đổi trạng thái Tất cả các Activity bắt buộc phải có onCreate() để khởi tạo ứng dụng Nhiều Activity sẽ cũng thực hiện onPause() để xác nhận việc thay đổi dữ liệu và mặt khác chuẩn bị dừng hoạt động với người dùng.

 Thời gian sống của ứng dụng.

Bảy phương thức chuyển tiếp định nghĩa trong chu kỳ sống của một Activity Thời gian sống của một Activity diễn ra giữa lần gọi onCreate() đến trạng thái cuối cùng gọi onDestroy() Một Activity khởi tạo toàn bộ trạng thái toàn cục trong onCreate(), giải phóng các tài nguyên đang tồn tại trong onDestroy()

 Thời gian hiển thị của Activity.

Visible lifetime của một activity diễn ra giữa lần gọi một onStart() cho đến khi gọi onStop() Trong suốt khảng thời gian này người dùng có thể lấy activity hiển thị trên màn hình, có nghĩa là nó không bị foreground hoặc đang tương tác với người dùng Giữa 2 phương thức người dùng có thể duy trì tài nguyên để hiển thị activity đến người dùng

 Các hàm thực thi.

 OnCreate( ): hàm này được gọi khi lớp Activity được khởi tạo, dùng để thiết lập giao diện ứng dụng và thực thi những thao tác cơ bản

 onStart(): hàm này được gọi khi lớp ứng dụng xuất hiện trên màn hình

 onResume(): hàm được gọi ngay sau OnStart hoặc khi người dùng focus ứng dụng, hàm này sẽ đưa ứng dụng lên top màn hình

 onPause(): hàm được gọi khi hệ thống đang focus đến 1 activity trước đó

 onStop(): hàm được gọi khi một activity khác được khởi động và focus

 onRestart(): đưọc gọi khi ứng dụng chuyển sang onStop(), nhưng muốn khởi động lại bằng onStart()

Trang 22



Trang 23

 Thành phần giao diện trong android

 View

Trong android giao diện người dùng thường được xây dựng từ các đối tượng View Trong android flatform, các screen luôn được bố trí theo một kiểu cấu trúc phân cấp như hình trên Một screen là một tập hợp các layout và các widget được

bố trí có thứ tự Để thể hiện một screen thì trong hàm onCreate() của mỗi activity cần phải gọi một hàm là setContentView(R.layout.main), hàm này sẽ load giao diện từ file main.xml để phân tích thành mã bytecode

 ViewGroup

ViewGroup là sự mở rộng của class view hay nói cách khác ViewGroup chính là các WidgetLayout được dùng để bố trí các đối tượng khác trong một screen Có các loại ViewGroup sau:

 Linear layout: dùng để bố trí các thành phần giao diện theo chiều ngang hay chiều dọc nhưng trên một line duy nhất mà không có xuống dòng

 Frame layout: được dùng để bố trí các đối tượng theo kiểu giống như các layout trong Photoshop Những đối tượng nào thuộc layer bên dưới sẽ bị che khuất bởi các đối tượng khác thuộc layer nằm trên Frame layout thường được sử dụng muốn tạo các đối tượng có khung hình bền ngoài chẳng hạn như contact image button

 Table layout: được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần bố trí các widget theo row hoặc column

 Absolute Layout: được sử dụng để bố trí các widget vào vị trí bất kỳ trong layout dựa vào 2 thuộc tính tọa độ x, y Tuy nhiên, kiểu layout này rất ít khi được sử dụng bởi tọa độ của các đối tượng luôn luôn cố định và không

Trang 24

điều chỉnh được khoảng cách giữa các đối tượng Khi chuyển đối tượng sang màn hình khác với màn hình thiết kế ban đầu thig vị trí của các đối tượng sẽ không còn được chính xác như ban đầu.

 Relative layout: cho phép bố trí các widget theo một trục đối xứng ngang hoặc dọc Để đặt được đúng vị trí thì các widget cần được xác định mối quan hệ ràng buộc nào đó với các widget khác Các ràng buộc này là các ràng buộc trái, phải, trên, dưới so với một weidget hoặc so với layout parrent Dựa vào những mối ràng buộc đó mà relative layout cũng không phụ thuộc vào kich thước của screen thiết bị Ngoài ra, nó còn có ưu điểm giúp tiết kiệm các layout sử dụng nhằm mục đích giảm tài nguyên sử dụng khi load đồng thời đẩy nhanh quá trình xử lý

 Các control

 Button

Sở dĩ widget button được giới thiệu đầu tiên trong số các widget khác là

vì đây là đối tượng có thể nói là được dùng nhiều nhất trong hầu hết các ứngdụng Android

Để thiết kế giao diện với một button ta có 2 cách như sau:

<Button Android:layout_width="wrap_content"

 ListView.

Trang 25

Được sử dụng để thể hiện một danh sách các thông tin theo từng cell Mỗi cell thông thường được load lên từ một file XML đã được cố định trên đó số lượng thông tin và loại thông tin cần được thể hiện.

Để thể hiện được một list thông tin lên một screen phải có 3 yếu tố chính:

 Data Source: có thể là một array list, hashmap hoặc bất kỳ một cấu trúc

dữ liệu kiểu danh sách nào đó

 Adapter: là một class trung gian giúp ánh xạ dữ liệu trong Data Source vào đúng vị trí hiển thị trên List View

 List View: là đối tượng để thể hiện các thông tin trong Data Source ra một cách trực quan và người dùng có thể thao tác trực tiếp trên đó

 EditText

Trong android, đối tượng Edit Text được xử dụng như một Text Field hoặc một Text Box Giá trị android:singleLine bằng false, edittext sẽ là một TextBox, ngược lại nó là một TextField

Trang 26

 TextView

TextView có tác dụng là để hiển thị văn bản

<TextView Android:layout_width="fill_parent"

Android:layout_height="wrap_conte nt" Android:text="Hello World!

cở chữ, Android:gravity="" dùng để canh chỉnh cho đoạn text Nếu muốn tìm

hiểu thêm, hãy gõ Android: sau đó nhấn Crtl+ Space để tìm hiểu thêm về các

Trang 28

 ContextMenu

ContextMenu được sử dụng để hiển thị các tuỳ chọn khi người dùng

nhấn dài vào một Button trên màn hình Để tạo một ContextMenu ta cũng có 2

cách giống như tạo MenuOptions ở trên chỉ khác tên phương thức

Phương thức: onCreateContextMenu (ContextMenu menu, View v,

ContextMenuInfo menuInfo) sẽ được gọi và truyền vào 3 tham số là:

 ContextMenu: đối tượng để add các context menu item

 View: Đối tượng nơi mà xảy ra sự kiện

 ContextMenuInfo: Cho biết vị trí xảy ra sự kiện trong ListView

Trang 29

 Tùy biến control (Custom Control)

Chúng ta đã biết andoid đã cung cấp cho chúng ta rất nhiều Control hứu ích Tuy nhiên, ứng dụng của chúng ta đôi khi cũng cần những control do chính chúng

ta tạo ra để đáp ứng các nhu cầu của ứng dụng mà việc sử dụng các control có sẵn rất khó khăn

 LẬP TRÌNH TRÊN ANDROID

 Giới thiệt Intents

Intent là cầu nối giữa các Activity Intent chính là người đưa thư, giúp

Trang 30

chúng ta triệu gọi cũng như truyền các dữ liệu cần thiết để thực hiện một activity

từ activity khác

 Thành phần Intent

Thực ra Intent là một cấu trúc dữ liệu được mô tả trong android.content.Intent

Các action định nghĩa sẵn:

Trang 31

Tự định nghĩa action:

 Về nguyên tắc chúng ta có thể đặt tên action của một intent là bất cứthứ gì theo chuẩn đặt tên thông thường, hay thậm chí dùng luôn hằngaction đã định nghĩa sẵn như ACTION_VIEW (hay

“Android.intent.action.VIEW”) Cái tên VIEW thực chất chỉ là mộttên gợi tả, chúng ta có thể dùng nó với mục đích thực hiện mộtactivity để … gửi mail! Tuy nhiên điều đó rõ ràng là rất “ngớ ngẩn”.Thay vào đó ta hãy dùng ACTION_SEND hay ACTION_SENDTO

 Việc đặt tên action cho intent đúng tên gợi tả còn có một ý nghĩa khác

đó là app của chúng ta có thể được triệu gọi từ một app khác Ví dụchúng ta viết một app có activity đáp ứng intent ACTION_SEND và đểchia sẻ một bức ảnh lên trang web của chúng ta (giống như ta làmvới Facebook, Flickr etc.) Khi đó có thể app của chúng ta sẽ là mộtlựa chọn chia sẻ ảnh của người dùng điện thoại

 Sử dụng Intent khởi động cho Activities

Phổ biến nhất trong Intents là việc liên kết dữ liệu giữa các thành phần ứng dụng, Intents được dùng để bắt đầu, dừng lại và chuyển tiếp giữa các

Trang 32

Activities trong ứng dụng.

Để mở một ứng dụng khác trong một ứng dụng có sẵn thì chúng ta gọi startActivity như sau: startActivity(myIntent);

Để theo dõi thông tin phản hồi từ phương thức mở ta sử dụng phương thức : startActivityForResult(Intent)

 Intent không tường minh thực thi Activity

Trong trường hợp này intent không chỉ định một lớp cụ thể mà thay vào đó dùng các dữ liệu khác (action, data, type, etc ) và để hệ thống tự quyết định xem lớp nào (app nào) sẽ thích hợp để đáp ứng các Intent đó

Thông tin của action với category của activity trong một app đáp ứng intent

đó phải được khai báo trong AndroidManifast của app (AndroidManifast.xml) dưới dạng Intent – filter (tất nhiên nếu chúng ta muốn gọi một built-in action thì ta không cần quan tâm đến vấn đề này)

 Intent tường minh thực thi Activity

Như đã trình bày ở trên, Intent có thể dùng thuộc tính phụ component để chỉ đích danh tên lớp sẽ được thực thi Activity Để thực hiện điều này, lớp Intent cung cấp các hàm đó là setComponent(Component Name) và setClass(Context,class) và setClassName(Context,String)

Trang 33

Chỉ được dùng để gọi các Activities trong cùng một app.

 Sử dụng Intent để truyền thông tin ra ngoài Activity

Là một cơ chế truyền tin cấp hệ thống, có khả năng gửi tin đến một tiến trình Chúng ta có thể sử dụng Broadcast Receivers để nhận, để trả lời hoặc phát đi các dữ liệu mà chúng ta muốn

Broadcast Intent dùng để thông báo cho các ứng dụng khác các sự kiện của

hệ thống hay ứng dụng, mở ra các mô hình lập trình hướng sự kiện giữa các ứng dụng Broadcast Intent giúp cho ứng dụng của chúng ta cởi mở hơn bởi vì nó phát

đi một sự kiện băng cách sử dụng Intent

 Cách thực hiện gửi dữ liệu dung Intent trong Activity

Broadcast Intent thực tế khá đơn giản, trong các thành phần ứng dụng của chúng ta, chúng ta xây dựng một Intent mà chúng ta muốn quảng bá bằng cách sử dụng sentBroadcast để gửi đi

 Nhận dữ liệu với BroadcastReceiver

BroadcastReceivers được dùng để nhận dữ liệu từ Broadcast Intents, để kích hoạt BroadcastReceivers thì nó cần phải được đăng ký hoăc khai trong code hoặc trong Mainifest và chúng ta cần phải sử dụng Intents Filter để xác định Intent được phép gửi dữ liệu đến

 Giới thiệu Adapter

Adapter là cầu nối để liên kết dữ liệu với giao diện người dùng

Trang 34

 Một số Adapter

Để sử dụng được adapter ta phải kế thừa lớp trừu tượng AdapterView, và chúng ta cũng có thể tạo ra adapter tùy ý băng cách này

ArrayAdapter: Là một lớp chung để gắn các Adapter Views vào một

mảng đối tượng, theo mặc định thì ArrayAdapter liên kết cá giá trị toString củatừng đối tượng ra TextView trong layout, chúng ta có thể thay thế TextViewbằng các điều khiển khác phức tạp hơn bằng cách sử dụng kỹ thuật Overridingphương thức getView()

SimpleCursorAdapter: Dùng để liên kết các View với con trỏ để trả về

câu truy vấn cho Content Provider, nó được định nghĩa trong file XML layout

và liên kết các giá trị ràng buộc bên trong mỗi cột kết quả với View tronglayout

 Sử dụng Adapter hiển thị dữ liệu

Để áp dụng một adapter đến một class adapterView ta chỉ cần gọi phương thức setAdapter của View đưa vào trong tập tin adapter được minh họa trong đoạn code:

ArrayList<String> myStringArray = new ArrayList<String>(); ArrayAdapter<String> myAdapterInstance;

 Kỹ thuật lưu trữ dư liệu trong android

Trang 35

Các kỹ thuật lưu trữ dữ liệu trong Android nhanh chóng, gọn nhẹ và hiệu quả

và mạnh mẽ:

 Shared Preferences: Khi muốn lưu trữ UI state ,user preferences hay application setting, chúng ta muốn có một cơ chế gọn nhẹ để lưu trữ một tập hợp các giá trị được biết đến, Shared Preferences cho phép chúng ta lưu trữ nhóm của key/value của dữ liệu gốc

 Files: Android cho phép tạo và tải các tập tin trên thiết bị di động

 SQLite Databases: quản lý cấu trúc dữ liệu là cách tốt nhất Android cung cấp thư viện quan hệ cơ sở dữ liệu SQLite, mỗi ứng dụng có thể tạo ra một cơ sở dữ liệu của mình để nó kiểm soát hoàn toàn trên đó

 Content Providers: Thay vì theo cơ chế lưu trữ riêng ,Content Providers cung cấp nội dung cho phép đưa ra một giao diện để sử dụng và chia sẻ

dữ liệu các nhân Chúng ta có thể truy cập ContentProvider để sử dụng

hệ thống được phép

 Lưu trữ dữ liệu ứng dụng một cách đơn giản

Có 2 cơ chế lưu dữ liệu trong android là kiểu lưu dữ liệu name/value hoặc key/value

 Tạo và lưu dữ liệu với Shared Preferences

Để tạo hoặc sửa đổi dữ liệu dùng shared preferences chúng ta gọi hàm getSharedPreferences trong ứng dụng Context, đưa vào tên Shared Preferences muốn thay đổi, Shared Preferences sẽ chia sẻ giữa các thành phần dữ liệu trong ứng dụng hiện sử dụng nó nhưng không có sẵn trong ứng dụng khác

Để sửa đổi Shared Preferences Chúng ta gọi lớp Shared Preferences.Editor, nhận đối tượng Editor bằng cách gọi edit trong đối tượng ShardePreferences muốn thay đổi Để sửa, lưu gọi commit trên Editor,như doạn code sau:

public static final String MYPREFS =

“mySharedPreferences”; protected void

Trang 36

// tạo đối tượng lưu trữ và truy xuất dữ liệu shared preference int mode = Activity.MODE_PRIVATE;

SharedPreferences mySharedPreferences = getSharedPreferences(MYPREFS, mode);

// nhận về một editor để sửa đổi shared preferences.

SharedPreferences.Editor editor = mySharedPreferences.edit(); // lưu trữ vào shared preference

 Truy xuất Shared Preferences

Để lưu truy cập Shared Preferences thì cũng dùng phương thức getSharedPreferences, đưa vào tên của Shared Preferences mà chúng ta muốn truy cập, dùng phương thức type-safe get<type> để trích xuất các giá trị lưu

 Cơ sở dữ liệu trong android

Android cung cấp đầy đủ các quan hệ cơ sở dữ liệu thông qua thư viên SQLite mà không áp đặt bất kỳ hạn chế nào Sử dụng SQLite có thể tạo cơ sở dữ liệu quan hệ độc lập cho mỗi ứng dụng

Tất cả các co sở dữ liệu trong android được lưu trữ trong thư mục /data/data/<package name>/database để chia sẻ cơ sở dữ liệu qua các ứng dụng ta dùng Content Provider

Những phần sau đây sẽ tập trung vào tính thiết thực của việc tạo và quản lý

cơ sở dư liệu SQLite trong Android

 Giới thiệu SQLite

SQLite là hệ thống quản lý các cơ sở dữ liệu (RDBMS), nó cũng được coi là:

Trang 37

Content Values là một đối tượng sử dụng để chèn các dòng mới vào bảng

cơ sở dữ liệu, mỗi đối tượng Content Values đại diện giá trị cho một dòng

Truy vấn trong Android được trả về là đối tượng Cursor Thay vì giải nén và trả lại một bản sao của các giá trị kết quả, Cursors hành động như con trỏ đến một tập hợp các dữ liệu nằm bên dưới Cursor quản lý việc kiểm soát vị trí (row) trong tập kết quả truy vấn cơ sở dữ liệu

Các lớp con trỏ bao gồm một số chức năng để điều hướng kết quả truy vấn bao gồm, nhưng không giới hạn, những điều sau đây:

 moveToFirst :chuyển con trỏ tới dòng đầu tiên

 moveToNext : chuyển con trỏ tới dòng tiếp theo

 moveToPrevious: chuyển con trỏ tới dòng duyệt trước đó

 getCount :trả về số dòng của kết quả truy vấn

Trang 38

startManagingCursor vào kết thúc vòng đời con trỏ thì gọi: stopManagingCursor.

 Sử dụng SQLiteOpenHelper

SQLiteOpenHelper là một lớp trừu tượng và là môi trường tốt để tạo lập, truy xuất và cập nhật cơ sử dữ liệu Gọi getReadableDataBases hoặc getWriteableDataBases để mở hoặc trả về dữ liệu trong trường hợp đọc ghi trong

cơ sở dữ liệu như sau:

dbHelper = new myDbHelper(context, DATABASE_NAME, null,

db = dbHelper.getReadableDatabase();

}

 Truy xuất và tạo cơ sở dữ liệu không dung SQLiteHelper

Chúng ta có thể truy xuất đến cơ sở dữ liệu mà không cần sử dụng lớp SQLiteHelper với phương thức openorCreateDataBases trong ứng dụng Context như sau:

private static final String DATABASE_NAME =

“myDatabase.db”; private static final String DATABASE_TABLE = “mainTable”; private static final String DATABASE_CREATE =

“create table “ + DATABASE_TABLE +

“ ( _id integer primary key autoincrement,”

+ “column_one text not null);”;

SQLiteDatabase myDatabase; private void createDatabase() {

(DATABASE_NAME, Context.MODE_PRIVATE, null); myDatabase.execSQL(DATABASE_CREATE);

}

Trang 39

 Truy vấn cơ sở dữ liệu

Ví dụ:

// trả về tất cả các cột 1,3 và ID String[] result_columns = new String[] {KEY_ID, KEY_COL1, KEY_COL3}; Cursor allRows = myDatabase.query(true, DATABASE_TABLE, result_columns,

null, null, null, null, null, null);

//trả về tất các cột với cột 3 có giá trị định sẵn // sắp xếp theo cột 5

String where = KEY_COL3 + “=” + requiredValue; String order = KEY_COL5;

Cursor myResult = myDatabase.query(DATABASE_TABLE, null, where, null, null, null, order);

 Lấy kết quả từ Cursors

 Thêm, cập nhật và xóa dòng

Thêm:

ContentValues newValues = new ContentValues();

//đưa giữ liệu vào content newValues.put (COLUMN_NAME, newValue); [ các cột khác tương tự ]

// thêm vào CSDL myDatabase.insert(DATABASE_TABLE, null, newValues);

Trang 40

Cập nhật:

ContentValues updatedValues = new ContentValues();

// đưa giữ liệu vào content updatedValues.put (COLUMN_NAME, newValue);

[ các cột khác tương tự ]

String where = KEY_ID + “=” + rowId;

// cập nhật.

myDatabase.update(DATABASE_TABLE, updatedValues, where, null);

Xóa dòng:

myDatabase.delete(DATABASE_TABLE, KEY_ID + “=” + rowId, null);

Ngày đăng: 23/04/2017, 10:24

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Kiến trúc Android - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 1.1. Kiến trúc Android (Trang 15)
Bảng 1: Tác nhân và Usecase của hệ thống - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Bảng 1 Tác nhân và Usecase của hệ thống (Trang 44)
Hình 2.1. UseCase tổng quan - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.1. UseCase tổng quan (Trang 45)
Hình 2.10. Biểu đồ trình tự chức năng luyện nghe - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.10. Biểu đồ trình tự chức năng luyện nghe (Trang 62)
Hình 2.11. Biểu đồ trình tự chức năng luyện nói - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.11. Biểu đồ trình tự chức năng luyện nói (Trang 64)
Hình 2.12. Biểu đồ trình tự chức năng luyện đọc - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.12. Biểu đồ trình tự chức năng luyện đọc (Trang 66)
Hình 2.13. Biểu đồ trình tự chức năng luyện viết - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.13. Biểu đồ trình tự chức năng luyện viết (Trang 68)
Hình 2.14. Biểu đồ trình tự học ngữ pháp - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.14. Biểu đồ trình tự học ngữ pháp (Trang 70)
Hình 2.15. Biểu đồ tuần tự kiểm tra - test - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.15. Biểu đồ tuần tự kiểm tra - test (Trang 72)
Hình 2.16. Biểu đồ trình tự tra cứu từ vựng - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.16. Biểu đồ trình tự tra cứu từ vựng (Trang 74)
Hình 2.17. Biểu đồ trình tự phương pháp học - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.17. Biểu đồ trình tự phương pháp học (Trang 76)
Hình 2.18. Giao diện mở đầu của phần mềm. - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.18. Giao diện mở đầu của phần mềm (Trang 79)
Hình 2.19. Giao diện tùy chọn chính. - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.19. Giao diện tùy chọn chính (Trang 80)
Hình 2.23. Chức năng đọc sách - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.23. Chức năng đọc sách (Trang 92)
Hình 2.25. Chức năng viết - Xây dựng phần mềm học tiếng anh tổng hợp trên hệ điều hành android
Hình 2.25. Chức năng viết (Trang 93)

TỪ KHÓA LIÊN QUAN

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