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

Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo

52 369 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 52
Dung lượng 0,98 MB

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

Nội dung

Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo

Trang 1

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

Ngày Tháng Năm

Giảng Viên Hướng Dẫn

(Ký và ghi rõ họ tên)

Trang 2

Trong ph m vi khả năng cho phép, em đã rất cố gắng để ho n th nh đề tài một cách tốt nhất Song, chắc chắn sẽ không tránh khỏi những thiếu sót Em kính mong nhận đƣợc sự cảm thông và những ý kiến đóng góp của quý thầy cô và các

Trang 3

2.2.1 Gi o iện ch nh – hiển th nh sách th ng tin iên c 47

2.2.2 Gi o iện tìm iếm th ng tin iên c 47

2.2.3 Gi o iện thêm mới th ng tin iên c v sửa thông tin liên l c

Trang 5

MỞ ĐẦU

Hiện nay ngành công nghiệp phần mềm đ ng rất phát triển và ngành công nghiệp phần mềm trên điện tho i i động cũng h ng nằm ngoài xu thế đó Tuy còn nhiều h n chế trong phần cứng củ điện tho i i động nhưng nó đã thể hiện được sức m nh của mình trong rất nhiều các ĩnh vực khác nh u như giải trí, các tiện

ch, th nh toán điện tử v.v

Các hệ điều h nh như Win ow Mo i e, Sym i n… phần n o cũng g y t nhiều

hó hăn cho những i có ý đ nh xây dựng các ứng dụng trên nó Đối với

Window Mobile là một công nghệ của Microsoft và hoàn to n đóng đối với người dùng, nhà phát triển ứng dụng chỉ dựa hoàn toàn vào công nghệ mà

Microsoft cung cấp, còn Symbian thì việc cấu hình để có thể lập trình trên nó cũng v v n hó hăn, đặc biệt là nó sử dụng ngôn ngữ / ++ để làm nền tảng lập trình rõ ràng là không thuận tiện trong việc phát triển ứng dụng

Xuất phát từ nhu cầu thực tế đó, Goog e đã m nh d n nghiên cứu v đư r một nền tảng hệ điều hành mới, đó ch nh n roi Một nền tảng hệ điều hành mã nguồn mở hoàn toàn và dựa vào một ngôn ngữ lập trình rất m nh J v để phát triển ứng dụng Chính vì Android hỗ trợ Java ngay từ trong nền tảng của nó, nên việc viết ứng dụng, ngay cả sử dụng các chức năng của phần cứng là hoàn toàn

dễ dàng thông qua việc sử dụng bộ công cụ hỗ trợ lập trình được cung cấp hoàn toàn miễn phí, là Android SDK

Nhận thấy nhu cầu củ con người trong ĩnh vực giải tr trên i động ngày càng cao và Android chính là nền tảng ứng dụng có thể phát triển trong tương i Chính vì vậy em chọn đề tài “Tìm hiểu ập trình n roi v x y ựng ứng ụng quản ý ont cts Demo” nhằm hiểu rõ về các ĩ thuật lập trình trên thiết b động Android

Trang 6

HƯƠNG 1 : TỔNG QUAN VỀ ĐIỆN TOÁN DI ĐỘNG VÀ NỀN

TẢNG LẬP TRÌNH ANDROID

Tổng qu n về điện toán i động

Theo một báo cáo củ hãng Morg n St n ey, đến năm 2015 việc sử dụng và truy cập Internet i động sẽ lớn hơn rất nhiều so với sử dụng Internet trên máy tính PC.( Morgan Stanley là một ng n h ng đầu tư, công ty chứng khoán có trụ sở chính t i Hoa Kỳ Đ y một trong những thể chế tài chính lớn nhất của thể giới.)

Theo báo cáo của Công ty IDC, t i Việt Nam, tổng doanh thu bán hàng của máy

t nh để bàn quý III-2011 tăng 5%, máy t nh xách t y nhỏ gọn tăng 83% so với cùng kỳ năm trước Xu thế hiện nay là sử dụng nhiều thiết b i động như các òng điện tho i thông minh, máy tính bảng tablet dựa trên nền tảng web, hệ thống GPS, game video và thiết b ứng dụng h ng y trong gi đình…

Với sự phát triển và cải tiến liên tục thiết b i động, chúng t có căn cứ để tin rằng, trong tương i gần, máy tính truyền thống PC sẽ b mất ưu thế so với thiết

b cá nh n i động nhỏ gọn, tiện ích và tích hợp đầy đủ chức năng của một chiếc máy tính Chúng ta hoàn toàn có thể nhận đ nh: “Điện toán i động đ ng xu thế của thời đ i”

Trang 7

Sự phát triển bùng nổ các giải pháp công nghệ dành cho thiết b i động cũng một trong những nhân tố góp phần t o ra các thiết b cầm tay nhỏ gọn, đáp ứng mọi nhu cầu tiêu dùng thông tin và ứng dụng củ người sử dụng

Những người kinh doanh, những người quản lý, những người tiêu dùng bình thường hay cả những người lớn tuổi húng t đều trở ên i động và khao khát được i động nhiều hơn Di chuyển khắp thế giới để kinh doanh, hội họp với các đối tác hoặc một m i trường làm việc “ i động” đã gần như trở thành một điều rất ình thường trong cuộc sống Chúng ta có thể làm việc mà không cần rời khỏi nhà, hoặc làm việc trong khi vẫn còn đ ng ngồi nhâm nhi tách cà phê trong một quán cà phê Những kỳ nghỉ đơn thuần chỉ là di chuyển từ nước n y s ng nước khác

Điện toán i động phát triển một cách m nh mẽ một phần lớn dựa trên nền tảng công nghệ của internet, công nghệ m ng i động 2G, 3G và 4G v đặc biệt là công nghệ điện toán đám m y Người sử dụng, sử dụng những thiết b cầm tay (máy tính sách tay, ta et, sm rtphone…) để kết nối vào internet chia sẻ và cập nhật thông tin Sự phát triển m nh mẽ củ điện toán i động được thể hiện rõ ở những con số sau: T nh đến hết quý 1/2012 doanh số án òng điện tho i thông minh (sm rtphone) tăng ên đáng ể, đ t 144,4 triệu chiếc, tăng 44,7% so với quý 1/2011 và máy tính xách tay nhỏ gọn tăng 83% so với cùng kỳ năm trước Trong năm 2012, theo ID ự đoán o nh số bán máy tính bảng đ t khoảng 53,5 triệu máy

Tiềm năng phát triển của lập trình i động

Với sự phát triển như vũ áo củ điện toán i động trong thời kì hiện n y, đã éo theo sự phát triển m nh mẽ của ngành công nghiệp phần mềm ứng dụng cho thiết

b i động Trước thực tế đó, rất nhiều công ty, tổ chức đã x y ựng và phát triển các kho ứng dụng của họ cho thiết b i động

Tháng 7/2008, Apple ra mắt kho ứng dụng i động trực tuyến đầu tiên

với 500 ứng dụng cho các sản phẩm iPhone, iPo Khi đó, th trường ứng dụng mobile hầu như chư hề tồn t i Đến n y, pp Store đã có hơn 400,000 ứng dụng với 10 tỷ ượt tải về, dẫn đầu ngành về d ch vụ ứng dụng cho i động Sau thành

Trang 8

công củ pp e, các hãng i động nhận thấy tiềm năng của th trường Mobile pps đã iên tiếp cho ra mắt kho ứng dụng của mình Tiêu biểu là Ovi Store của Nokia (55,000 ứng dụng, 760 triệu download), Android Market của Google (200,000 ứng dụng,4,5 tỉ download), App World của Blackberry (30,000 ứng dụng, 3 triệu download/ngày), và mới đ y Hu wei Techno ogy - dành cho các nhà m ng i động trên toàn cầu với hơn 80.000 ứng dụng i động/nh c, phim, e-

oo cho HĐH n roi , Sym i n v Win ows Mo i e Góp v o tổng doanh thu h ng năm ng nh ên tới 7 tỷ USD, dự báo sẽ đ t 30 tỷ USD trong 3 năm tới

T i Việt Nam, một số doanh nghiệp đã x y ựng kho ứng dụng i động riêng như F-Store của FPT, mStore của Tổng công ty Viễn th ng Qu n đội Viettel, LG Application Mobile của LG hay Nokia Ovi với phiên bản dành cho th trường Việt Nam VTC Mobile, một trong các đơn v dẫn đầu th phần d ch vụ giá tr gia tăng trên i động gi i đo n 2006-2010 t i Việt n m cũng đã hợp tác với Q-

mo i e để xây dựng Q-Store, cung cấp các ứng dụng do Việt Nam xây dựng tới hàng triệu người sử dụng Q Mobile Việt Nam hiện có tới 50 triệu thuê bao di động ho t động thường xuyên và nền tảng 3G đã được các nhà m ng triển khai rộng khắp với 69% người sử dụng ở độ tuổi trung bình 15 – 24 t o nên một th trường có tốc độ phát triển nhanh chóng và m nh mẽ

Như vậy, lập trình i động hiện đ ng có tiềm năng rất lớn, đ y ng nh, ĩnh vực cực ì s i động và phát triền trong thời đ i hiên nay

Trang 9

Nền Android là sản phẩm của Open Handset Alliance (Liên minh thiết b cầm tay mở), một tập đo n các tổ chức cùng hợp tác với nh u để xây dựng nên một lo i điện tho i i động tốt hơn Tập đo n o Goog e đứng đầu này gồm các nhà vận

h nh (điện tho i) i động, các nhà sản xuất thiết b cầm tay, sản xuất linh kiện, các nhà cung cấp nền và giải pháp phần mềm và các công ty tiếp th Từ một

qu n điểm phát triển phần mềm, Android trở thành trung tâm của thế giới mã nguồn mở và rất có tiềm năng phát triển

Thiết b cầm tay có khả năng n roi đầu tiên trên th trường là thiết b G1 do HTC sản xuất v được bán trên T-Mobile Nó trở nên sẵn có sau gần một năm đồn đ i, khi mà các công cụ phát triển phần mềm sẵn có duy nhất chỉ là một số bản phát hành Bộ công cụ phát triển phần mềm (SDK) được cải tiến dần từng ước Khi ngày phát hành G1 gần đến, nhóm n roi đã phát h nh SDK V1 0 v các ứng dụng bắt đầu vượt lên nhằm hướng tới nền tảng mới này

Để ch th ch đổi mới và phát triển các ứng dụng của Android, Goog e đã t i trợ hai vòng cuộc thi “ ác thách thức nhà phát triển n roi ”, và hàng triệu đ đã được đổ vào các ứng dụng dự thi h ng đầu Vài tháng sau G1, Android Market được phát h nh, cho phép người sử dụng duyệt và tải về các ứng dụng trực tiếp

v o điện tho i của họ Trong vòng 18 tháng, một nền i động mới đã chính thức

có mặt trên th trường và sẽ đối thủ c nh tranh nặng ký của các nền i động phổ biến trước đó như Symbian hay Window Mobile

Android cung cấp há đầy đủ các công cụ cơ ản và được thiết kế sao cho các nhà phát triển có thể tận dụng tối đ ợi thế của thiết b cầm t y để xây dựng nên các ứng dụng thực sự thuyết phục Họ có thể t o một ứng dụng có thể gọi thực hiện các chức năng õi trong điện tho i như thực hiện cuộc gọi, gửi tin nhắn SMS, ùng c mer … Hay chia sẻ thông tin cá nhân lên trang web chẳn h n như thông tin liên l c, v tr đ a lí, l ch biểu… ác nh phát triển còn có thể làm bất

cứ việc gì trên thiết b Android bởi vì hệ thống Android giao tiếp thông qua các Intents – nó đơn giản là một chuỗi mô tả một h nh động n o đó – ví dụ:

“ n roi provi er Te ephony SMS_RE EIVED” n roi còn cung cấp sẵn các

d ch vụ đ nh v (v đ y một thế m nh của Google) cùng với một tập các ứng

Trang 10

dụng về “M p” với các t nh năng rất ấn tượng như ò đường, tính khoảng cách

đ điểm, tìm b n… Ngoài ra còn có một số t nh năng nổi bật hác như

nim tion v đồng thời cũng hỗ trợ media-playback

Sự phát triển của hệ điều hành Android nổi bật qua các phiên bản chính dành cho điện tho i i động ( n roi 2 3), nh cho t et ( n roi 3 0) … Phiên bản mới nhất hiện nay là Android 4.0.x (Ice Cream Sandwich) là phiên bản dành cho cả smatphone và tablet

1.2.2 Kiến trúc nền tảng Android

Với khả năng rộng rãi của Android, sẽ rất dễ dàng nhầm lẫn nó với một hệ điều

h nh máy t nh để bàn Android là một m i trường phân tầng, xây dựng trên nền của hệ điều hành nhân Linux, và nó bao hàm nhiều chức năng phong phú Hệ thống giao diện người sử dụng gồm có:

Android khoe ra một mảng dồi dào nhiều tùy chọn kết nối, gồm WiFi, Bluetooth

và dữ liệu không dây qua một kết nối i động (như GPRS, EDGE và 3G).Một kỹ thuật phổ biến trong các ứng dụng Android là liên kết tới Google Maps để hiển

th một đ a chỉ trực tiếp trong một ứng dụng Việc hỗ trợ cho các d ch vụ dựa trên

đ điểm (chẳng h n như GPS) v các ụng cụ đo gi tốc cũng có sẵn trong gói phần mềm Android, mặc dù không phải tất cả các thiết b n roi được trang b với các phần cứng cần thiết Ngoài ra còn có cả hỗ trợ máy ảnh nữa (camera)

Về mặt l ch sử, có h i ĩnh vực mà các ứng dụng i động đã gắng sức theo k p các đối tác máy t nh để n đồ họ /đ phương tiện v phương thức ưu trữ dữ liệu Android giải quyết thách thức về đồ họa bằng sự hỗ trợ dựng sẵn cho đồ họa

Trang 11

2D và 3D, gồm cả thƣ viện OpenGL Gánh nặng ƣu trữ dữ liệu đƣợc giảm nhẹ vì nền Android có gồm cả cơ sở dữ liệu SQLite mã nguồn mở phổ biến Hình 1 cho thấy một hung hình đơn giản hóa về các tầng phần mềm Android

Trang 12

thông qua các khuôn khổ ứng dụng n roi Dưới đ y một số các thư viện lõi của Android:

System C library - một BSD-có nguồn gốc thực hiện các hệ thống thư viện chuẩn (LIB ), điều chỉnh cho nhúng dựa trên Linux các thiết b

Media Libraries - dựa trên OpenCORE PacketVideo's; sự hỗ trợ các thư viện phát l i và ghi âm của âm thanh và phổ biến nhiều đ nh d ng vi eo, cũng như các tập tin hình ảnh tĩnh, o gồm MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG Surface Manager - quản lý quyền truy cập vào hệ thống con hiển th và hoàn toàn phù hợp chất 2D và 3D lớp từ nhiều ứng dụng đồ họa

LibWebCore - một trình duyệt web hiện đ i, động cơ có quyền h n cả hai trình duyệt web của Android và một xem nhúng

SGL - các công cụ đồ họa 2D

OpenGLJES – Thư viện đồ họ 2D v 3D

3D libraries - một việc thực hiện dự trên OpenGL ES 1,0 PI; các thư viện, hoặc sử dụng phần cứng tăng tốc 3D (nếu có) hoặc bao gồm, cao tối ưu r sterizer phần mềm 3D

SQLite - một m nh mẽ và nhẹ quan hệ cơ sở dữ liệu có sẵn cho tất cả các ứng dụng

n roi Runtime (Thời gi n ch y n roi )

Android bao gồm một tập các thư viện lõi mà cung cấp hầu hết các chức năng sẵn có trong thư viện cốt lõi của ngôn ngữ lập trình Java

Mỗi ứng dụng Android ch y trong tiến trình riêng của mình, với trường hợp riêng của các máy ảo D vi D vi đã được viết nên một thiết b có thể ch y nhiều máy ảo hiệu quả VM Dalvik thực hiện tác phẩm trong các Executable

D vi ( ex) Đ nh d ng được tối ưu hó cho ộ nhớ tối thiểu VM đăng ý trên, và ch y các lớp học biên so n bởi một trình biên d ch ngôn ngữ J v đã được chuyển th nh các đ nh d ng dex Do dx "bao gồm" công cụ VM Dalvik dựa vào h t nhân Linux cho các chức năng tiềm ẩn như uồng và cấp quản lý bộ nhớ thấp

Tầng pp ic tion Fr mewor

Trang 13

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át triển khả năng để xây dựng các ứng dụng vô cùng phong phú và sáng t o Các nhà phát triển được miễn ph để tận dụng lợi thế của các thiết b phần cứng,

th ng tin đ điểm truy cập, d ch vụ ch y nền, thiết lập hệ thống áo động, thêm các th ng áo đến các thanh tr ng thái, và nhiều, nhiều hơn nữa

Các 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 Kiến trúc ứng dụng được thiết kế để đơn giản hóa việc tái sử dụng các thành phần ơ chế n y cũng cho phép các th nh phần được thay thế bởi người sử dụng

Nằm ên ưới tất cả các ứng dụng là một tập hợp các d ch vụ và hệ thống, bao gồm:

Một tập phong phú và mở rộng của xem có thể được sử dụng để xây dựng một ứng dụng, bao gồm các nh sách, ưới, hộp văn ản, các nút, và thậm chí một trình duyệt web nhúng

Nhà cung cấp nội dung cho phép các ứng dụng để truy cập dữ liệu từ các ứng dụng hác (như ont cts), hoặc chia sẻ dữ liệu của riêng mình

Một quản lý tài nguyên, cung cấp quyền truy cập v o t i nguyên phi mã như y bản đ hoá, đồ họa, và bố trí tập tin

Một Notification Manager cho phép tất cả các ứng dụng tùy chỉnh để hiển th cảnh báo trong thanh tr ng thái

Một Activity Manager quản ý vòng đời của các ứng dụng và cung cấp một backstack phổ biến chuyển hướng

Tầng ứng ụng

Android sẽ ship với một bộ các ứng dụng lõi bao gồm một ứng dụng email, l ch chương trình tin nhắn SMS,, bản đồ, trình duyệt, liên l c, và những người khác Tất cả các ứng dụng được viết bằng cách sử dụng ngôn ngữ lập trình Java 1.2.3 Các công cụ để t o một ứng dụng Android

Để bắt đầu phát triển các ứng dụng Android, chúng ta cần có Bộ công cụ phát triển phần mềm n roi (SDK) v m i trường phát triền tích hợp Eclipse

(Eclipse IDE) Việc phát triển Android có thể diễn ra trên Microsoft Window,

Trang 14

Mac OS X hoặc Linux Trong tiểu luận này, em thực hiện sẽ phát triển ứng dụng Android bằng Microsoft Window

Eclipse IDE:

Các ứng dụng n roi được viết bằng ngôn ngữ J v , nhưng iên ch và thi hành bằng máy ảo Dalvik.Viết mã bằng ngôn ngữ Java trong Eclipse là rất trực quan Eclipse cung cấp một m i trường Java phong phú, gồm cả việc trợ giúp theo ngữ cảnh v các mách nước gợi ý về mã Khi bộ mã J v được biên d ch thành công, Android Developer Tools sẽ đảm bảo rằng ứng dụng đó được đóng gói một cách đúng đắn, gồm cả tập tin AndroidManifest.xml

Android SDK:

Bộ công cụ phát triển ứng dụng Android SDK là công cụ giả lập thiết b ảo trên máy t nh để phát triển ứng dụng với các hàm API hỗ trợ cho những lập trình viên lập trình trên các thiết b i động sử dụng nền tảng Android thông qua ngôn ngữ lập trình Java SDK gồm có:

android.jar : tập tin ưu trữ Java chứa toàn bộ các lớp SDK Android cần thiết để xây dựng ứng dụng

ocumention htm v thư mục docs: tài liệu SDK được cung cấp t i chỗ và trên web, chủ yếu nó ở d ng JavaDocs, t o điều kiện dễ dàng cho việc hướng dẫn trong nhiều gói SDK Tài liệu cũng gồm cả hướng dẫn phát triển mức cao và các liên kết đến cộng đồng Android rộng rãi

Thư mục sample (các ví dụ mẫu): thư mục con samples chứa bộ mã nguồn đầy

đủ dùng cho một lo t các ứng dụng, gồm cả ApiDemo, nó sử dụng nhiềuAPI Ứng dụng mẫu là một nơi hám phá tuyệt vời khi bắt đầu phát triển ứng dụng Android

Thư mục tools (các công cụ): chứa toàn bộ các công cụ dòng lệnh để xây dựng nên các ứng dụng Android Công cụ được dùng phổ biến và hữu ích nhất là tiện ích adb (Android Debug Bridge)

Usb_driver: thư mục chứ các trình điều khiển cần thiết để kết nối m i trường phát triển với một thiết b có khả năng ch y Android, chẳng h n như G1 h y điện

Trang 15

tho i đã được phát triển Android Dev 1 Các tập tin n y đòi hỏi duy nhất đối với các nhà phát triển đ ng sử dụng nền Windows

1.2.4 X y ựng các th nh phần ứng ụng n roi

1.2.4.1 Ho t động(Activity)

Mỗi một ctivity đ i diện cho một màn hình Các ứng dụng phức t p có thể có nhiều hơn một Activity Cần t o một Activity cho mỗi màn hình cần hiển th Cụ thể là ít nhất một m n hình ch nh điều khiển các chức năng của ứng dụng, các activity khác nhằm mục đ ch nhập thông tin, cung cấp các khung nhìn khác nhau trên dữ liệu hoặc hỗ trợ các chức năng hác

Hầu hết các ctivity được thiết kế để chiếm giữ toàn bộ màn hình, tuy nhiên có thể t o các Activity có một nữ độ trong suốt, các Activity nổi, hoặc các dialog

T o một Activity:

Để t o một Activity mới, cần thừa kế từ lớp Activity, sử dụng các View để cung cấp các tương tác với người dùng, khai báo các thành phần giao diện và thực thi các chức năng của ứng dụng

package com.paad.myapplication;

import android.app.Activity;

import android.os.Bundle;

public class MyActivity extends Activity {

/** Called when the activity is first created */

@Override public void onCreate(Bundle icicle) {

super.onCreate(icicle);

} }

Một lớp ctivity cơ ản đư r một màn hình rỗng chứa cửa sổ hiển th Vì vậy việc cần thực hiện đầu tiên là khai báo bố cục cho nó bằng cách sử dụng các View và layout.Activity UI được t o thành bởi các View View các điều khiển giao diện người dùng, hiển th dữ liệu và cung cấp tương tác đến người dùng

Trang 16

Để gắn một giao diện cho một Activity, sử dụng phương thức setContentView trong lớp ctivity được kế thừa

Vòng đời của Activity:

Trang 17

Hình 2 – Vòng đời của Activity

Khởi động một Activity

Để khởi động một Activity, chúng ta dùng Intent:

Kh i áo tường minh: cung cấp chính xác thông tin của activity cần gọi (nếu cùng ứng dụng chỉ cần cung cấp tên class, nếu ứng dụng khác nhau thì cung cấp tên package, tên class)

Intent intent = new Intent(getApplicationContext(),TargetActivity.class);

Trang 18

Với cách khởi động ctivity h ng tường minh, chúng ta cần phải biết một chút

về Intent-filter Intent-filter sẽ giúp một activity đăng ý với hệ thống mình có thể m được thao tác gì, trong nhóm nào, với lo i dữ liệu nào Như vậy khi intent và intent-filter khớp nhau, activity sẽ được hệ thống khởi động

Liên l c giữa 2 activity:

Có thể khởi động một activity với một yêu cầu n o đó và activity kia khi làm xong công việc sẽ trả l i kết quả cho ctivity trước Ví dụ activity A yêu cầu một activity làm giúp việc chụp ảnh, ctivity B đáp ứng được việc này, sau khi user chụp ảnh xong sẽ trả l i file ảnh cho ctivity Để liên l c 2 activity chúng ta làm nhu sau:

Khi khởi động một activity, ta có thể gửi kèm dữ liệu trong intent như v ụ sau: intent.putExtra("value1", new String("Hello"));

intent putExtr (“v ue2", new Long(100));

Bên ph ctivity được khởi động, có thể lấy dữ liệu được gửi như s u:

getIntent().getExtras().getString("value1");

getIntent().getExtras().getLong("value2");

Trình thu phát (BroadcastReceiver)

BroadcastReceiver là một trong bốn lo i thành phần trong ứng dụng

Android.Chức năng của nó là ùng để nhận các sự kiện mà các ứng dụng hoặc hệ thống phát đi

BroadcastReceiver chỉ có duy nhất một phương thức onReceive()

Khi có sự kiện m Bro c stReceiver đã đăng ý nhận được phát đi, thì phương thức onReceive() củ Bro c stReceiver đó sẽ được gọi

Trang 19

Sau khi thực thi xong phương thức này, vòng đời của BroadcastReceiver kết thúc

Một số broadcast thông dụng

Báo hệ thống khởi động xong

Báo pin có sự th y đổi

Báo có package mới cài vào hoặc xó đi

Báo tắt máy

Báo cắm s c, rút s c

Thông báo tin nhắn tới

Thông báo cắm, rút thẻ nhớ

Thông báo có cuộc gọi đi

Broadcast o người phát triển ứng dụng tự đ nh nghĩ (giúp liên l c hoặc thông báo một sự kiện giữa các ứng dụng)

Hàm onReceive()

Phương thức n y được gọi khi có sự kiện tương ứng được phát đi Ở trong

phương thức này, ta truyền vào context (ngữ cảnh) và intent (nơi nhận)

context: vì lớp Receiver không kế thừa từ lớp Context nên cần truyền context mà receiver n y đ ng ch y vào Thứ nhất để có thể xử ý các phương thức yêu cầu truyền thêm Context, thứ h i để sử dụng các phương thức của lớp Context intent: intent được truyền vào sẽ có đầy đủ th ng tin như sự kiện nào mà receiver

n y đăng ý đã xảy ra dẫn đến onReceive() được gọi,có gửi kèm thông tin gì hoặc dữ liệu gì hay không Xem các api:

Trang 20

Dùng để xử lý các thao tác mất thời gian và không nhất thiết phải hiển th lên ctivity ( own o , up o …)

Đ i hi cần một ứng dụng vận hành liên tục để xử lý những việc mong muốn mà không làm phiền người dùng

Làm những thao tác tính toán, xử ý đều đặn n o đó v ết quả hi n o người dùng cần thì mới xem

public void onStart(Intent intent, int startId) {

// TODO: Actions to perform when service is started

}

@Override

public void onCreate() {

// TODO: Actions to perform when service is created

}

@Override

public IBinder onBind(Intent intent) {

// TODO: Replace with service binding implementation

return null;

}

}

Trang 21

Để bắt đầu một Service, sử dụng phương thức startService.Nếu Service yêu cầu quyền truy cập không tồn t i trong ứng dụng thì một ngo i lệ

SecurityException sẽ được đư r ó 2 cách để bắt đầu một Service mới

Cách 1: khởi động ngầm Ví dụ:

startService(new Intent(MyService.MY_ACTION));

Cách 2: khởi động tường minh Ví dụ:

startService(new Intent(this, MyService.class));

Để dừng một Serivce, sử ùng phương thức stopService, truyền vào Intent xác đ nh Service cần ngưng ho t động Ví dụ:

ComponentName service = startService(new Intent(this, BaseballWatch.class)); // ngừng d ch vụ bằng cách xác đ nh tên d ch vụ

stopService(new Intent(this, service.getClass()));

// ngừng d ch vụ bằng cách tường minh

try {

Class serviceClass = Class.forName(service.getClassName());

stopService(new Intent(this, serviceClass));

} catch (ClassNotFoundException e) {}

Vòng đời của Services

Trang 22

Hình 3 – Vòng đời của service

Khi có một context n o đó gọi st rtService() để khởi động một d ch vụ mong muốn Nếu d ch vụ đó chư được t o thì sẽ gọi onCreate() rồi gọi tiếp onStart()

v hi đó d ch vụ ch y nền ên ưới

Nếu s u đó i có một context muốn khởi độngd ch vụ này mà d ch vụ đã đ ng

ch y thì chỉ có phương thức onStart() của d ch vụ được gọi

Dù d ch vụ có được gọi khởi động bao nhiêu lần thì cũng chỉ có thể hiện của d ch

vụ và chỉ cần gọi stopService() một lần để kết thúc d ch vụ

Kết nối d ch vụ

Khi một ctivity được kết nối tới một Service, nó duy trì một tham chiếu đến một thực thể Service Để kết nối đến thực thể này, thực thi phương thức onBin như s u:

private final IBinder binder = new MyBinder();

// tham chiếu đến d ch vụ

private MyService serviceBinder;

// xử lý kết nồi giữa service và activity

Trang 23

private ServiceConnection mConnection = new ServiceConnection() {

public void onServiceConnected(ComponentName className, IBinder

service) {

// đƣợc gọi khi liên kết đƣợc thực hiện serviceBinder = ((MyService.MyBinder)service).getService(); }

public void onServiceDisconnected(ComponentName className) {

// nhận khi d ch vụ ngắt kết nối một cách bất ngờ serviceBinder = null;

Intent bindIntent = new Intent(MyActivity.this, MyService.class);

bindService(bindIntent, mConnection, Context.BIND_AUTO_CREATE); }

Ho t động của bindService(): kết nối d ch vụ

Trang 24

Hình 4 – Hoạt động kết nối dịch vụ

Th ng thường, vòng đời của d ch vụ khi có client kết nối từ đầu như s u:

ũng ắt đầu bằng onCreate() rồi đến onBind() và d ch vụ ch y ưới nền

Khi không còn client kết nối tới thì d ch vụ gọi onUnbind() rồi onDestroy()

Có một số trường hợp h ng th ng thường, ví dụ như:

Có một context khởi động một d ch vụ, s u đó có một số client kết nối (bind) tới service

Có nhiều client cùng lúc kết nối tới d ch vụ

Một activity vừa gọi startService() vừa gọi bindService()

Trình cung cấp nội dung (Content Providers)

Có thể coi trình cung cấp nội dung như một máy chủ cơ sở dữ liệu Công việc của nó là quản lý truy cập và chia sẻ dữ liệu đ ng tồn t i, chẳng h n như một cơ

sở dữ liệu SQLite.Nó có thể được cấu hình để cho phép các ứng dụng khác truy

Trang 25

xuất v ngƣợc l i.Nếu ứng dụng rất đơn giản thì không nhất thiết phải t o ra một trình cung cấp nội dung

Content Provider giúp tách biệt tầng ứng dụng ra khỏi tầng dữ liệu Nó có đầy đủ các quyền điều khiển v đƣợc truy xuất th ng qu m hình URI đơn giảnnhƣ

có thể thêm, xóa, cập nhật dữ liệu của các ứng dụng

T o một Content Provider mới

return true;

} }

Nên cung cấp một biến static CONTENT_URI trả về một URI của provider này Content URI phải là duy nhất giữa các provider, vì thế nên dựa vào tên package

để xác đ nh URI, hình thức chung cho việc đ nh nghĩ một Content Provider URI là:

content://com.<CompanyName>.provider.<ApplicationName>/<DataPath>

Trang 26

ác đơn giản nhất để làm việc này là sử dụng URIMatcher Cấu hình

UriM tcher để phân tích hình thức củ nó hi provi er đ ng được truy xuất đến thông qua một Content Resolver

Đư r truy xuất Data Source:

Có thể cung cấp các truy vấn và thực thi với Content Provdier bằng cách thực hiện các phương thức e ete, insert, up te v query ác phương thức này ho t động như các gi o tiếp chung đến nguồn dữ liệu ên ưới, chúng cho phép các ứng Android chia sẽ dữ liệu với nhau mà không phải t o một giao tiếp riêng cho mỗi ứng dụng

Bước cuối cùng trong quá trình t o một ontent Provi er đ nh nghĩ iểu MIME làkiểu dữ liệu mà Provider trả về, override phương thức getType để trả về một kiểu String mô tả cho kiểu dữ liệu Kiểu trả về bao gồm cả 2 hình thức: trường đơn và tất cả dữ liệu

Trường đơn

vnd.<companyname>.cursor.item/s<contenttype>

Tất cả

vnd.<companyName>.cursor.dir/<contenttype>

Đăng ý Provi er:

Thêm Content Provider vừa t o vào trong manifest.xml Sử dụng thẻ authorities

để chỉ đ nh đ a chỉ của nó:

<provi er n roi :n me=”MyProvi er”

n roi : uthorities=”com p provi er my pp”/>

Truy vấn, thêm, cập nhật và xóa nội dung trong Content Provide

ontent Provi er được truy xuất thông qua lớp Content Resolver.Mỗi một

Context của ứng dụng có một đối tượng ContentResolver, có thể được truy xuất

th ng qu phương thức getContentResolver

Ngày đăng: 23/05/2016, 11:15

HÌNH ẢNH LIÊN QUAN

Hình 1 – Cấu trúc Android - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 1 – Cấu trúc Android (Trang 11)
Hình 2 – Vòng đời của Activity - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 2 – Vòng đời của Activity (Trang 17)
Hình 4 – Hoạt động kết nối dịch vụ - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 4 – Hoạt động kết nối dịch vụ (Trang 24)
Hình 5  -  Quan hệ giữa các thành phần trên - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 5 - Quan hệ giữa các thành phần trên (Trang 29)
Hình 6 - Hệ thống các view với các thông số layout được kết nối với mỗi View - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 6 Hệ thống các view với các thông số layout được kết nối với mỗi View (Trang 31)
Hình 8 – Expanded menu - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 8 – Expanded menu (Trang 34)
Hình 7 – Icon menu - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 7 – Icon menu (Trang 34)
Hình 9 - Submenu - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 9 Submenu (Trang 35)
Hình 10: Biểu đồ UseCase tổng quát - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 10 Biểu đồ UseCase tổng quát (Trang 44)
Hình 16: Giao diện chính – hiển thị danh sách liên lạc - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 16 Giao diện chính – hiển thị danh sách liên lạc (Trang 47)
Hình 17: Giao diện tìm kiếm - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 17 Giao diện tìm kiếm (Trang 48)
Hình 19: Giao diện menu chọn ch   n ng   a, xóa - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 19 Giao diện menu chọn ch n ng a, xóa (Trang 49)
Hình 18: Giao diện thêm và s a thông tin liên lạc - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 18 Giao diện thêm và s a thông tin liên lạc (Trang 49)
Hình 20: Giao diện menu chọn ch   n ng t  m mới - Tìm hiểu lập trình android và xây dựng ứng dụng quản lý contacts demo
Hình 20 Giao diện menu chọn ch n ng t m mới (Trang 50)

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