Tải bản đầy đủ

XÂY DỰNG ỨNG DỤNG CHO PHÉP THEO dõi, GIÁM sát NGƯỜI DÙNG TRÊN THIẾT bị DI ĐỘNG

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG CHO PHÉP
THEO DÕI, GIÁM SÁT NGƯỜI DÙNG
TRÊN THIẾT BỊ DI ĐỘNG
Ngành
Niên khoá
Lớp
Sinh viên thực hiện

: CNTT
: 2010-2014
: DH10DT
: Nguyễn Đức Duy
Lê Đăng Tỉnh

TP.HỒ CHÍ MINH, tháng 9 năm 2014



BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG CHO PHÉP
THEO DÕI, GIÁM SÁT NGƯỜI DÙNG
TRÊN THIẾT BỊ DI ĐỘNG
Giáo viên hướng dẫn:

Sinh viên thực hiện:

Ths. Phạm Công Thiện

Nguyễn Đức Duy
Lê Đăng Tỉnh

TP.HỒ CHÍ MINH, tháng 9 năm 2014

CÔNG TRÌNH HOÀN TẤT TẠI
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM


Cán bộ hướng dẫn: Thạc Sĩ Phạm Công Thiện

Cán bộ phản biện: Tiến Sĩ Phạm Văn Tính

Luận văn cử nhân được bảo vệ tại:
HỘI ĐỒNG CHẤM LUẬN VĂN CỬ NHÂN TRƯỜNG ĐẠI HỌC NÔNG LÂM
TP HCM ngày 5 tháng 9 năm 2014
Bộ Giáo Dục và Đào Tạo

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Trường ĐH NÔNG LÂM TpHCM

Độc Lập-Tự Do-Hạnh Phúc


NHIỆM VỤ LUẬN VĂN CỬ NHÂN
Họ tên sinh viên: Lê Đăng Tĩnh
Ngày tháng năm sinh: 05/03/1992
Chuyên ngành: Công nghệ phần mềm
Phái: Nam
Nơi sinh: Lâm Đồng
Ngành: CNTT
Họ tên sinh viên: NGUYỄN ĐỨC DUY


Ngày tháng năm sinh: 16/08/1992
Chuyên ngành: Công nghệ phần mềm
Phái: Nam
Nơi sinh: Nha Trang
Ngành: CNTT

I. TÊN ĐỀ TÀI: Xây dựng ứng dụng cho phép theo dõi, giám sát người dùng
trên thiết bị di động.
II. NHIỆM VỤ VÀ NỘI DUNG
Mục đích và nhiệm vụ nghiên cứu đề tài:
- Xây dụng ứng dụng cung cấp các chức năng theo dõi, giám sát, định vị điện
thoại, các máy tính bảng, các thiết bị di động khác có kết nối mạng.
o Tự sao lưu danh bạ của thiết bị bị theo dõi về server.
o Theo dõi vị trí thiết bị di động theo ngày hiện tại và lịch sử vị trí trước
đó.
o Theo dõi lịch sử tin nhắn gửi và nhận theo ngày hiện tại và lịch sử tin
nhắn các ngày trước đó với thông tin đầy đủ về nội dung, người gởi,
tên lưu trong danh bạ, thời gian.
o Theo dõi cuộc gọi đi và cuộc gọi đến.
- Đối tượng sử dụng: tất cả những người có nhu cầu giám sát, giúp phụ huynh
giám sát con nhỏ, hỗ trợ tìm lại thiết bị khi bị mất.
- Chức năng nâng cao: Chương trình phải chạy ẩn trong thiết bị.Thông tin về vị
trí, tin nhắn và cuộc gọi ( nếu có ) sẽ tự động gởi về server sau 30 phút và tự
động bật 3G nếu thiết bị chưa bật và tắt khi gởi đi thành công.
Nội dung nghiên cứu:
Công nghệ sẽ được tìm hiểu và sử dụng trong quá trình thực hiện đề tài:
- Lập trình trên thiết bị di động
- GPS
- HTML5, Ajax, Jquery
- Kiểm thử tự động trên thiết bị di động
Kết quả sẽ là bộ giải pháp sử dụng tất cả các công nghệ trên đê thực hiện được đề
tài.
III. NGÀY GIAO NHIỆM VỤ:
IV. NGÀY HOÀN THÀNH NHIỆM VỤ:
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Thạc Sĩ Phạm Công Thiện

Ngày /

/

CÁN BỘ HƯỚNG
DẪN

Ngày /

/

CHỦ NHIỆM CHUYÊN
NGÀNH

Ngày /

/

KHOA CNTT


LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Ban giám hiệu trường Đại học Nông Lâm TP Hồ Chí Minh, quý thầy cô
trường Đại học Nông Lâm TP Hồ Chí Minh.
Xin chân thành cảm ơn thầy Phạm Công Thiện đã tận tình hướng dẫn, chỉ bảo cho chúng em trong suốt thời
gian thực hiện đề tài.
Xin chân thành cảm ơn quý thầy cô bộ môn Công nghệ phần mềm khoa Công nghệ thông tin đã tận tình
giúp đỡ chúng em trong suốt những năm học qua và trong thời gian thực hiện luận văn tốt nghiệp.
Xin tỏ lòng biết ơn sâu sắc đến cha mẹ cùng các anh em trong gia đình đã tạo mọi điều kiện cho chúng em
học tập.
Chân thành cảm ơn tất cả các bạn khoa Công nghệ thông tin trường Đại học Nông Lâm đã tận tình giúp đỡ,
chỉ dẫn cho chúng tôi trong suốt thời gian thực tập tốt nghiệp.
Cảm ơn tất cả các bạn lớp Đại Học DH10DT và những người thân đã chia sẻ, giúp đỡ, động viên chúng tôi
trong suốt những năm học qua.

TP HCM, ngày 5 tháng 9 năm 2014
NHÓM THỰC HIỆN


Nhận xét của giáo viên hướng dẫn
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

Nhận xét của giáo viên phản biện
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................


.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

Mục Lục


Danh Mục Hình

Danh Mục Bảng


CHƯƠNG 1:

GIỚI THIỆU ĐỀ TÀI

1. Đặt vấn đề
Trong sự phát triển nhanh chóng của lĩnh vực truyền thông nói chung thì Công nghệ
thông tin đã và đang đóng vai trò hết sức quan trọng trong đời sống kinh tế, xã hội
của nhiều quốc gia trên thế giới, là một phần không thể thiếu trong một xã hội ngày
càng hiện đại hóa. Chúng ta không thể không nhắc đến sự ra đời một cách nhanh
chóng của nhiều thiết bị công nghệ. Trong đó các điện thoại di động đã trở thành
những công cụ tiện ích không thể thiếu trong đời sống của chúng ta.
Cùng với sự phát triển mạnh mẽ của thị trường điện thoại di động là sự phát triển
mạnh mẻ của xu hướng lập trình phần mềm ứng dụng cho thiết bị di động. Phần
mềm ứng dụng cho điện thoại di động hiện nay rất đa đạng phong phú. Các hệ điều
hành cho điện thoại di động cũng đang phát triển mạnh mẽ và thay đổi từng ngày.
Các hệ điều hành Android, IOS, WinPhone… đã phát triển hết sức mạnh mẽ trên thị
trường thiết bị di động.
Trong vài năm trở lại đây,nhà phát triển công nghệ Google đã cho ra đời hệ điều
hành Android với sự kế thừa những ưu việt của các hệ điều hành ra đời trước nó và
sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay. Android đã nhanh chóng là
đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó và đang là hệ điều hành
di động của tương lai và được nhiều người ưa chuộng nhất.
Bên cạnh đó sự cạnh tranh phát triển giữa các công ty sản xuất điện thoại di động đã
là cho mẫu mã, tính năng, tiện ích ngày càng hiện đại. Giá thành sản phẩm ngày
càng rẻ, đa dạng chủng loại, và mức giá khác nhau phù hợp với thị hiếu của mọi đối
tượng sử dụng. Chính vì vậy ngay cả với những người nhỏ tuổi cũng đã được tiếp
súc và sở hữu chúng.
Chính vì vậy, hiện nay việc giám sát, theo dõi các thiết bị điện thoại di động nhằm
giúp phụ huynh giám sát việc sử dụng điên thoại của các con nhỏ hoặc quản lý lưu
trữ thông tin điện thoai của mình, tìm lại thiết bị khi bị mất dựa vào thông tin lưu trữ
là một nhu cầu cần thiết.
Từ những luận điểm, chúng tôi đã quyết định chọn đề tài “Xây dựng ứng dụng cho
phép theo dõi, giám sát người dùng trên thiết bị di động” với mục đích nghiên cứu


tìm hiểu hệ điều hành Android và các công nghệ đi kèm để xây dựng đề tài trên để
đáp ứng nhu cầu hiện nạy của người dùng.
2. Mục đích, đối tượng và phạm vi nghiên cứu
2.1. Mục đích nghiên cứu
Xây dựng ứng dụng cho phép theo dõi, giám sát người dùng trên thiết bị di động
trên hệ điều hành Android.
2.2. Đối tượng và phạm vi nghiên cứu
Nghiên cứu về hệ điều hành Android và các kỹ thuật công nghệ để xây dựng một
ứng dụng Android hoàn chỉnh.
2.3. Kết quả, mục tiêu cần đạt được.
Hiểu rõ về hệ điều hành Android và các công nghệ hỗ trợ khác để xây dựng được
ứng dụng Android.
Áp dụng các công nghệ cần thiết để xây dựng nên ứng dụng trên.

CHƯƠNG 2:

TỔNG QUAN VỀ ANDROID

1. Giới thiệu về hệ điều hành Android

Hình 2. Logo Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các
thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.
Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính


từ Google và sau này được chính Google mua lại vào năm 2005.Android ra mắt vào
năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay: một hiệp hội gồm
các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đấy mạnh các tiêu
chuẩn mở cho các thiết bị di động.Chiếc điện thoại đầu tiên chạy Android được bán
vào tháng 10 năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache.
Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép
các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều
chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một cộng
đồng lập trình viên đông đảo chuyên viết các ứng dụng đế mở rộng chức năng của
thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi.Vào tháng 10 năm 2012,
có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play,
cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phố
biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty công
nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh,
và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu.
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời điếm
quý 3 năm 2012, với tống cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệu lượt
kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó trở thành mục
tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc
chiến điện thoại thông minh" giữa các công ty công nghệ.
2. Kiến trúc Android.
Những tính năng mà nền tảng Android hổ trợ:


Application framework: Cho phép tái sử dụng và thay thế các thành phần sẳn

có của Android.
• Dalvik virtual macine: Máy ảo java được tối ưu hóa cho thiết bị di động.
• Intergrated browser: Trình duyệt web tích hợp được xây dựng dựa


trên WebKit engine.
Optimized graphics: Hổ trợ bộ thư viện 2D và 3D dự vào đặc tả OpenGL ES
1.0.





SQLite: DBMS dùng để lưu trữ dữ liệu có cấu trúc.
Hổ trở các định dạng media phổ biến như: MPEG4, H.264, MP3, AAC,






ARM, JPG, PNG, GIF.
Hổ trợ thoại trên nền tảng GSM (Phụ thuộc vài phần cứng thiết bị).
Bluetooth, EDGE, 3G và WiFi (Phụ thuộc vài phần cứng thiết bị).
Camera, GPS, la bàn và cảm biến (Phụ thuộc vài phần cứng thiết bị).
Bộ công cụ phát triển ứng dụng mạnh mẽ.

Hình 2. Mô hình kiến trúc Android


Hình 2. Mô hình kiến trúc Android mở rộng
2.1. Linux Kernel
Hệ điều hành Android được phát triển dựa trên hạt nhân Linux phiên bản 2.6, kể từ
Android 4.0 Ice Cream Sandwich (bánh ngọt kẹp kem) trở về sau, là phiên bản 3.x,
điều đó được thể hiện ở tầng dưới cùng này. Tất cả mọi hoạt động của điện thoại
muốn thi hành được thì đều phải được thực hiện ở mức cấp thấp ở tầng này bao gồm
quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model),


thực hiện bảo mật (security), quản lý tiến trình (process). Bộ nhân Linux này làm
nhiệm vụ như một lớp trung gian kết nối phần cứng thiết bị và phần ứng dụng.

Hình 2. Các thành phần của nhân Linux
2.2. Library

Hình 2. Android Libraries
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ành phầ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.
2.3. Android Runtime
Chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động.
Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường. Thứ
nhất là các thư viện lõi (Core Library), chứa các lớp như JAVA IO, Collections, File
Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine).
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều
hành android không được chạy bằng JRE(Java Runtime Environment) của Sun (nay
là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik.


2.4. 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át
triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển
được tự do tận dụng các thiết bị phần cứng, thông tin địa đ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.

Hình 2. Application Framework
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ản hó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ăng củ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ành phần tương tự sẽ được thay
thế bởi người sử dụng.
2.5. 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 cài đặt đi liền với hệ điều hành là 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), đọc
e-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh (camera), v.v… 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 widget các ứng dụng của bên thứ 3…
3. 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 Development
Enveronment) này để phát triển, debugging và testing cho ứng dụng. Tuy nhiên, các


coder 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,
nghe phone, nguồn điện giả lập, Bluetooth, lag và chậm. Tuy nhiên ta có thể sài
Emulator bên thứ 3 tốt hơn là Genymotion (xem phụ lục).
4. Các thành phần tạo nên 1 ứng dụng Android
Việc hiểu được các thành phần (component) tạo nên một ứng dụng Android là rất
cần thiết cho việc lập trình. Các thành phần này được chia làm các loại bao gồm:
4.1. Activity
Là một thành phần của ứng dụng cung cấp một giao diện màn hình mà người dùng
có thể tương tác vào đó để thực hiện một hành động nào đó ví dụ như: gọi điện, gửi
email, gửi sms …
Một ứng dụng có thể gồm chỉ một activity hay nhiều activity. Thông thường, một
trong số các activity được đánh dấu như là activity đầu tiên phải được trình diễn tới
người dùng khi ứng dụng được khởi động. Chuyển từ một activity sang activity khác
được hoàn thành bằng cách cho activity hiện thời gọi khởi động activity kế tiếp.
Mỗi activity đảm nhận việc tạo ra một cửa sổ (window) để người lập trình đặt lên đó
một giao diện UI với setContentView(View). Một activity có thể mang nhiều dạng
khác nhau:




Một cửa sổ toàn màn hình (full screen window)
Một cửa sổ floating (với windowsIsFloating)
Nằm lồng bên trong 1 activity khác (với ActivityGroup).

Để có thể sử dụng trong ứng dụng, mọi activity đều phải được khai báo
trong tệp AndroidManifest.xml với một thẻ


Hình 2. Khai báo activity trong file AndroidManifest.xml
Các Activity được quản lí trong một stack chứa activity (Cơ chế vào trước ra sau).
Khi ứng dụng được mở lên thi activity chính sẽ được tạo ra, nó sẽ được thêm vào
stack. Khi một activity mới được khởi tạo, nó sẽ được đặt lên trên cùng của stack.
Lúc này chỉ có duy nhất Activity trên cùng là hiển thị nội dung đến người dùng. Tất
cả các Activity còn lại đều chuyển về trạng thái dừng hoạt động. Khi một
Activity bị đóng nó sẽ bị loại khỏi stack. Lúc này Activity nằm dưới đó sẽ chuyển từ
trạng thái tạm dừng sang trạng thái hoạt động.


Hình 2. Sơ đồ trạng thái của một Activity
Với mỗi Activity thường vòng đời có 4 trạng thái sau:


Running (đang kích hoạt): Khi màn hình là Foreground (Activity nằm trên

cùng ứng dụng và cho phép người sử dụng tương tác)
• Paused (tạm dừng): Activity bị mất focus nhưng mà vẫn nhìn thấy được


Activity này (Ví dụ bạn mở một Activity mới lên dưới dạng Dialog).
Stopped (dừng – không phải Destroyed): Activity mất focus và không nhìn

thấy được (ví dụ bạn mở một Activity mới lên mà Full màn hình chẳng hạn).
• Destroyed (hủy): Hủy khi bộ nhớ cần cho việc khác ưu tiên hơn hoặc bộ nhớ
còn quá ít.


Hình 2. Vòng đời của một Activity
Ba vòng đời quan trọng trong Activity:


Entire Lifetime: Diễn ra từ lần gọi onCreate(Bundle) đầu tiên và kéo dài tới

lần gọi onDestroy() cuối cùng.
• Visible Lifetime: Diễn ra từ khi gọi onStart() và kéo dài tới khi gọi onStop().
Ở vòng đời này, activity được hiển thị trên màn hình mặc dù có thể nó không
thể tương tác với người dùng (Activity có thể bị đè bởi một Activity trong
suốt hoặc một Activity không chiếm toàn bộ màn hình thiết bị(non-fullsized)).
• Foreground Lifetime: Diễn ra từ khi gọi onResume() và kéo dài tới khi gọi
onPause(). Ở vòng đời này, activity nằm trên mọi activity khác và tương tác
được với người dùng. Một activity có thể liên tục thay đổi giữa hai trạng thái
Paused và Resumed.


4.2. Intent
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ác nhau. 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.

Hình 2. Truyền dữ liệu giữa 2 Activity
Dữ liệu của Intent:
Intent về cơ bản là một cấu trúc dữ liệu, được mô tả trong lớp android.content.Intent
Thuộc tính chính

Thuộc tính phụ

Action
- Tên (string) của action mà Intent sẽ
yêu cầu thực hiện
- Có thể là action được Android được
định nghĩa sẵn (built-in-standard
action) hoặc do người dùng tự định
nghĩa.

Category
- Thông tin về nhóm của action

Data
- Dữ liệu mà Activity được gọi để sử

- Định dạng Uri (thông qua hàm
Uri.parse(data))

Component
- Chỉ định cụ thể lớp sẽ thực thi Activity
- Khi được xác định, các thuộc tính khác
sẽ trở thành không bắt buộc (optional)

Type
- Định dạng dữ liệu (chuẩn MIME)
- Thường được tự động xác định

Extras
- Chứa tất cả các cặp (key, value) do ứng
dụng thêm vào để truyền qua Intent (cấu
trúc Bundle)
Bảng 2. Các thuộc tính của một đối tượng Intent
Các Action được định nghĩa sẵn:
Dưới đây là những hằng String đã được định nghĩa sẵn trong lớp Intent. Đi kèm với
nó là các Activity hay Application được xâ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).


VD: Gọi tới một số điện thoại:
Intent dialIntent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:123456"));
startActivity(dialIntent);

Hình 2. Các Action đã được định nghĩa sẵn trong Intent
4.3. Service
Một service không có giao diện trực quan, nó chạy ẩn trong hệ thống. Ví dụ một
service có thể upload dữ liệu lên sever hoặc tính toán sử lý các tác vụ ẩn như tracker
SMM, Call.
Giống như các activity và các thành phần khác khác, service chạy trong thread chính
của tiến trình ứng dụng. Vì thế chúng không thể chặn những thành phần khác hay
giao diện người dùng, chúng thường tạo ra các thead khác cho các nhiệm vụ hao tốn
thời gian.


Hình 2. Chu trình sống của một Service
Khi có một context nào đó gọi startService() để start service mong muốn. Nếu
service đó chưa được tạo thì sẽ gọi onCreate() rồi gọi tiếp onStart() và khi đó service
chạy nền bên dưới.
Nếu sau đó lại có một context muốn start service này mà service đã đang chạy, chỉ
có phương thức onStart() của service được gọi.
Dù service có được gọi start bao nhiêu lần thì cũng chỉ có 1 instance của service và
chỉ cần gọi stopService() một lần để kết thúc service.
Có 2 kiểu để start Service:


Sử dụng phương thức startService() : thường được xử dụng để thực thi một

hành động đơn và có thể không return lại kết quả (ví dụ như chơi nhạc)
• Sử dụng bindService(): cung cấp một interface dạng client-server cho phép
apps có thể “conversation” (nói chuyện, tương tác) với service
Tương tự như activity muốn startService thì app cần phải khai báo trong
AndroidManifest.xml


Hình 2. Khai báo service trong file AndroidManifest.xml
4.4. Broadcast Receiver
Broadcast Receiver là một trong các thành phần chính của android có thể hiểu nó
như một bộ thu các bản tin cần thiết cho apps. Các bản tin được thu ở đây chính là
các intent. Các bạn có thể thu các Intent sẵn có của hệ điều hành ví dụ như: tin nhắn
đến, cuộc gọi đến, trạng thái của điện thoại, trạng thái của pin… Ngoài ra các bạn
cũng có thể thu Intent của chính các bạn gửi ra để làm một nhiệm vụ gì đó (có thể
dùng để start service khi cần).
Ta có 2 cách đăng ký Broadcast Receiver:
Đăng ký trong coding: Lắng nghe mọi thứ trong Intent- filter (nếu tắt ứng dụng sẽ
không lắng nghe) bằng cách sử dụng hàm registerReceiver(receiver, filter).

Hình 2. Code đăng ký Broadcast Receiver lắng nghe cuộc gọi
Đăng ký trong Manifest: Nó trở thành dịch vụ, tự động lắng nghe mọi thứ trong
Intent – filter (kể cả khi đã đóng ứng dụng)

Hình 2. Manifest đăng ký Broadcast Receiver lắng nghe việc boot điện thoại


4.5. Content Provider
Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả dụng cho
các ứng dụng khác. Dữ liệu có thể được lưu trữ trong hệ thống file, trong một cơ sở
dữ liệu SQLite, hay trong một cách khác nào đó. Content provider cài đặt một tập
các chuẩn các phương thức cho phép các ứng dụng khác đạt được và lưu trữ dữ liệu
của kiểu mà nó điều khiển. Tuy nhiên, các ứng dụng không gọi trực tiếp các phương
thức này, chúng sử dụng một đối tượng ContentResolver và gọi các phương thức của
nó. Một ContentResolver có thể nói chuyện với bất cứ content provider nào, chúng
cộng tác với provider để quản lý giao tiếp liên tiến trình.
4.6. Manifest File
Trước khi Android có thể khởi động một thành phần ứng dụng, nó phải biết rằng
thành phần đó tồn tại. Vì vậy, ứng dụng khai báo những thành phần của mình trong
một manifest file được gắn vào Android package, file .apk này cũng giữ chứa mã
của ứng dụng và các tài nguyên.
Manifest file là một file XML có cấu trúc và thường được đặt tên là
AndroidManifest.xml cho mọi ứng dụng. Nó thực hiện một số bổ sung để khai báo
các thành phần của ứng dụng, như là nêu tên các thư viện ứng dụng cần đến, và xác
định các quyền hạn của ứng dụng muốn được cấp.
Ví dụ như nó khai báo các Activity trong chương trình của chúng ta, khi khởi động
chương trình thì Activity nào sẽ được thực hiện đầu tiên, các quyền truy cập
Internet, SDCard, hay các vấn đề về gửi nhận tin nhắn, cuộc gọi, v.v…
4.7. Các thành phần giao diện Layout, Widget
Có rất nhiều cách bố trí giao diện. Mỗi giao diện được thế kế trong một file xlm gọi
là layout. Có nhiều loại layout như LinearLayout, RelativeLayout, TableLayout,
GridLayout và khác. Mỗi cung cấp một bộ duy nhất của các thông số bố trí được sử
dụng để xác định vị trí của views con và cơ cấu layout.
Widget là một đối tượng View phục vụ như một giao diện để tương tác với người
dùng. Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các button,
Checkbox,TextView,… do đó bạn có thể nhanh chóng xây dựng giao diện người


dùng một cách dễ dàng. Ngoài ra còn có một số widgets phức tạp hơn như date
picker, clock, và zoom controls.
4.8. Bắt sự kiện trong Android
Khi đã thêm một số Views/widgets đến giao diện. Để bắt sự kiện người dùng tương
tác với giao diện ta cần phải xác định một sự kiện lắng nghe và đăng ký nó với các
View.
Ví dụ:
View.OnClickListener (để xử lý "nhấp chuột" trên một View)
View.OnTouchListener (để xử lý các sự kiện màn hình cảm ứng trong một View)
Vì vậy nếu muốn bắt sự kiện "clicked" (chẳng hạn như khi một nút được chọn), ta
cần xác định OnClickListener của nó gọi method onClick() (nơi thực hiện các hành
động sau khi nhấp chuột), và đăng ký nó vào Xem với setOnClickListener().
4.9. Android SQLite Database
4.9.1. SQLite là gì
SQLite là một cơ sở dữ liệu mã nguồn mở được nhúng vào Android. SQLite hỗ trợ
các tính năng cơ sở dữ liệu quan hệ tiêu chuẩn như cú pháp SQL, transactions và
prepared statements. Ngoài ra nó chỉ đòi hỏi bộ nhớ ít khi chạy (khoảng 250 Kbyte).
SQLite hỗ trợ các loại dữ liệu TEXT (tương tự như String trong Java), INTEGER
(tương tự như Long trong Java) và REAL (tương tự như Double trong Java).
4.9.2. SQLite trong Android
SQLite có sẵn trên tất cả các thiết bị Android. Để sử dụng cơ sở dữ liệu SQLite
trong Android ta không cần thiết lập hay cài đặt thêm gì cả. Bạn chỉ việc sử dụng
SQL để làm việc với database và database sẽ được tự động quản lý cho bạn.
Làm việc với database có thể chậm vì thế nên thực hiện các công việc với database
thông qua AsyncTask.
Nếu ứng dụng của bạn tạo ra một cơ sở dữ liệu cơ sở dữ liệu này được lưu trong
đường dẫn data/ data//database/FILENAME.DATA.


x

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×