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

XÂY DỰNG WEBSITE CHO LIÊN CHI ĐOÀN - HỘI SINH VIÊN KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐHHH VIỆT NAM

60 1,1K 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,51 MB

Nội dung

Với nền tảng mới là hệ điều hành Android của hãng Google, việc sửdụng và cài đặt các ứng dụng đối với người dùng trở nên vô cùng dễ dàng vàhoàn toàn miễn phí.. 33% số người dùng điện tho

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

MỤC LỤC

LỜI MỞ ĐẨU 5

CHƯƠNG I: KHẢO SÁT BÀI TOÁN 1

1.1 Giới thiệu định dạng từ điển Stardict: 1

1.2 Hiện trạng sử dụng từ điển: 2

1.3 Nhu cầu sử dụng từ điển trên điện thoại di động: 2

1.4 Sự phát triển nhanh chóng của Hệ điều hành Android: 3

1.5 Hướng giải quyết bài toán: 4

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 5

2.1 Cấu trúc định dạng StarDict: 5

2.1.1 Cấu trúc chung: 5

2.1.2 Cấu trúc file ifo: 5

2.1.3 Cấu trúc file idx: 6

2.1.4 Cấu trúc file dict: 6

2.1.5 Cấu trúc file syn: 7

2.2 Lập trình trên Hệ điều hành Android: 8

2.2.1 Lịch sử Android: 8

2.2.2 Kiến trúc của android 11

2.2.3 Android Emulator 14

2.2.4 Các thành phần trong một android project 15

2.2.5 Chu kỳ ứng dụng android 18

2.2.6 Các thành phần giao diện cơ bản trong android 22

2.2.7 Content provider và Uri 33

2.2.8 SQLITE 34

2.2.9 Android & Webservice 34

2.3 Giới thiệu ngôn ngữ lập trình Java: 35

2.3.1.Lịch sử phát triển của ngôn ngữ lập trình Java 35

2.3.2.Một số đặc điểm nổi bật của ngôn ngữ lập trình Java 36

CHƯƠNG III: PHÂN TÍCH HỆ THỐNG 38

Trang 3

3.1 Phân tích hệ thống về chức năng 38

3.1.1 Sơ đồ phân cấp chức năng: 38

3.1.2 Mô tả chi tiết các chức năng: 38

3.2 Phân tích hệ thống về dữ liệu: 40

3.2.1 Sơ đồ luồng dữ liệu mức ngữ cảnh: 40

3.2.2 Sơ đồ luồng dữ liệu mức đỉnh: 40

3.2.3 Sơ đồ luồng dữ liệu mức dưới đỉnh: 41

3.2.4 Sơ đồ luồng dữ liệu mức dưới dưới đỉnh: 42

3.3 Thiết kế cơ sở dữ liệu: 44

3.4 Chi tiết các bảng dữ liệu: 45

3.4.1 Dữ liệu về bài học từ vựng: 45

3.4.2 Dữ liệu về bài Test: 45

3.4.3 Dữ liệu về bài học ngữ pháp: 46

CHƯƠNG IV: CÀI ĐẶT CHƯƠNG TRÌNH 47

4.1- Giao diện chính của chương trình: 47

4.2 – Giao diện tra cứu từ điển offline: 48

4.3 – Chức năng Google Translate: 49

4.4 – Giao diện Bài học theo chủ đề: 50

4.5 – Giao diện Bài Test: 51

4.6 – Game HangMan: 53

KẾT LUẬN 55

TÀI LIỆU THAM KHẢO 56

Trang 4

LỜI MỞ ĐẨU

Ngày nay với sự phát triển mạnh mẽ của khoa học công nghệ, đời sốngđược nâng cao, thiết bị di động đã trở thành vật bất ly thân của đa số mọingười Đi kèm với nó là rất nhiều dịch vụ trên di động nhằm đem lại sự tiệních cho người sử dụng, trong đó ứng dụng về từ điển đang có nhu cầu cao khi

mà nền kinh tế phát triển, đòi hỏi khả năng ngoại ngữ trong hầu hết mọingành nghề

Với nền tảng mới là hệ điều hành Android của hãng Google, việc sửdụng và cài đặt các ứng dụng đối với người dùng trở nên vô cùng dễ dàng vàhoàn toàn miễn phí Kết hợp sự tiện lợi của thiết bị di động và những tínhnăng ưu việt của hệ điều hành Android, việc xây dựng một ứng dụng từ điểnphục vụ cho việc học ngoại ngữ là hết sức đơn giản và cần thiết Không nhưmột số phần mềm từ điển khác, nhằm đem lại sự hiệu quả, thoải mái trongquá trình học ngoại ngữ, từ điển cần có khả năng tuỳ chỉnh, cập nhật nội dungtức thì khi người dùng gặp bất cứ tình huống phát sinh nào trong giao tiếp,giúp người dùng quản lý được nội dung học

Đề tài “Xây dựng bộ công cụ hỗ trợ luyện và học từ mới trên mobile sửdụng Android” nhằm mục đích xây dựng một chương trình hỗ trợ người dùngtra cứu từ mới; cho phép soạn, chỉnh sửa và bổ sung nội dung từ điển; nạp từđiển dựa trên định dạng stardict; tổ chức và quản lý học từ mới theo phươngpháp ghi nhớ và phát lại theo chủ đề người học quan tâm

Trang 5

CHƯƠNG I: KHẢO SÁT BÀI TOÁN 1.1 Giới thiệu định dạng từ điển Stardict:

StarDict, phát triển bởi Hồ Chánh, là một phần mềm miễn phí giao diện

đồ họa người dùng phát hành dưới giấy phép GPL để truy cập dữ liệu từ điểnStarDict (một hệ vỏ từ điển) Nó là chương trình kế nhiệm StarDic, phát triểnbởi Mã Tô An

* Các nền tảng được hỗ trợ:

StarDict chạy dưới Linux, Microsoft Windows, FreeBSD, Maemo vàSolaris Từ điển cho người dùng được cài đặt riêng lẻ Từ điển có thể tạo bằngcách chuyển đổi các file DICT

Nhiều chương trình tương thích StarDict, được biết đến như GuruDic,weDict, Dictionary Universal có mặt trên AppStore dành cho iPhone/iPodTouch/iPad Ngoài ra còn có phiên bản iStardict miễn phí trên Cydia Store.Trên Android, người dùng có thể sử dụng ColorDict, WordMate Cũng liênquan đến thiết bị di động, có một từ điển WhiteStork, một ứng dụng cho nềntảng Maemo, hỗ trợ giữa các dữ liệu từ điển khác, hỗ trợ StarDict

StarDict chỉ là cái vỏ của từ điển, nên khi tải về không có dữ liệu từđiển nào kèm theo Bạn cần tự cài đặt các dữ liệu từ điển

Từ điển tiếng Việt định dạng stardict được nhóm CCTV thực hiện vàđưa lên mạng vào ngày 2004-08-03 Từ điển này chưa cập nhật, phần từ điểnAnh Việt chỉ có 68 nghìn từ

Ngày 2005-09-16 nhóm NetFOSS tiếp tục cập nhật và chuyển đổi từ dữliệu DICT, đưa lên mạng bộ từ điển tiếng Việt cho StarDict đầy đủ hơn, trong

đó từ điển Anh Việt có hơn 100 nghìn từ Các file này đang đặt ở dự ánNetFOSS

Bên cạnh rất nhiều từ điển đa ngôn ngữ, mà không phải đầy đủ nhưnhững công ty xuất bản chính, StarDict có thể chạy các từ điển mở hoặc các

Trang 6

tên miền công cộng Ví dụ: Wikimedia's Wikis, từ điển Littré's, Webster'sDictionary (1913), WordNet.

* Các hệ vỏ từ điển tương tự (GUI):

StarDict cạnh tranh với rất nhiều hệ vỏ từ điển khác, baogồm Babiloo, AntTek Dict for Android (miễn phí), Babylon (phần mềm chia

sẻ với giới hạn 30 ngày dùng thử) và Everest, một phần mềm miễn phí

Vào ngày 25 tháng 8 năm 2006, một phiên bản trực tuyến của StarDictbắt đầu hoạt động Phiên bản này truy cập tất cả dữ liệu của StarDict, cũngnhư Wikipedia tiếng Trung

1.2 Hiện trạng sử dụng từ điển:

Ứng dụng từ điển hiện nay có thể nói là một ứng dụng tối thiểu, quantrọng như bộ office trong bất kỳ một máy tính cá nhân nào Nhu cầu họcngoại ngữ ngày càng cao khiến cho ứng dụng từ điển ngày càng trở nên quantrọng, và ngay cả với những người dùng mà công việc không dùng đến ngoạingữ thì việc tra từ bất cứ lúc nào cũng rất cần thiết

Bên cạnh những ứng dụng được cài đặt sẵn, thì hiện tại việc tra từ trêncác website cũng trở nên rất phổ biến Phương án này mạng lại sự tiện lợi rấtnhiều cho người dùng do không phải cài đặt ứng dụng (điểm yếu duy nhất làphải có kết nối mạng để có thể sử dụng dịch vụ) Bên cạnh bộ máy dịch thuậtnổi tiếng Google Translate thì các website Việt Nam có hỗ trợ dịch vụ từ điểncũng phát triển không kém như: tratu.vn, vdict.com, tratu.soha.vn,

Tuy nhiên, các phương án trên vẫn không thực sự đem lại sự tiện lợicho người dùng bằng các ứng dụng từ điển trên thiết bị di động

1.3 Nhu cầu sử dụng từ điển trên điện thoại di động:

Phần trên cho thấy rõ được sự quan trọng, cần thiết của ứng dụng từđiển Nhưng không phải lúc nào người dùng cũng ngồi bên chiếc máy tính đểtra từ mới, học ngữ pháp

Trang 7

Hầu hết mọi người đều sở hữu một chiếc điện thoại di động và sử dụng

nó để liên lạc, giải trí, đọc báo, trò chuyện và rất nhiều các dịch vụ khác

Giờ đây để có thể tra từ mới, học cách phát âm, người dùng không cầndùng đến một chiếc máy tính cồng kềnh hay cần phải có kết nối mạng mà chỉcần trong tay chiếc điện thoại di động và một ứng dụng từ điển nhỏ gọn

1.4 Sự phát triển nhanh chóng của Hệ điều hành Android:

Các con số thống kê mới nhất cho thấy hệ điều hành Android đang từngbước vượt mặt và nới rộng khoảng cách so với các đối thủ trên thị trường điệnthoại thông minh, kể cả so với iPhone của Apple

Theo comScore, thị trường điện thoại thông minh Mỹ thời gian gần đây

có nhiều dấu hiệu cho thấy hệ điều hành Android của Google đã chế ngự hoàntoàn hệ điều hành iOS của Apple và BlackBerry của RIM Chỉ trong quý đầutiên của năm 2011, đã có đến 69,5 triệu người Mỹ sử dụng loại điện thoại này,tăng 13% so với cuộc khảo sát tương tự kết thúc vào tháng 11/2010

33% số người dùng điện thoại tuổi từ 13 trở lên tham gia cuộc khảo sátcho biết họ thích hệ điều hành Android, 28,9% thích các dòng điện thoạiBlackBerry của RIM, trong khi chỉ có 25,2% người sử dụng chọn các sảnphẩm của Apple Nhưng thê thảm hơn cả vẫn là Microsoft và Palm với tỷ lệthị phần tương ứng là 7,7% và 2,8%

Theo các số liệu so sánh của comScore từ tháng 11/2010 đến nay, hệđiều hành Android đang thực sự trở thành một “hiện tượng” Thị phần củaGoogle tăng 7% tính từ thời điểm nói trên, trong khi Apple vẫn “dậm chân tạichỗ” RIM, Microsoft và Palm đã đánh mất thị phần, trong đó RIM là thêthảm nhất, khi thị phần của hãng này giảm 4,6%

Khi làm một phép so sánh về tương lai của hệ điều hành cho iPhone vàAndroid, khá dễ dàng để nhận thấy rằng hệ điều hành iOS của Apple là độcquyền chỉ riêng cho iPhone, trong khi Android của Google lại có thể cài đặt

Trang 8

cho nhiều loại điện thoại thông minh và hệ quả tất yếu là bội số tăng caonhiều lần so với iOS.

Bình luận về “hiện tượng Android”, trang Business Insider cho biết lý

do giúp hệ điều hành của Google đang từng bước chiếm lĩnh thị trường là bởi

xu hướng phát triển trong tương lai sẽ là các thiết bị di động sử dụng chungmột hệ điều hành được chuẩn hóa Vì thế, một hệ điều hành càng được ứngdụng rộng rãi thì giá trị của nó càng được nâng tầm và sẽ rất khó để “hạ bệ”được nó

1.5 Hướng giải quyết bài toán:

Đề tài được xây dựng trên hệ điều hành Android Với nền tảng là ngônngữ lập trình Java Đây là một ngôn ngữ để phát triển các ứng dụng trên điệnthoại di động và các thiết bị cầm tay nhỏ gọn Bằng cách sử dụng môi trường

ảo (Java Runtime Environment), ứng dụng viết bằng Java có kích thước nhỏgọn không gặp giới hạn về phần cứng và có thể chạy trên nhiều môi trườngvới khả năng tương tác cao

Nền móng của từ điển là định dạng từ điển Stardict đã được xây dựngsẵn, dễ dàng nhúng trên các ứng dụng cà có thể nạp bất cứ gói từ điển nào sẵn

có để sử dụng

Ngoài các chức năng cơ bản của một từ điển thông thường, ứng dụng từđiển được xây dựng trong đề tài có khả năng:

 Nạp từ điển dựa trên định dạng Stardict

 Chỉnh sửa, bổ sung nội dung từ điển

 Tổ chức và quản lý học từ mới theo phương pháp ghi nhớ

 Phát lại theo chủ đề người học quan tâm

Đề tài lựa chọn bộ công cụ IDE ECLIPSE và ANDROID SDK để

phát triển ứng dụng

Trang 9

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2.1 Cấu trúc định dạng StarDict:

và dictname.syn (không bắt buộc)

3 file chính cần được đặt trong cùng thư mục và có cùng tên file (chỉkhác phần mở rộng) Các thông tin chính được đọc trong file ifo và từ đóphân tích dữ liệu về từ trong file idx rồi lấy chỉ mục trong đó ánh xạ sang file.dict để lấy thông tin của từ đó

2.1.2 Cấu trúc file ifo:

File ifo chứa các thông tin cơ bản về bộ từ điển, nội dung file gồm cáctrường chính sau:

version=2.4.2

idxfilesize=1976095

website=http://www.ifis.uni-luebeck.de/~duc/Dict/install.html

description=convert to StarDict by Larry Nguyen larry@vnlinux.org date=2005.10.09

sametypesequence=m

- Trường “idxfilesize”: là dung lượng tính theo byte của file idx Cho

dù khi được nén thành định dạng gz thì nó vẫn lưu thông tin về dung lượng

Trang 10

của file idx gốc.

- Trường “idxoffsetbits”: chỉ có trong phiên bản StarDict 3.0.0 trở lên,còn ở phiên bản 2.4.2 thì không có (mặc định của phiên bản 2.4.2 giá trịidxoffsetbits là 32bit) Idxoffsetbits: có giá trị là 32 hoặc 64 (chính là sốlượng bit của trường data_offset trong file idx)

- Trường “synwordcount”: chỉ có nếu file syn tồn tại

- Trường “sametypesequence”: quy định cấu trúc dữ liệu được lưutrong file dict (với nhiều cấu trúc khác nhau tương ứng với các giá trị như: m,

l, g, t, x, y, k, w, h, r…)

2.1.3 Cấu trúc file idx:

File idx chứa danh sách cách từ có trong từ điển Các từ này là mộtdanh sách được sắp xếp bởi các mục từ

Cấu trúc một mục từ gồm 3 trường: word_str, word_data_offset,word_data_size

- word_str: là một chuỗi chứa một từ trong từ điển và kết thúc bởi ký tự

‘\0’ Có thể có hai hay nhiều mục từ có cùng “word_str” với word_data_offset

và word_data_size khác nhau (tính năng này chỉ hỗ trợ từ phiên bản 2.4.8 trởlên) Độ dài của “word_str” nhỏ hơn 256

- word_data_offset: Nếu phiên bản là 3.0.0 và “idxoffsetbits”=64 thìword_data_offset sẽ là số 64bit không dấu, còn các trường hợp khác là 32bits

- word_data_size: là số 32bits không dấu

2.1.4 Cấu trúc file dict:

File dict chứa tất cả dữ liệu về từ, bằng cách dựa vào offset và sizeđược ghi trong file idx tương ứng

- Nếu trường “sametypesequence” không được thiết lập trong file ifothì data trong file dict được cấu trúc như sau:

word_1_data_1_type;

word_1_data_1_data;

Trang 11

- Nếu trường “sametypesequence” được thiết lập trong file ifo là “tm”thì data trong file dict được cấu trúc như sau:

Một vài cấu trúc data được sử dụng như:

- “sametypesequence=m”: dữ liệu ở dạng nghĩa nguyên thủy và là cácchuỗi utf-8, kết thúc bằng “\0”

2.1.5 Cấu trúc file syn:

File syn được hỗ trợ trong từ điển StarDict 2.4.8 trở lên

File syn chứa thông tin về các từ đồng nghĩa Khi tra cứu một từ đồngnghĩa, Startdict sẽ tìm kiếm một từ khác có liên quan đến nó

Trang 12

Mỗi mục trong file syn chứa một chuỗi synonym_word (chuỗi utf-8kết thúc bởi ký tự “\0”) và một số original_word_index (chứa chỉ mục của từgốc trong file idx).

Khi đầu vào là synonym_word, StarDict sẽ tìm kiếm các từoriginall_word có nghĩa tương tự

synonym_word: có độ dài không quá 256

original_word_index: là một số 32bits không dấu

Hai hay nhiều mục có thể có cùng synonym_word với nhữngoriginal_word_index khác nhau

2.2 Lập trình trên Hệ điều hành Android:

2.2.1 Lịch sử Android:

Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõiLinux do công ty Android Inc (California, Mỹ) thiết kế Công ty này sau đóđược Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform.Các thành viên chủ chốt tại ở Android Inc gồm có: Andy Rubin, Rich Miner,Nick Sears, and Chris White

Android timeline

Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay

Mã Nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trongngành viễn thông và thiết bị cầm tay như:

Trang 13

Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG,Marvell Technology Group, Motorola, Nvidia, Qualcomm, SamsungElectronics, Sprint Nextel, T-Mobile, ARM Holdings, AtherosCommunications, Asustek Computer Inc, Garmin Ltd, Softbank, SonyEricsson, Toshiba Corp, and Vodafone Group,…

Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơncho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảngAndroid Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết,các nhà khai thác và các lập trình viên thiết bị cầm tay

Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãngT-Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android Một vàingày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDKrelease Candidate 1.0 rong tháng 10 năm 2008, Google được cấp giấy phép mãnguồn mở cho Android Platform

Khi Android được phát hành thì một trong số các mục tiêu trong kiếntrúc của nó là cho phép các ứng dụng có thể tương tác được với nhau và cóthể sử dụng lại các thành phần từ những ứng dụng khác Việc tái sử dụngkhông chỉ được áp dụng cho các dịch vụ mà nó còn được áp dụng cho cả cácthành phần dữ liệu và giao diện người dùng

Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tayđược gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android màkhông bị ràng buộc vào các nhà cung cấp mạng điện thoại di động Mục tiêucủa thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệmtrên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký mộtbản hợp đồng nào Vào khoảng cùng thời gian đó thì Google cũng cho pháthành một phiên vản vá lỗi 1.1 của hệ điều hành này

Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft-keyboard mà đòihỏi các thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề này

Trang 14

bằng cách phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một số tínhnăng khác Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng,

và các live folder

Từ những ngày đầu xuất hiện trên thị trường di động thế giới đến nay,

hệ điều hành Android của Google đã có những bước tiến nhanh vượt bậc.Hiện có rất nhiều nhà sản xuất và nhà mạng quan tâm đến nó, dẫn đến sự ramắt đồng thời và liên tục của hàng loạt thiết bị nên trền tảng này Tầm ảnhhưởng của Android không chỉ gói gọn trên smartphone, mà còn lan rộngsang cả tablet (máy tính bảng), trên thiết bị phát HD và có mặt trên ôtô, điểnhình là hệ thống IQon trên chiếc Saab Phoenix Concept ở Triển lãm ôtôGeneva, cho phép ghi tình trạng sức khỏe người lái và chế độ vận hành củachiếc xe thông qua hơn 500 cảm biến

Những chiếc smartphone LG Optimus 2x, HTC Sensation vàSamsung Galaxy S2 chạy trên nền Android 2.3 đang gây được sự chú ý chongười tiêu dùng hiện nay nhờ ở cấu hình mạnh mẽ với bộ vi xử lý hai nhân,cho phép xử lý đồng thời nhiều tác vụ Trong khi đó, thị trường tablet cũngnhộn nhịp không kém khi các hãng sản xuất thiết bị điện tử tung ra hàng loạtcác dòng sản phẩm chạy trên nền Android 3.1 Honeycomb như AsusTransformer, Acer Iconia Tab hay chiếc máy tính bảng siêu mỏng 10,1 inchGalaxy Tab của Samsung được nhiều người quan tâm

Trong khi các hệ điều hành khác như Windows phone, Symbian, Megođang chật vật để tìm kiếm thị phần thì Google sắp cho ra mắt các phiên bản hệđiều hành Android 4.0 với tên gọi Ice-cream Sandwich nhằm phục vụ ngườidùng tốt hơn trên cả điện thoại và máy tính bảng Phiên bản mới sẽ có giaodiện được cải tiến đáng kể cùng với những tính năng nổi bật như 3DHeadtracking (theo dõi các chuyển động của người dùng dựa vào camera phíatrước của thiết bị, tương tự như hệ thống Kinect của Microsoft), nhận diệnkhuôn mặt… Ngoài ra, Google cũng đang từng bước hoàn chỉnh mạng xã hộiGoogle+ cùng với ứng dụng tích hợp trên nền tảng Android, hứa hẹn sẽ mang

Trang 15

đến cho người sử dụng nhiều trải nghiệm mới đầy thú vị.

Những mã tên hệ điều hành Android chính là được đặt theo các món ăntráng miệng ngọt và các phiên bản chính của Android đã có là:

• Phiên bản 1.5, ra đời tháng 4-2009 có tên Bánh bông lan (Cupcake)

• Phiên bản 1.6, ra đời tháng 9-2009 có tên Bánh rán vòng (Donut)

• Phiên bản 2.0/2.1, ra đời tháng 10-2009 có tên Bánh kẹp kem (Éclair)

• Phiên bản 2.2, ra đời tháng 5-2010 có tên Sữa chua đá (Froyo)

• Phiên bản 2.3, ra đời ngày 6-12-2010 có tên Bánh gừng (Gingerbread)

• Phiên bản 3.0, ra đời ngày 22-2-2010 có tên Tổ ong (Honeycomb)

• Phiên bản sắp tới có tên Ice-cream Sandwich là sự kết hợp giữaGingerbread và Honeycomb - một sân chơi mới cho cả smartphone và tablet

2.2.2 Kiến trúc của android

Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hànhAndroid Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây

Cấu trúc stack hệ thống Android

Trang 16

2.2.2.1 Tầng ứng dụng

Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như:contacts, browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hànhAndroid đều được viết bằng Java

2.2.2.2 Application framework

Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp chocá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ángtạ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điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm cácthông báo để các thanh trạng thái, và nhiều, nhiều hơn nữa

Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sửdụng bởi các ứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơn giảnhóa việc sử dụng lại các thành phần; bất kỳ ứng dụng có thể xuất bản khả năngcủa mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng (có thểhạn chế bảo mật được thực thi bởi khuôn khổ) Cơ chế này cho phép các thànhphần tương tự sẽ được thay thế bởi người sử dụng

Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, baogồm:

- Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng đểthiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout,…

- Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu

từ các ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa cácứng dụng đó

- Một “Resource Manager” cung cấp truy xuất tới các tài nguyên khôngphải là mã nguồn, chẳng hạn như: localized strings, graphics, and layout files

- Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị cáccustom alerts trong status bar

Activity Maanager được dùng để quản lý chu trình sống của ứng dụng và

Trang 17

điều hướng các activity

2.2.2.3 Library

Android bao gồm một tập hợp các thư viên C/C++ được sử dụng bởinhiều thành phần khác nhau trong hệ thống Android Điều này được thể hiệnthông qua nền tảng ứng dụng Android Một số các thư viện cơ bản được liệt kêdưới đây:

- System C library: a BSD-derived implementation of the standard Csystem library (libc), tuned for embedded Linux-based devices

- Media Libraries - based on PacketVideo's OpenCORE; the librariessupport playback and recording of many popular audio and video formats, aswell as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG,and PNG

- Surface Manager - Quản lý việc truy xuất vào hệ thống hiển thị

- LibWebCore - a modern web browser engine which powers both theAndroid browser and an embeddable web view

- SGL - the underlying 2D graphics engine

- 3D libraries - an implementation based on OpenGL ES 1.0 APIs; thelibraries use either hardware 3D acceleration (where available) or theincluded, highly optimized 3D software rasterizer

- FreeType - bitmap and vector font rendering

- SQLite - a powerful and lightweight relational database engine available

to all applications

2.2.2.4 Android Runtime

Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầu hếtcác chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Tất cảcác ứng dụng Android đều chạy trong tiến trình riêng Máy ảo Dalvik đã đượcviết để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả Các VM Dalvik thựcthi các tập tin thực thi Dalvik (dex) Định dạng được tối ưu hóa cho bộ nhớ tối

Trang 18

thiểu VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi mộttrình biên dịch Java để chuyển đổi thành các định dạng dex Các VM Dalvik dựavào nhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp

2.2.2.5 Linux kernel

Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi nhưsecurity, memory management, process management, network stack, and drivermodel Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phần cứng vàphần còn lại của phần mềm stack

2.2.3 Android Emulator

Android SDK và Plugin Eclipse được gọi là một Android DeverloperTool (ADT) Các Android coder sẽ cần phải sử dụng công cụ IDE (IntegratedDevelopment Enveronment) này để phát triển, debugging và testing cho ứngdụng Tuy nhiên, các coder cũng có thể không cần phải sử dụng IDE mà thayvào đó là sử dụng command line để biên dịch và tất nhiên là vẫn có Emulatornhư thường

Android Emulator được trang bị đầy đủ hầu hết các tính năng của mộtthiết bị thật Tuy nhiên, một số đã bị giới hạn như là kết nối qua cổng USB,camera và video, nghe phone, nguồn điện giả lập và bluetooth

Android Emulator thực hiện các công việc thông qua một bộ xử lý mãnguồn mở, công nghệ này được gọi là QEMU (http://bellard.org/qemu/) đượcphát triển bởi Fabrice Bellard

Trang 19

File này được tự động sinh ra khi tạo một Android project Trong filemanifest bao giờ cũng có 3 thành phần chính đó là: application, permission vàversion

Dưới đây là nội dung của một file AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="dtu.k12tpm.pbs.activity"

android:versionCode="1"

android:versionName="1.0">

<application android:icon="@drawable/icon"

Trang 20

Ngoài ra còn nhiều thuộc tính khác…

- Permission : Bao gồm các thuộc tính chỉ định quyền truy xuất và sửdụng tài nguyên của ứng dụng Khi cần sử dụng một loại tài nguyên nào đóthì trong file manifest của ứng dụng cần phải khai báo các quyền truy xuất như

Trang 21

Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nàoxảy xa làm thay đổi các thuộc tính trong ứng dụng Chẳng hạn như, bạn kéo vàthả một file hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đườngdẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xoá một file hìnhảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xoá

Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong

cả quá trình xây dựng ứng dụng

Dưới đây là nội dung của một file R.java:

public final class R {

public static final class attr {

}

public static final class drawable {

public static final int icon=0x7f020000;

}

public static final class id {

public static final int btnRefresh=0x7f050003;

public static final int expandableListView1=0x7f050002;

public static final int label1=0x7f050000;

public static final int listView1=0x7f050001;

public static final int txt1=0x7f050004;

}

Trang 22

public static final int main=0x7f030000;

}

public static final class string {

public static final int app_name=0x7f040001;

public static final int hello=0x7f040000;

public static final int refresh=0x7f040002;

đó, 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

2.2.5.1 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 và đến thời điểm kết thúc Giữa đó, đôi lúc chúng có thể làactive hoặc inactive, hoặc là trong trường hợp activies nó có thể visible hoặcinvisible

2.2.5.2 Activity Stack

Bên trong hệ thống các activity được quản lý như một activity stack Khimộ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ẽ ở bên dưới activity mới và sẽ không thấy trong suốtquá trình activity mới tồn tại

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

Trang 23

Activity stack

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

Chu kỳ sống của Activity

Một Activity chủ yếu có 3 chu kỳ chính sau:

- Active hoặc running: Khi Activity là được chạy trên màn hình Activitynày tập trung vào những thao tác của người dùng trên ứng dụng

- Paused: Activity là được tạm dừng (paused) khi mất focus nhưngngười dùng vẫn trông thấy Có nghĩa là một Activity mới ở trên nó nhưng

Trang 24

không bao phủ đầy màn hình Một Activity tạm dừng là còn sống nhưng 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ạngthá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

2.2.5.4 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ànhphần đều có một chu trình sống riêng Và ứng dụng chỉ được gọi là kết thúc khitất cả các thành phần trong ứng dụng kết thúc Activity là một thành phần chophép người dùng giao tiếp với ứng dụng Tuy nhiên, khi tất cả các Activity kếtthúc và người dùng không còn giao tiếp được với ứng dụng nữa nhưng 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ăngtương tác người dùng thì còn có các thành phần không có khả năng tương tác vớingười dùng như là Service, Broadcast receiver Có nghĩa là những thành phầnkhông tương tác người dùng có thể chạy background dưới sự giám sát của hệđiều hành cho đến khi người dùng tự tắt chúng

2.2.5.5 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ỏthông tin khác của nó từ vùng nhớ bởi việc finish() (gọi hàm finish() của nó),hoặc đơn giản giết tiến trình của nó Khi nó được hiển thị lần nữa với ngườidù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ộtActivity chuyển qua chuyển lại giữa các trạng thái, nó phải 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à bạn có thể override để làmtương thich công việc trong ứng dụng khi thay đổi trạng thái Tất cả các Activitybắt buộc phải có onCreate() để khởi tạo ứng dụng Nhiều Activity sẽ cũng hiệnthực onPause() để xác nhận việc thay đổi dữ liệu và mặt khác chuẩn bị dừnghoạt động với người dùng

Trang 25

2.2.5.6 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ộtActivity Thời gian sống của một Activity diễn ra giữa lần đầu tiên gọionCreate() đế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(), và giải phóng các tài nguyên đang tồn tạitrong onDestroy()

2.2.5.7 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 khoảng thời gian này người dùng có thể thấyactivity trên màn hình, có nghĩa là nó không bị foreground hoặc đang tương tácvớ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

2.2.5.8 Các phương thức của chu kỳ sống

* Phương thức: onCreate()

- Được gọi khi activity lần đầu tiên được tạo

- Ở đây bạn làm tất cả các cài đặt tĩnh tạo các view, kết nối dữ liệu đếnlist và v.v

- Phương thức này gửi qua một đối tượngBundle chứa đựng từ trạngthái trược của Activity

- Luôn theo sau bởi onStart()

- Được gọi trước khi một activity visible với người dùng

- Theo sau bởi onResume() nếu activity đến trạng thái foregroundhoặc onStop() nế nó trở nên ẩn

Trang 26

- Được gọi khi hệ thống đang resuming activity khác

- Phương thức này là điển hình việc giữ lại không đổi dữ liệu Nó nênđược diễn ra một cách nhanh chóng bởi vì activity kế tiếp sẽ không đượcresumed ngay cho đến khi nó trở lại

- Theo sau bởi onResume nếu activity trở về từ ở trước, hoặc bởi onStopnếu nó trở nên visible với người dùng

- Trạng thái của activity có thể bị giết bởi hệ thống

* Phương thức: onStop()

- Được gọi khi activity không thuộc tầm nhìn của người dùng

- Nó có thể diễn ra bởi vì nó đang bị hủy, hoặc bởi vì activity khác vữađược resumed và bao phủ nó

- Được theo sau bởi onRestart() nếu activity đang đở lại để tương tácvới người dùng, hoặc onDestroy() nếu activity đang bỏ

- Trạng thái của activity có thể bị giết bởi hệ thống

* Phương thức: onDestroy()

- Được gọi trước khi activity bị hủy

- Đó là lần gọi cuối cùng mà activity này được nhận

- Nó được gọi khác bởi vì activity đang hoàn thành, hoặc bởi vì hệ thốngtạm thởi bị hủy diệt để tiết kiệm vùng nhớ

- Bạn có thể phân biệt giữa 2 kịch bản với phương isFinshing()

Trạng thái của activity có thể được giết bởi hệ thống

2.2.6 Các thành phần giao diện cơ bản trong android

Trang 27

2.2.6.1 View

Trong một ứng dụng Android, giao diện người dùng được xây dựng từcác đối tượng View và ViewGroup Có nhiều kiểu View và ViewGroup Mỗimột kiểu là một hậu duệ của class View và tất cả các kiểu đó được gọi là cácWidget

Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trìnhbày vị trí, background, kích thước, lề,… Tất cả những thuộc tính chung nàyđược thể hiện hết ở trong đối tượng View

Trong Android Platform, các screen luôn được bố trí theo một kiểu cấutrúc phân cấp như hình dưới Một screen là một tập hợp các Layout và cácwidget được bố trí có thứ tự Để thể hiện một screen thì trong hàm onCreate củamỗi Activity cần phải được gọi một hàm là setContentView(R.layout.main);hàm này sẽ load giao diện từ file XML lên để phân tích thành mã bytecode

Cấu trúc một giao diện ứng dụng Android 2.2.6.2 ViewGroup

ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính

là các widget Layout được dùng để bố trí các đối tượng khác trong một screen

Có một số loại ViewGroup như sau:

Trang 28

những tỷ lệ cân xứng dựa vào các ràng buộc giữa các thành phần

Bố trí các widget sử dụng LinearLayout

2.2.6.2.2 RetaliveLayout

Layout này cho phép bố trí các widget theo một trục đối xứng ngang hoặcdọc Để đặt được đúng vị trí thì các widget cần được xác định một mối ràngbuộ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 widget hoặc so với layout parent Dựa vào những mối ràngbuộc đó mà RetaliveLayout cũng không phụ thuộc vào kích thước của screenthiết bị Ngoài ra, nó còn có ưu điểm là giúp tiết kiệm layout sử dụng nhằm mụcđích giảm lượng tài nguyên sử dụng khi load đồng thời đẩy nhanh quá trình xử

Bố trí các widget trong RetaliveLayout

Trang 29

2.2.6.3 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:

VD: trong file mã nguồn khai báo một hàm như sau:

public void touchMe(View v){

Trang 30

Để khai báo một Button trong code ta làm như sau:

Button cmdButton = new Button(this);

cmdButton.setText(“Touch Me!”);

cmdButon.setOnClickListener(…);

Để custom một widget nào đó ta phải tạo một class kế thừa từ classWidget muốn custom, sau đó sử dụng hàm draw để vẽ lại widget đó như mộtCanvas

VD: canvas.drawPicture(Picture.createFromStream( ));

2.2.6.4 ListView

Đượ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 thì cần phải có 3 yếu

để thể hiện trường name này Tuy nhiên, ListView sẽ không thể hiển thị dữliệu trong Data Source lên được nếu như Adapter không gán dữ liệu vào chođối tượng hiển thị

- ListView: ListView là đối tượng để hiển thị các thông tin trong DataSource ra một cách trực quan và người dùng có thể thao tác trực tiếp trên đó

Ngày đăng: 17/12/2016, 09:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w