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

Báo cáo chuyên đề Quản lý danh bạ trên Android

82 2,3K 11

Đ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 82
Dung lượng 1,86 MB

Nội dung

Báo cáo chuyên đề Quản lý danh bạ trên Android

Trang 1

CÁC KÝ HIỆU VIẾT TẮT

Ký hiệu, viết tắt và thuật

Android Emulator Thiết bị giả lập điện thoại Android để chạy các ứng

dụng

biệt với động từ active

AndroidContent Provider Một thành phần trong hệ thống Android hỗ trợ truy

vấn vào các dữ liệu trong hệ thống

tương ứng

Trang 2

MỤC LỤC

CÁC KÝ HIỆU VIẾT TẮT 1

MỤC LỤC 2

MỞ ĐẦU 5

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 7

1.1 Sơ lược về các hệ điều hành 7

1.1.1 Khái niệm hệ điều hành 7

1.1.2 Một số hệ điều hành tiêu biểu 7

1.1.3 Các chức năng chính của hệ điều hành 7

1.1.4 Các thành phần của hệ điều hành 8

1.1.5 Phân loại hệ điều hành 8

1.1.6 So sánh giữa các hệ điều hành 9

1.2 Android là gì? 11

1.3 Delving với máy ảo Dalvik 13

1.4 Kiến trúc của Android 13

1.4.1 Tầng ứng dụng (application) 14

1.4.2 Tầng Application framework 15

1.4.3 Tầng Library 16

1.4.4 Android Runtime 17

1.4.5 Tầng hạt nhân Linux (Linux Kernel layer) 17

Trang 3

1.5 Android Emulator 18

1.6 Các thành phần trong một Android Project 19

1.6.1 AndroidManifest.xml 19

1.6.2 File R.java 20

1.7 Chu kỳ ứng dụng Android 21

1.7.1 Chu kỳ sống thành phần 21

1.7.2 Activity Stack 22

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

1.7.4 Chu kỳ sống của ứng dụng 23

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

1.7.6 Thời gian sống của ứng dụng 24

1.7.7 Thời gian hiển thị của Activity 25

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

1.8 Các thành phần trong ứng dụng Android 26

1.8.1 View(xem) 26

1.8.2 View Group(xem nhóm) 27

1.8.3 Button (nút) 30

1.8.4 Image Button (hình ảnh nút) 31

1.8.5 Image View (xem hình) 31

1.8.6 List View(xem danh sách) 32

1.8.7 Text View(xem văn bản) 33

1.8.8 Edit Text(sửa văn bản) 33

1.8.9 Check Box(đánh dấu) 34

Trang 4

1.8.10 Menu Options(tùy chọn thực đơn) 34

1.8.11 Context Menu(tùy chọn trình đơn) 35

1.8.12 Quick Search Box(hộp tìm kiếm nhanh) 35

1.8.13 Activity(hoạt động) 36

1.8.14 Intent() 37

1.8.15 Content provider và Uri 38

1.8.16 Background Service 39

1.8.17 Telephony 43

1.8.18 SQLite 43

1.9 Android và Webservice 44

1.9.3 Khái niệm Web service và SOAP 44

1.9.4 Giới thiệu về XStream 45

1.9.5 Thao tác với web service trong Android 46

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

2.1 Đặc tả bài toán 47

2.2 Đặc tả chức năng 48

2.2.1 Upload phone book 48

2.2.2 Revert phone book 48

2.2.3 Send contact 49

2.2.4 Reveive contact 50

2.2.5 Export contact tới SD Card 51

2.2.6 Import contact từ SD Card 51

2.2.7 Account Manager 52

Trang 5

2.3 Các biểu đồ hệ thống 55

2.3.1 Biểu đồ User-case 55

2.3.6 Biểu đồ Class 57

2.4 Biểu đồ Sequence 59

2.5 Biểu đồ Activity 64

2.6 Cơ sở dữ liệu 68

2.6.1 Bảng Accounts: 69

2.6.2 Bảng Backup_Contact 69

2.6.3 Bảng MyUserName 69

2.6.4 Bảng Share 70

CHƯƠNG 3: TRIỂN KHAI VÀ KIỂM THỬ ỨNG DỤNG 71

3.1 Một vài hình ảnh ứng dụng 71

3.2 Sơ đồ liên kết các màn hình và Dialog 75

3.3 Đánh giá ứng dụng 76

KẾT LUẬN 78

NHẬN XÉT ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN 80

NHẬN XÉT ĐÁNH GIÁ CỦA TRUNG TÂM TIN HOC 2T 81

Trang 6

MỞ ĐẦU

Ngày nay, xu thế của xã hội thông tin đang chuyển dần sang lĩnh vực công nghệ diđộng nói chung và điện thoại di động nói riêng Minh chứng cho điều đó là sự ra đờicủa hai dòng điện thoại smartphone Android và iPhone Tuy nhiên, hiện nay tiêu điểmgây chú ý nhất trong xã hội thông tin vẫn là nền tảng Android của Google

Android là một nền tảng phần mềm mở dựa trên nhân hệ điều hành Linux và đánhgiá là một nền tảng công nghệ phổ biến trong nhiều lĩnh vực trong tương lai Hiện nay,Android đã thu hút được sự quan tâm của các nhà sản xuất điện thoại di động lớn trênthế giới và mức tăng trưởng của Android vượt lên dẫn đầu so với iPhone, Nokia vànhiều hãng khác

Ở nước ta, Android thực sự là một mảnh đất màu mỡ mà các công ty phần mềmkhai thác Điều này cũng kéo theo việc cơ hội việc làm cho sinh viên mới ra trườngcũng nhiều hơn Ngoài ra, Android là một nền tảng mở và được viết bằng ngôn ngữJava nên đây là một điểm rất thuận lợi để cho nhiều người có thể dễ dàng bắt tay vàonghiên cứu cũng như dễ dàng tiếp cận công nghệ

Ngoài ra, việc sử dụng một chiếc điện thoại di động ngay nay đã không chỉ đơnthuần là để gọi và nhắn tin mà thêm vào đó là rất nhiều các chức năng tiện ích khácgiúp người dùng có thể quản lý công việc một cách hiệu quả và an toàn nhất Một trong

số đó là việc quản lý các Contact (thông tin liên lạc) trong điện thoại Bất kỳ một chiếcđiện thoại nào cũng cần phải có một trình quản lý Contact giúp người dùng lưu trữ, tìmkiếm Contact một cách nhanh chóng, dễ dàng và nhất là đối với một chiếc smartphoneAndroid thì yếu tố an toàn là không thể thiếu

Để giải quyết vấn đề này em đã tìm hiểu và xây dựng ứng dụng Quản lý danh bạtrên Android Mặc dù, cũng đã có những ứng dụng tương tự trên Android cho phépquản lý và lưu trữ Contact một cách an toàn nhưng hướng nghiên cứu của tôi là bằng

Trang 7

cách lưu trữ dữ liệu trên một server riêng không phải là dựa vào Gmail như các ứngdụng khác Việc lưu trữ dữ liệu Contact trên một server riêng cho phép dễ dàng mởrộng các tính năng trong tương lai mà không bị phụ thuộc vào các dịch vụ trực tuyến.Đồng thời, cũng dễ dàng chia sẽ dữ liệu và các thông tin liên lạc

Mục đích chính khi thực hiện đề tài này là nhằm tiếp cận, nghiên cứu và khai thácnền tảng phần mềm mở Android để tạo ra một phần mềm có tính thực tiễn cao, ứngdụng hiệu quả vào cuộc sống Báo cáo của đề tài bao gồm 3 chương:

Chương 1: Giới thiệu các vấn đề lý thuyết liên quan

Chương 2: Đặt vấn đề, trình bày giải pháp, phân tích và thiết kế

Chương 3: Triển khai ứng dụng và demo

Trang 8

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

1.1 Sơ lược về các hệ điều hành

1.1.1 Khái niệm hệ điều hành

Hệ điều hành (operating system) là chương trình chạy trên hệ thống máy tính, quản

lý các tài nguyên trên máy tính và là môi trường cho các chương trình ứng dụng chạytrên nó Ngày nay, khái niệm hệ điều hành không chỉ là trên máy vi tính mà còn được

mở rộng cho nhiều thiết bị điện tử khác chẳng hạn như điện thoại thông minh(smartphones), máy tính bảng (tablet computers) và hiện nay là cả trên một số đầu phát

HD, HD Player, TV, các thiết bị cầm tay PDA

Như vậy hệ điều hành di động là hệ điều hành chạy trên hệ thống máy có tính diđộng cao Với đặc thù đó, hệ điều hành di động phải có những khả năng đặc biệt mànhững hệ điều hành thông thường không có được Chẳn hạn như nó phải chạy trên hệthống máy có cấu hình máy hạn chế về tốc độ bộ vi xử lý, bộ nhớ sử dụng, phải chạyđược ổn định liên tục trong một thời gian dài mà chỉ sử dụng một lượng điện năng nhỏ,trong suốt thời gian chạy đó có thể duy trì các kết nối mạng không dây để đảm bảo việcliên lạc

1.1.2 Một số hệ điều hành tiêu biểu

- Trên máy tính cá nhân : MS Dos, MS Window, Mac OS, Linux, Unix…

- Trên điện thoại thông minh : Android, Sybian, Window Mobile, iOS, RIM OS,Bada OS, Palm OS

- Ngoài ra còn có các hệ điều hành chạy trên mainframe, server, thẻ chíp,

1.1.3 Các chức năng chính của hệ điều hành

Quản lý chia sẻ tài nguyên.Tài nguyên ở đây là bao gồm:

- Tài nguyên phần cứng (CPU, Bộ nhớ, các thiết bị IO)

- Tài nguyên phần mềm (Các file, chương trình dùng chung)

Trang 9

Tạo lập môi trường ảo ít phụ thuộc vào phần cứng để các phần mềm ứng dụng hoạtđộng, phục vụ người dùng.

1.1.5 Phân loại hệ điều hành

Theo loại thiết bị mà hệ điều hành hoạt động:

- Hệ điều hành dành cho máy MainFrame

- Hệ điều hành dành cho máy Server

- Hệ điều hành dành cho máy nhiều CPU

- Hệ điều hành dành cho máy tính cá nhân (PC)

- Hệ điều hành dành cho máy PDA

- Hệ điều hành dành cho máy chuyên biệt

- Hệ điều hành dành cho thẻ chíp (SmartCard)

Theo số user và số chương trình cùng hoạt động:

- Hệ điều hành đơn nhiệm một người dùng

- Hệ điều hành đa nhiệm một người dùng

- Hệ điều hành đa nhiệm nhiều người dùng

Theo góc độ người dùng:

Một người dùng hay nhiều người dùng (Mạng ngang hàng, mạng có máy chủ)

Trang 10

Theo hình thức xử lý:

- Hệ thống xử lý theo lô

- Hệ thống xử lý theo lô đa chương

- Hệ thống chia sẻ thời gian

- Hệ thống song song

- Hệ thống phân tán

- Hệ thống xử lý thời gian thực

1.1.6 So sánh giữa các hệ điều hành

1.1.7 So sánh giữa hệ điều hành di động và hệ điều hành trên desktop

Giống nhau: về bản chất hệ điều hành, những thành phần lõi hệ điều hành

Khác nhau:

- Hệ điều hành di động: hoạt động trên các thiết bị nhỏ gọn, hạn chế nhất là vềvấn đề năng lượng Pin thì có hạn, vì thế tất cả các thành phần trên thiết bịđều phải tối ưu để tiết kiệm pin, điều đó nảy sinh nhiều mâu thuẫn với nhucầu sử dụng của người dùng

 Màn hình càng lớn và càng sáng thì sẻ tốn điện càng nhiều

 Bộ nhớ lớn thì chi phí về điện cũng sẻ cao

 Bộ vi xử lý càng nhanh thì càng tốn điện Điều đó chưa kể đến việcthiết bị di động thì phải nhỏ gọn, nhẹ nhàng, vì vậy càng đè nặng việcphải tối ưu phần cứng Khi đó hệ điều hành di động cũng có tráchnhiệm phải tối ưu hoạt động của mình để tiết kiệm năng lượng mộtcách tối đa

 Nó phải quản lý các ứng dụng không để các ứng dụng chạy chiếm quánhiều tài nguyên, tránh sự độc quyền, xung đột, tranh chấp tài nguyêngiữa các ứng dụng trong khi các hệ điều hành chạy desktop thì ít chú ýhơn Hệ điều hành di động luôn có bộ công cụ quản lý điện năng sửdụng trong máy, trong những tình huống cần thiết thì hệ thống sẻ tự

Trang 11

tắt những ứng dụng không cần thiết để duy trì các chương trình cầnthiết hơn hoạt động.

 Đa số các hệ điều hành trên desktop đều cho phép nhiều ứng dụngchạy đồng thời (đa nhiệm) và khá tự do Trong khi đó, các hệ điềuhành chạy trên di động thường không cho phép chạy đa nhiệm, hoặc

có đa nhiệm thì các ứng dụng bị giới hạn khá nhiều

- Việc hiển thị giao diện trên một khung hình nhỏ cũng điều khó khăn hơn sovới hệ điều hành chạy trên desktop, thường thì trên hệ điều hành di động gầnnhư không có giao diện cửa sổ cho phép nhiều ứng dụng cùng hiển thị mộtlúc mà chỉ là một giao diện mà trên đó mỗi thời điểm chỉ hiển thị một giaodiện của một ứng dụng mà thôi

- Hệ điều hành di động phải có khả năng hoạt động liên tục không ngừng nghỉ

để đảm bảo liên lạc, đảm bảo kết nối của thiết bị tới mạng không dây cần kếtnối trong khi vẫn di chuyển Vì thế cần được thiết kế đặc biệt hơn so với hệđiều hành trên desktop

1.1.8 So sánh hệ điều hành android với các hệ điều hành di động khác

Giống nhau: Đều là hệ điều hành di động nên mang đầy đủ bản chất của hệ điềuhành di động nói chung (Đã đề cập ở trên)

Khác nhau:

- Android là hệ điều hành mã nguồn mở và miễn phí trong khi các hệ điềuhành di động còn lại đều là nguồn đóng và có phí (khi một hãng thứ hai sửdụng)

- Android được phát triển từ nhân linux do đó nó có thể chạy tốt trên nhiềudòng điện thoại khác nhau Có độ tương thích cao với các loại phần cứngkhác nhau nhiều hơn so với các hệ điều hành di động còn lại

- Các ứng dụng chạy trên android được viết bằng Java trong khi đó, ứng dụngtrên các hệ điều hành khác chủ yếu là viết bằng C/C++/Object C Ngay cả

Trang 12

Symbian có hỗ trợ Java thì cũng khác so với Android, trong khi hệ điều hànhAndroid sử dụng máy ảo Java là Dalvik VM do chính Google phát triển thìSymbian lại sử dụng máy ảo Java là J2ME của Sun.

Hệ điều hành Android một hệ điều hành rất mạnh mạnh, có bảo mật cao, hỗ trợđược nhiều công nghệ tiên tiến như 3G, GPS, EDGE, Wifi tương thích với nhiềuphần cứng, hỗ trợ nhiều loại bộ nhập dữ liệu như keyboard, touch và trackball.Android là hệ điều hành di động nên có khả năng kết nối cao với các mạng không dây

Hỗ trợ công nghệ OpenGL nên có khả năng chơi các phương tiện media, hoạt hìnhcũng như trình diễn các khả năng đồ họa khác cực tốt, là tiền đề để phát triển các ứngdụng có giao diện phức tạp chẳng hạn như là các trò chơi

Android liên tục được phát triển, mỗi bản cập nhật từ Google là mỗi lần Androidđược tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệmới Chẳng hạn như theo một đánh giá thì Android phiên bản 2.2 hoạt động nhanh hơnbản 2.1 tới 450% Hiện nay, phiên bản mới ổn định là 3.2 phát hành 7/2011 với tên gọitheo “họ” 3.x trước đó là Honeycomb Tuy nhiên phiên bản Android tiếp theo – tên mã

Hình 1-1 Logo Android

Trang 13

Ice Cream Sandwich (Android 4.0) – trong quá trình được Google hoàn thiện và đượctung ra vào quý 4 năm 2011.

Hình 1-2 Sự phân bố của các phiên bản Android tính đến ngày 03/10/2011

Năm 2008, hệ điều hành Android đã chính thức mở toàn bộ mã nguồn, điều đó chophép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phùhợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở nàyhoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí phát triển

hệ điều hành Những điều đó là cực kỳ tốt không chỉ đối với các hãng sản xuất điệnthoại nhỏ mà ngay cả với những hãng lớn như Samsung, HTC

Với Google, vì Android hoàn toàn miễn phí, Google không thu tiền từ những hãngsản xuất điện thoại, tuy không trực tiếp hưởng lợi từ Android nhưng bù lại, những dịch

vụ của hãng như Google Search, Google Maps, nhờ có android mà có thể dễ dàngxâm nhập nhanh vào thị trường di động vì mỗi chiếc điện thoại được sản xuất ra đềuđược tích hợp hàng loạt dịch vụ của Google Từ đó hãng có thể kiếm bội, chủ yếu là từcác nguồn quảng cáo trên các dịch vụ đó

Với các nhà phát triển ứng dụng (developers), việc hệ điều hành android được sửdụng phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nềnandroid với sự tin tưởng là ứng dụng đó sẻ có thể chạy được ngay trên nhiều dòng điệnthoại của các hãng khác nhau Họ ít phải quan tâm là đang phát triển cho điện thoạinào, phiên bản bao nhiêu vì nền tảng android là chung cho nhiều dòng máy, máy ảo

Trang 14

Java đã chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại mà

nó đang chạy Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ Java kết hợpvới XML nên có khả năng khả chuyển cao

Một số hãng sản xuất điện thoại có sử dụng hệ điều hành Android tiêu biểu: HTC,

LG, MOTOROLA, SAMSUNG, SONY, ACER, Ở Việt Nam các công ty như Viettel,FPT đãng tung những sản phẩm chạy android cho riêng mình Ngoài ra còn nhiều hãngđiện thoại vừa và nhỏ khác nữa cũng sử dụng hệ điều hành android trong sản phẩm củamình

1.3 Delving với máy ảo Dalvik

Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị động Android

Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik (dex) Địnhdạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc độ xử lý Dalvik

đã được thiết kế và viết bởi Dan Bornstein, người đã đặt tên cho nó sau khi đến thămmột ngôi làng đánh cá nhỏ có tên là Dalvík ở đảo Eyjafjörður, nơi mà một số tổ tiên củaông sinh sống

Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo Java (JavaVirtual Machine) nhưng thực tế thì hoàn toàn khác Khi nhà phát triển viết một ứngdụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường Java Sau đó,

nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực thi được ứng dụngnày trên Android thì nhà phát triển phải thực thi một công cụ có tên là dx Đây là công

cụ dùng để chuyển đổi bytecode sang một dạng gọi là dex bytecode "Dex" là từ viết tắtcủa "Dalvik executable" đóng vai trò như cơ chế ảo thực thi các ứng dụng Android

1.4 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ành Android.Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây

Trang 15

Hình 1-3 Cấu trúc stack hệ thống Android

1.4.1 Tầng ứng dụng (application)

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

- Các ứng dụng cơ bản được tích hợp sẵn như: gọi điện (Phone), quản lý danh bạ(Contacts), duyệt web (Browser), nhắn tin (SMS), lịch làm việc (Calendar), đọce-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh (camera)

- Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các tròchơi (Game), từ điển

Các chương trình có các đặc điểm là:

- Viết bằng ngôn ngữ Java, phần mở rộng là apk

- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựnglên để phục vụ cho nó Nó có thể là một Active Program : Chương trình có giaodiện với người sử dụng hoặc là một background: chương trình chạy nền hay làdịch vụ

- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm,

có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì

Trang 16

có duy nhất một thực thể (instance) được phép chạy mà thôi Điều đó có tácdụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.

- Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyền hạn khi

sử dụng tài nguyên, cấu hình phần cứng và hệ thống

- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di độngkhác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền Cácứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dụng quá5~10% công suất CPU, điều đó nhằn để tránh độc quyền trong việc sử dụngCPU

- Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu

1.4.2 Tầng Application framework

Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà pháttriể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 đ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ác thô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ởicác ứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụnglại các thành phần; bất kỳ ứng dụng có thể xuất bản khả năng của mình và ứng dụngnà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 thibởi khuôn khổ) Cơ chế này cho phép các thành phần tương tự sẽ được thay thế bởingườ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, bao gồ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,…

Trang 17

- Content Provider: cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứngdụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụngđó.

- Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cungcấp công cụ điều khiển các Activity

- Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi điệnthoại

- XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực

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

- Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người dùngcũng như tổ chức quản lý các giao diện giữa các ứng dụng

- Notication Manager : Quản lý việc hiển thị các thông báo (như báo có tin nhắn,

có e-mail mới )

- Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các filehình ảnh, âm thanh, layout, string (Những thành phần không được viết bởi ngônngữ lập trình)

1.4.3 Tầng Library

Android bao gồm một tập hợp các thư viên C/C++ được sử dụng bởi nhiều thànhphần khác nhau trong hệ thống Android Điều này được thể hiện thô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:

- Thư viện hệ thống (System C library): thư viện dựa trên chuẩn C, được sử dụngchỉ bởi hệ điều hành

- Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và ghicác loại định dạng âm thanh, hình ảnh, video thông dụng

- Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung trên web,được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để

Trang 18

các ứng dụng khác có thể nhúng vào Nó cực kỳ mạnh, hỗ trợ được nhiều côngnghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX…

- SGL: thư viện hỗ trợ đồ họa 2D

- 3D libraries: thư viện đồ họa 3D

- Free Type : bitmap and vector font rendering

- Thư viện SQLite : Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng, nó không

có quan hệ như các cơ sở dữ liệu khác

1.4.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ết các chứcnă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ụngAndroid đều chạy trong tiến trình riêng Máy ảo Dalvik đã được viết để cho một thiết bị

có thể chạy nhiều máy ảo hiệu quả Các VM Dalvik thực thi các tập tin thực thi Dalvik(dex) Định dạng được tối ưu hóa cho bộ nhớ tối 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ột trình biên dịch Java để chuyển đổi thành cácđịnh dạng dex Các VM Dalvik dựa và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

1.4.5 Tầng hạt nhân Linux (Linux Kernel layer)

Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt nhânlinux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạt độngcủa điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp nàybao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (drivermodel), thực hiện bảo mật (security), quản lý tiến trình (process)

Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nâng cấp

và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế

về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nối mạng khôngdây

Tầng này có các thành phần chủ yếu:

Trang 19

- Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận nhữngđiều khiển của người dùng lên màn hình (di chuyển, cảm ứng ).

- Camera Driver: Điều kiển hoạt động của camera, nhận luồng dữ liệu từ cameratrả về

- Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth

- USB driver: Quản lý hoạt động của các cổng giao tiếp USB

- Keypad driver: Điều khiển bàn phím

- Wifi Driver: Chịu trách nhiệm về việc thu phát sóng wifi

- Audio Driver: điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạngaudio thành tín hiệu số và ngược lại

- Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vôtuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thôngđược thực hiện

- M-System Driver: Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD, flash

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

1.5 Android Emulator

Android SDK và Plugin Eclipse được gọi là một Android Deverloper Tool (ADT).Các Android coder sẽ cần phải sử dụng công cụ IDE (Integrated DevelopmentEnveronment) này để phát triển, debugging và testing cho ứng dụng Tuy nhiên, các lậptrình viên cũng có thể không cần phải sử dụng IDE mà thay vào đó là sử dụng

“command line” để biên dịch và tất nhiên là vẫn có Emulator như thường

Android Emulator được trang bị đầy đủ hầu hết các tính năng của một thiế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, nghephone, 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://wiki.qemu.org/ ) được phát triển bởi FabriceBellard

Trang 20

Hình 1-4 Android Emulator

1.6 Các thành phần trong một Android Project

1.6.1 AndroidManifest.xml

Trong bất kì một project Android nào khi tạo ra đều có một file

AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các

permission cũng như các theme cho ứng dụng Đồng thời nó cũng chứa thông tin vềphiên bản SDK cũng như màn hình chính sẽ chạy đầu tiên

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

Application

Thẻ <application>, bên trong thẻ này chứa các thuộc tính được định nghĩa cho

ứng dụng Android như:

Trang 21

- android:icon = “drawable resource”  Ở đây đặt đường dẫn đến file icon của ứng dụng khi cài đặt Ví dụ: android:icon = “@drawable/icon”.

- android:name = “string”  thuộc tính này để đặt tên cho ứng dụng Android.

Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng

- android:theme = “drawable theme”  thuộc tính này để đặt theme cho ứng

dụng Các theme là các cách để hiển thị giao diện ứng dụng…

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 ứngdụ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ụngcần phải khai báo các quyền truy xuất như sau:

SDK version

Thẻ xác định phiên bản SDK được khai báo như sau:

Ở đây chỉ ra phiên bản SDK nhỏ nhất mà ứng dụng hiện đang sử dụng

1.6.2 File R.java

File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sử dụng

để quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các tàinguyên hình ảnh

Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy xalà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 filehình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đường dẫ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ẫntương ứng đến hình ảnh đó cũng tự động bị xoá

Trang 22

Chu kỳ sống một ứng dụng Android

Activity/Inactivity Visiable/Invisible

- 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 địnhbở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

1.7.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 đầukhởi tạo và đến thời điểm kết thúc Giữa đó, đôi lúc chúng có thể là active( trạng thái

hoạt động) hoặc inactive (không hoạt động), hoặc là trong trường hợp Activies nó có

thể visible (ẩn) hoặc invisible (hiển thị)

Trang 23

Hình 1-5 Chu kỳ sống thành phần

1.7.2 Activity Stack

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

Nếu nhấn nút Back thì activity kết tiếp của stack sẽ di duyển lên và trở thành active

Hình 1-6 Activity stack

Trang 24

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

Hình 1-7 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 Activity này tậptrung 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ưng người dùngvẫn trông thấy Có nghĩa là một Activity mới ở trên nó nhưng 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ạ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

1.7.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ành phầ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 khi tất cả các thành

Trang 25

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 giaotiế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òngiao 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ăng tương tác người dùng thì còn có các thànhphần không có khả năng tương tác với người dùng như là Service, Broadcast receiver.

Có nghĩa là những thành phần không tương tác người dùng có thể chạy backgrounddướ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

1.7.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ười dùng, nó phải được hoàn toànrestart 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 báo việc chuyển của nó bằng việc gọi hàm transition.

Hình 1-8 Các sự kiện trong chu kỳ sống của ứng dụng Android

Tất cả các phương thức là những móc nối mà bạn có thể override để làm tươngthich 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 hiện thực 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

1.7.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ột Activity Thời

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

Trang 26

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

Thời gian hiển thị của một activity diễn ra giữa lần gọi một onStart() cho đến khigọi onStop() Trong suốt khoảng thời gian này người dùng có thể thấy activity trên mànhình và có thể tương tác với ứng dụng

1.7.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 đến list…

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

- Đượ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 foreground hoặc onStop()

nế nó trở nên ẩn

Phương thức: onResume()

- Được gọi trước khi activity bắt đầu tương tác với người dùng

- Tại thời điểm này activity ở trên đỉnh của stack activity

- Luôn theo sau bởi onPause().

Phương thức: onPause()

- Đượ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

Trang 27

- 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 onStop nế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 đượcresumed và bao phủ nó

- Được theo sau bởi onRestart() nếu activity đang đở lại để tương tác vớ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ống tạ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().

1.8 Các thành phần trong ứng dụng Android

1.8.1 View(xem)

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

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

Trang 28

Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phâncấp như hình dưới 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 đượ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

Hình 1-9 Cấu trúc một giao diện ứng dụng Android

1.8.2 View Group(xem nhóm)

ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính là cácwidget Layout được dùng để bố trí các đối tượng khác trong một screen Có một số loạiViewGroup như sau:

1.8.3 Linear Layout (bố trí giao diện)

LinearLayout được dùng để bố trí các thành phần giao diện theo chiều nganghoặc chiều dọc nhưng trên một line duy nhất mà không có xuống dòng

LinearLayout làm cho các thành phần trong nó không bị phụ thuộc vào kíchthước của màn hình Các thành phần trong LinearLayout được dàn theo những tỷ lệ cânxứng dựa vào các ràng buộc giữa các thành phần

Trang 29

Learn-Android.com ImageView

TextView

Hình 1-10 Bố trí các widget sử dụng LinearLayout

1.8.4 Frame Layout (khung)

FrameLayout được dùng để bố trí các đối tượng theo kiểu giống như là cácLayer trong Photoshop Những đối tượng nào thuộc Layer bên dưới thì sẽ bị che khuấtbởi các đối tượng thuộc Layer nằm trên FrameLayer thường được sử dụng khi muốn

tạo ra các đối tượng có khung hình bên ngoài chẳng hạn như contact image button

Hình 1-11 Bố trí các widget trong FrameLayout

1.8.5 Absolute Layout(tọa độ của giao diện)

Layout này được sử dụng để bố trí các widget vào một vị trí bất kì trong layoutdựa vào 2 thuộc tính toạ độ x, y Tuy nhiên, kiểu layout này rất ít khi được dùng bởi vìtoạ độ của các đối tượng luôn cố định và sẽ không tự điều chỉnh được tỷ lệ khoảng cáchgiữa các đối tượng Khi chuyển ứng dụng sang một màn hình có kích thước với mànhình thiết kế ban đầu thì vị trí của các đối tượng sẽ không còn được chính xác như banđầu

Trang 30

1.8.6 Retalive Layout

Layout này 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ột mối ràng buộc nào đó vớicá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ộtwidget hoặc so với layout parent Dựa vào những mối ràng buộc đó mà RetaliveLayoutcũng không phụ thuộc vào kích thước của screen thiế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 khiload đồng thời đẩy nhanh quá trình xử lý

Hình 1-12 Bố trí widget trong RetaliveLayout

1.8.7 Table Layout (bảng giao diện)

Layout này đượ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 các row và column Chẳng hạn như, giao diện của một chiếc máy tínhđơn giản hoặc một danh sách dữ liệu

Trang 31

Hình 1-13 Bố trí widget trong TableLayout

Thuộc tính android:onClick="touchMe" được dùng để nắm bắt sự kiện click vào

button Khi sự kiện click button xảy ra thì phương thức “touchMe” được khai báo trongthẻ thuộc tính sẽ được gọi Nếu trường hợp phương thức “touchMe” chưa được khaibáo trong file mã nguồn tương ứng thì sẽ phát sinh một exception Ngược lại, phươngthức “touchMe” sẽ nhận được một đối tham biến là đối tượng View nơi đã phát sinh ra

sự kiện Đối tượng View này có thể ép kiểu trực tiếp sang kiểu Button vì thực chất nó

là một nút lệnh (button)

Trang 32

Thiết kế bằng code

Thực ra mà nói thì nếu không phải đòi hỏi phải custom lại một widget thì khôngcần phải sử dụng tới code Trong một số trường hợp bắt buộc chúng ta phải custom cácwidget để cho phù hợp với hoàn cảnh Chẳng hạn như trong game, các menu hay cácnút điều khiển,…

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

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

1.8.4 Image Button (hình ảnh nút)

Cũng tương tự như Button, ImageButton chỉ có thêm một thuộc tính android:src =

“@drawable/icon” để thêm hình ảnh vào và không có thẻ text.

Hình 1-14 ImageButon

1.8.5 Image View (xem hình)

Được dùng để thể hiện một hình ảnh Nó cũng giống như ImageButton, chỉ khác làkhông có hình dáng của một cái button

Trang 33

Hình 1-15 ImageView và ImageButton

1.8.6 List View(xem danh sách)

Được sử dụng để thể hiện một danh sách các thông tin theo từng cell Mỗi cellthông thường được load lên từ một file XML đã được cố định trên đó số lượng thôngtin 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 tố chính:

- Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ một

cấu trúc dữ liệu kiểu danh sách nào

- Adapter: 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ị trong ListView Chẳng hạn, trong Data Source có mộttrường name và trong ListView cũng có một TextView để thể hiện trường namenà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ị

Trang 34

- ListView: ListView là đối tượng để hiển thị 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 đó

Hình 1-16 Minh hoạ cho một ListView

1.8.7 Text View(xem văn bản)

TextView ngoài tác dụng là để hiển thị văn bản thì nó còn cho phép định dạng nộidung bằng thẻ html

Nội dung TextView cũng có thể được định dạng bằng thẻ html ngay trong XML

1.8.8 Edit Text(sửa văn bản)

Trong Android đối tượng EditText được sử dụng như một TextField hoặc mộtTextBox

Các thuộc tính cần chú ý sử dụng EditText đó là:

- android:inputType = “…” sử dụng để xác định phương thức nhập cho EditText.

Chẳng hạn như khi bạn muốn một ô để nhập password hay một ô để nhập Emailthì thuộc tính này sẽ làm điều đó

- android:singleLine = “true” EditText của bạn sẽ trở thành một TextField,

ngược lại sẽ là TextBox

Trang 35

1.8.9 Check Box(đánh dấu)

Nhận 2 giá trị true hoặc false Đối tượng CheckBox cho phép chọn nhiều item cùngmột lúc

Khai báo: CheckBox cb = new CheckBox(Context …); XML:

1.8.10 Menu Options(tùy chọn thực đơn)

Trang 36

1.8.11 Context Menu(tùy chọn trình đơn)

ContextMenu được sử dụng để hiển thị các tuỳ chọn khi người dùng nhấn dài vàomột cell nào đó trong ListView Để 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

Khi nhấn dài vào một cell trong ListView thì phương thức:

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

Hình 1-18 Minh hoạ context menu

1.8.12 Quick Search Box(hộp tìm kiếm nhanh)

Một trong những tính năng mới trong phiên bản Android 1.6 đó là Quick SearchBox Đây là khuôn khổ tìm kiếm mới trên toàn hệ thống Android, điều này làm chongười dùng có thể nhanh chóng tìm kiếm bất cứ thứ gì có trên chiếc điện thoại Androidcủa họ và cả các tài nguyên trên web khi họ đang online Nó tìm kiếm và hiển thị kếtquả tìm kiếm ngay khi bạn đang gõ Nó cũng cung cấp các kết quả từ các gợi ý tìmkiếm web, danh sách doanh nghiệp địa phương, và thông tin khác từ Google, chẳng hạn

Trang 37

như báo giá cổ phiếu, thời tiết, và tình trạng chuyến bay Tất cả điều này có sẵn ngay từmàn hình chủ, bằng cách khai thác trên Quick Search Box (QSB).

Hình 1-19 Minh hoạ Quick Search Box

1.8.13 Activity(hoạt động)

Activity là một thành chính của một ứng dụng Android, được dùng để hiển thị mộtmàn hình và nắm bắt các hoạt động xảy ra trên màn hình đó Khi làm việc với Activitycần nắm bắt được một số kiến thức cơ bản như sau:

Chu kỳ sống của một Activity

Tạo menu và dialog

Tính liên lạc giữa 2 activity

Khi chuyển sang một Activity khác ta có thể gửi kèm dữ liệu trong intend đónhư sau:

Bên phía Activity được khởi động hay được chuyển đến, có thể lấy dữ liệu đượcgửi như sau:

Trang 38

Task (nhiệm vụ)

Android là một hệ điều hành đa tiến trình Khi lập trình trên nền tảng Androidthì tiến trình là một vấn đề cần phải được chú ý nhiều nhất Mặc dù Android hỗ trợ đatiến trình nhưng trên một thiết bị di động với cấu hình thấp mà chúng ta quá lạm dụngtiến trình thì sẽ rất tốn bộ xử lý điều này cũng đồng nghĩa với việc bạn đang biến ứngdụng của bạn trở thành một thứ phần mềm tiêu thụ điện năng

1.8.14 Intent()

Khái niệm Intend:

- Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity

- Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity,mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khácnhau Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng nhưtruyền các dữ liệu cần thiết tới một Activity khác Điều này cũng giống như việc

di chuyển qua lại giữa các Forms trong lập trình Windows Form

Hình 1-20 Truyền dữ liệu giữa 2 Activity

Dữ liệu của Intend:

- Intent về cơ bản là một cấu trúc dữ liệu, nó được mô tả trong lớp:

android.content.Intent.

Trang 39

- Các thuộc tính của một đối tượng Intend:

Hình 1-21 Các thuộc tính của Intend

- Các Action được định nghĩa sẵn: Dưới đây là những hằng String đã được địnhnghĩa sẵn trong lớp Intent Đi kèm với nó là các Activity hay Application đượcxây dựng sẵn sẽ được triệu gọi mỗi khi Intent tương ứng được gửi (tất nhiên khi

được cung cấp đúng data)

Hình 1-22 Các Action đã được định nghĩa sẵn trong Intend

1.8.15 Content provider và Uri

Trong hệ thống Android tất cả các tài nguyên ngư Contact, SMS,… đều được lưutrữ vào CSDL SQLite của hệ thống Cũng như các CSDL khác, CSDL mà hệ thốngAndroid sử dụng để lưu trữ thông tin cũng cho phép chúng ta truy vấn dữ liệu như mộtCSDL MSSQL thông thường Tuy nhiên, trong hệ thống đó chúng ta không cần phảithao tác bằng lệnh SQL nhiều để truy xuất dữ liệu mà thay vào đó Android đã đượctrang bị một API cho phép người lập trình có thể dễ dàng truy xuất dữ liệu Đó gọi là

Trang 40

ContentProvider ContentProvider cung cấp cho chúng ta một đối tượng con trỏ giúpchúng ta có thể dễ dàng lấy được bất cứ dữ liệu lưu trữ nào chỉ cần cung cấp một đườngdẫn đúng đến dữ liệu đó Đường dẫn này còn được gọi là Uri.

Tạo một Uri:

Cấu trúc gồm có 4 phần chính như sau:

- Phần A: Đây là tiền tố chỉ ra dữ liệu được điều khiển bởi Content Provider và nókhông bao giờ thay đổi

- Phần B: Phần này chỉ đến nơi lưu trữ dữ liệu Cũng giống như cấu trúc của một

số điện thoại thì cái này có thể hình dung nó như là mã quốc gia hoặc cũng cóthể coi nó như là tên của CSDL

- Phần C: Phần này chỉ ra loại dữ liệu Chẳng hạn như, dữ liệu contact, dữ liệuSMS,… Phần này có thể coi nó như là tên của một table

- Phần D: Phần này chỉ đến đúng vị trí của dữ liệu, có thể coi phần này như là IDcủa row trong table hoặc một dữ liệu nào đó dùng để truy vấn

1.8.16 Background Service

Service là 1 trong 4 thành phần chính trong 1 ứng dụng Android (Activity, Service,BroadcastReceiver, ContentProvider) thành phần này chạy trong hậu trường và làmnhững công việc không cần tới giao diện như chơi nhạc, download, xử lí tính toán…Một Service có thể được sử dụng theo 2 cách:

- Nó có thể được bắt đầu và được cho phép hoạt động cho đến khi một người nào

đó dừng nó lại hoặc nó tự ngắt Ở chế độ này, nó được bắt đầu bằng cách gọi

Context.startService() và dừng bằng lệnh Context.stopService() Nó có thể tự

Ngày đăng: 07/05/2014, 13:25

HÌNH ẢNH LIÊN QUAN

Hình 1-2 Sự phân bố của các phiên bản Android tính đến ngày 03/10/2011 - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 2 Sự phân bố của các phiên bản Android tính đến ngày 03/10/2011 (Trang 9)
Hình 1-3 Cấu trúc stack hệ thống Android - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 3 Cấu trúc stack hệ thống Android (Trang 11)
Hình 1-4 Android Emulator 1.6 Các thành phần trong một Android Project - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 4 Android Emulator 1.6 Các thành phần trong một Android Project (Trang 16)
Hình 1-6  Activity stack - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 6 Activity stack (Trang 19)
Hình 1-7 Chu kỳ sống của Activity - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 7 Chu kỳ sống của Activity (Trang 20)
Hình 1-9 Cấu trúc một giao diện ứng dụng Android - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 9 Cấu trúc một giao diện ứng dụng Android (Trang 24)
Hình 1-10 Bố trí các widget sử dụng LinearLayout - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 10 Bố trí các widget sử dụng LinearLayout (Trang 25)
Hình 1-12 Bố trí widget trong RetaliveLayout - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 12 Bố trí widget trong RetaliveLayout (Trang 26)
Hình 1-21 Các thuộc tính của Intend - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 21 Các thuộc tính của Intend (Trang 34)
Hình 1-23 Chu trình sống của một Service - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 23 Chu trình sống của một Service (Trang 38)
Hình 1-24 SQLite Manager 1.9 Android và Webservice - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 1 24 SQLite Manager 1.9 Android và Webservice (Trang 40)
Hình 2-6  Quá trình khôi phục tài khoản người dùng - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 6 Quá trình khôi phục tài khoản người dùng (Trang 49)
Hình 2-8 User-case khôi phục tài khoản - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 8 User-case khôi phục tài khoản (Trang 50)
Hình 2-12 Biểu đồ class Contact - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 12 Biểu đồ class Contact (Trang 52)
Hình 2-13 Biểu đồ class ContactProvider - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 13 Biểu đồ class ContactProvider (Trang 52)
Hình 2-15 Biểu đồ sequence chức năng Login - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 15 Biểu đồ sequence chức năng Login (Trang 53)
Hình 2-14 Biểu đồ class Webservice - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 14 Biểu đồ class Webservice (Trang 53)
Hình 2-17 Biểu đồ tuần tự chức năng khôi phục tài khoản - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 17 Biểu đồ tuần tự chức năng khôi phục tài khoản (Trang 54)
Hình 2-18 Biểu đồ tuần tự chức năng upload phone book - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 18 Biểu đồ tuần tự chức năng upload phone book (Trang 54)
Hình 2-19 Biểu đồ tuần tự chức năng khôi phục phone book - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 19 Biểu đồ tuần tự chức năng khôi phục phone book (Trang 55)
Hình 2-20 Biểu đồ tuần tự chức năng Export contact vào sd card - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 20 Biểu đồ tuần tự chức năng Export contact vào sd card (Trang 55)
Hình 2-21 Biểu đồ tuần tự chức năng import contact từ sd card - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 21 Biểu đồ tuần tự chức năng import contact từ sd card (Trang 56)
Hình 2-28 2.6 Cơ sở dữ liệu - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 2 28 2.6 Cơ sở dữ liệu (Trang 62)
Bảng 2-1 Thuộc tính bảng Account - Báo cáo chuyên đề Quản lý danh bạ trên Android
Bảng 2 1 Thuộc tính bảng Account (Trang 63)
Bảng 2-3 Thuộc tính bảng MyUserName - Báo cáo chuyên đề Quản lý danh bạ trên Android
Bảng 2 3 Thuộc tính bảng MyUserName (Trang 64)
Hình 3- Màn hình Login - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 3 Màn hình Login (Trang 65)
Hình 3- Màn hình Phone Book - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 3 Màn hình Phone Book (Trang 65)
Hình 3-5 Add &amp; Edit Contact Hình 3-6 Context menu “More Option” - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 3 5 Add &amp; Edit Contact Hình 3-6 Context menu “More Option” (Trang 66)
Hình 3-9 Danh sách các contacts mới Hình 3-10 Gửi Contact - Báo cáo chuyên đề Quản lý danh bạ trên Android
Hình 3 9 Danh sách các contacts mới Hình 3-10 Gửi Contact (Trang 68)
Bảng 3-1 Đánh giá ứng dụng - Báo cáo chuyên đề Quản lý danh bạ trên Android
Bảng 3 1 Đánh giá ứng dụng (Trang 70)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w