thiết kế phần mềm tìm kiếm trên bản đồ số của google maps dựa trên nền tảng android dành cho điện thoại di động - Pdf 14



HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP HỆ ĐẠI HỌC

Ngành : Công Nghệ Thông Tin Hệ : Chính quy
Niên khóa : 2005-2010

Đề tài :
THIẾT KẾ PHẦN MỀM TÌM KIẾM TRÊN
BẢN ĐỒ SỐ CỦA GOOGLE MAPS DỰA
TRÊN NỀN TẢNG ANDROID DÀNH CHO
ĐIỆN THOẠI DI ĐỘNG

Giáo viên hướng dẫn : Ninh Xuân Hải
Sinh viên thực hiện : Vũ Đức Mạnh
Mã số sinh viên : 405170038

Năm 2009
…………………………………………………………………………………
…………………………………………………………………………………
4. Những thiếu sót chính của đồ án tốt nghiệp:
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
5. Đề nghị : Được bảo vệ
Bổ sung thêm để bảo vệ Không được bảo vệ
6. Đánh giá chung: Điểm số :………./10; Điểm chữ:…………………………………

Xác nhận của Bộ môn/ Khoa Giáo viên hướng dẫn

CƠ SỞ THÀNH PHỐ HỒ CHÍ MINH
Độc Lập – Tự Do – Hạnh Phúc
Thành phố Hồ Chí Minh, ngày…tháng … năm 200…
PHIẾU NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP HỆ ĐẠI HỌC
(Dành cho người đọc duyệt – Biểu 3)
1. Tên đề tài tốt nghiệp:…………………………………………………………
…………………………………………………………………………………
Mã đề tài:……………
2. Họ tên sinh viên thực hiện:…………………………Lớp:……………………
Ngày sinh:………………………………………… MSSV:………………
3. Tổng quát về số liệu các kết quả thực hiện:
Số trang:………………………………… Số chương (phần):………………
Số bảng số liệu:………………………… Số hình vẽ:………………………
Số tài liệu tham khảo:…………………… Phần mềm sử dụng:……………


Vũ Đức Mạnh – Đ05THA1

Lời cảm ơn

Sau

những

năm

học

tại

trường,

em

đã được

học



tiếp thu

nhiều

kiến


thương,

tình

cảm

trìu

mến

của bạn

bè.
đây


khoảng

thời

gian

này

ý

nghĩa.
Đ




xin

chân

thành

cảm

ơn

khoa
c
ông
n
ghệ
t
hông

tin
II,

Học

viện
c
ông
n
ghệ
b


thành

tốt

đề tài
thực

tập

tốt

nghiệp

này.Em

xin

gởi

lời

cảm

ơn

chân

thành

đề

tài

thực tập

tốt

nghiệp

này.Em

xin

gởi

lời

cảm

ơn

quý

thầy


báu

trong suốt

quá

trình

học

tập

tại

trường.Một

lần

nữa,

em

xin

chân


1.3 Sự phát triển của Android………………………………………………… 3
1.3.1 Điều kiện phát triển……………………………………………… 3
1.3.2 Xu hướng phát triển………………………………………….……….5
Chương II : Tổng quan các thành phần của Android………………….… 7
1.1 Những đặc trưng của và kiến trúc của Android………………….…….… 7
1.1.1 Những đặc trưng của Android……………………………… …… 7

1.1.2 Tổng quan kiến trúc của Android…………………………… …… 7

1.2 Các quy tắc cơ bản của ứng dụng trong Android………………….……… 9

1.2.1 Khái quát các thành phần ứng dụng của Android……………… 10

1.2.2 Activities và Tasks………………………………………………… 14

1.2.3 Processes và Threads……………………………………………… 16

1.2.4 Vòng đời của Android…………………………………………….…19
Chương III : Trình bày một số công cụ lập trình trên Android… 30
1.1 Cài đặt bộ công cụ Android SDK và plugin (ADT) cho Eclipse………… 30
1.2 Tổng quan các công cụ được dùng trong bộ Android SDK……………… 30
1.2.1 Khái quát các công cụ trong Android SDK……………………… 33
1.2.2 Android Emulator……………………………………………………36
1.2.2.a Tổng quan Emulator……………………………………… 37
Báo cáo Đồ án tốt nghiệp

Vũ Đức Mạnh-D05THA1 i

1.2.2.b Khởi động và dừng Emulator……………………………….37
1.2.2.c AVDs và Emulator………………………………………….38

Hình 1.2 Các thành phần trong liên minh OHA 3
Hình 1.3 Một số nền tảng lập trình di động 5
Hình 1.4 Điện thoại HTC Dream (G1) 6
Hình 2.1 Sơ đồ các thành phần chính của hệ điều hành Android 8
Hình 2.2 Sơ đồ lớp IBinder 18
Hình 2.3 Biểu đồ minh họa vòng đời lớp Activity 22
Hình 2.4 Vòng đời của Service 27
Hình 3.1 Hộp thoại Environment Variables 31
Hình 3.2 Hộp thoại New Project 61
Hình 3.3 Hộp thoại New Android Project 62
Hình 3.4 Giao diện thực thi của ứng dụng Hello World 64
Hình 3.5 Dùng keytool để lấy mã MD5 65
Hình 3.6 Tạo AVD cho dự án 66
Hình 3.7 Tạo dự án AppMapView 67
Hình 3.8 Giao diện thực thi của AppMapView 71 Báo cáo Đồ án tốt nghiệp

Vũ Đức Mạnh – Đ05THA1 iii
Các thuật ngữ
Activitiiy Lớp khởi tạo giao diện trên Android
Android Emulator Bộ mô phỏng của Android
Broadcast receivers Các máy thu gói tin quảng bá
Caches Bộ nhớ đệm
Callback Cuộc gọi lại
Category Chuyên mục
Client Khách hang
Code Mã nguồn của ứng dụng
Console emulator Mô phỏng bảng điều khiển

QWERT Là kiểu trình bày bàn phím phổ biến nhất

Báo cáo Đồ án tốt nghiệp

Vũ Đức Mạnh-D05THA1 iv

Từ viết tắt
3G Third-generation technology Công nghệ truyền thông thế
hệ thứ ba
ADT

Android Development Tools Một công cụ phát triển
android
AIDL Android Interface Description
Language
Một công cụ của android sdk
ARM Acorn RISC Machine Cấu trúc vi xử lý 32-bit
AVD Android Virtual Devices Thiết bị ảo cấu hình cho
những ứng dụng android
BSD BerKeley Software Distribution Tên của một hệ điều hành dẫn
xuất từ UNIX
DNS Domain Name System Hệ thống phân giải tên miền
DPI Dot Per Inch Đơn vị chỉ số lượng điểm trên
một inch vuông
EDGE Enhanced Data Rates for GSM
Evolution
Một công nghệ di động được
nâng cấp từ GPRS
EGPRS Enhanced GPRS Một công nghệ di động được
nâng cấp từ GPRS


Vũ Đức Mạnh-D05THA1 iv

NMEA National Marine Electronics
Association
Định nghĩa tổng hợp điện tử
và dữ liệu
OHA Open Handset Alliance Liên minh thiết bị cầm tay mở
OSX Mac OS X Dòng hệ điều hành đồ họa độc
quyền của Apple
Ping Packet Internet Grouper Công cụ cho mạng máy tính
sử dụng trên các mạng
TCP/IP
RPC Remote Procedure Call Một mở rộng của lời gọi hàm
SDK Software development kit Gói phần mềm phát triển
Tcp Transmission Control Protocol Giao thức điều khiển truyền
vận
Udp User Datagram Protocol Một giao thức truyền tải cốt
lõi bên cạnh TCP trong bộ
giao thức TCP/IP
UMTS Universal Mobile
Telecommunications System
Mạng di động thế hệ thứ 3 Báo cáo Đồ án tốt nghiệp

Vũ Đức Mạnh-D05THA1 Trang 1

Lời Mở Đầu

Dự án xây dựng nền tảng nguồn mở cho những chiếc điện thoại Android của
Google tuy còn đang phát triển nhưng đã tạo nên khá nhiều sự quan tâm và tò mò của
những người yêu thích công nghệ,những lời đồn thổi xung quanh những từ về công nghệ
điện thoại đại loại “Gphone” hay “Google Phone” với những chức năng hiếm có xuất hiện
từ cuối năm 2004 đã tốn khá nhiều giấy mực của giới báo chí, truyền thông.
Trong
buổi giới thiệu về Android vào cuối năm 2007, lãnh đạo của Google – ông
Eric Schmidt cho biết Google đã lập tổ chức Open Handset Alliance (OHA – một tổ chức
đa quốc gia) bao gồm 34 thành viên
với các công ty hàng đầu về công nghệ và di động
toàn cầu như Qualcomm, Intel, Motorola, Texas Instruments và LG Electronics, các nhà
mạng như T-Mobile, Sprint Nextel, NTT DoCoMo và China Mobile…. nhằm tập trung
xây dựng một chiếc điện thoại di động tốt hơn dựa trên hệ điều hành Android – một hệ
điều hành mã nguồn mở dùng cho tất cả các thiết bị cầm tay.
Báo cáo Đồ án tốt nghiệp Chương I : Giới thiệu

Vũ Đức Mạnh-D05THA1 Trang 3 Hình 1.2: Các thành phần trong liên minh OHA
Vài nét về Tổ chức Open Handset Alliance (OHA):OHA được xây dựng từ những
tổ chức phát triển điện thoại di động bao gồm các công ty cung cấp dịch vụ điện thoại di
động, sản xuất thiết bị cầm tay, sản xuất phần mềm, dụng cụ bán dẫn, và các công ty kinh
doanh. Tổ chức này đang mở cửa cho tất cả các công ty khác nhau và người sử dụng có
thể chọn một trong các nhà cung cấp dịch vụ tốt hơn thông qua O
HA với tính năng sẵn có
của hệ điều hành mở Android.
1.3 Sự hướng phát triển của android
1.3.1 Điều kiện phát triển
Trên bước đường tạo dựng nền tảng, phát triển thì Google Android cũng gặp

oid trên thị trường là OSX(Iphone) không sử dụng
java
• Các ứng dụng viết ra sẽ có giá thành rẻ hơn.
Nhưng sử dụng ngôn ngữ java cũng có điểm bất lợi là các ứng dụng sẽ chạy chậm
hơn so ứng dụng chạy trên nên c/c++.Chính vì vậy google đã cho ra phiên bản android
NDK mới 1.5 hỗ trợ lập trình bằng ngôn ngữ là c/c++.
Báo cáo Đồ án tốt nghiệp Chương I : Giới thiệu

Vũ Đức Mạnh-D05THA1 Trang 5 Hình 1. 3 : Một số nền tảng lập trình di động

1.3.2 Xu hướng phát triển
Hiện tại android đang phát triển rất nhanh cả về thiết bị lẫn ứng dụng :
• Về mặt thiết bị thì từ cuối năm 2008 HTC đã tung ra sản phẩm đầu tiên chạy hệ
điều hành android có tên gọi là “ Dream ” hay còn gọi là G1 ,đến nửa đầu năm
2009 thì một số các nhà sản xuất lớn đã tung ra các sản phẩm sử dụng hệ điều
hành a
ndroid như HTC-mobile, Samsung , và có một số khác đang chuẩn bị
tung ra sản phẩm của mình như Motorola…

Báo cáo Đồ án tốt nghiệp Chương I : Giới thiệu

Vũ Đức Mạnh-D05THA1 Trang 6 Hình 1.4 : HTC Dream (G1
• Về phần ứng dụng cũng tăng một cách đáng kể trên android-market , nhằm thúc
đẩy sự phát triển của android mới đây google đã tung ra phiên bản android-sdk 1.5

1.1.1 Những đặc trưng của android

• Application framework (Nền tảng ứng dụng ): hỗ trợ sử dụng lại và thay thế các
thành phần.
• Dalvik virtual machine (Máy di động ảo Dalvik ): Giả lập thiết bị di động sử dụng
Android.
• Integrated browser (Tích hợp trình duyệt web) : cung cấp mã nguồn mở bộ phát
triển trình duyệt Webkit.
• Optimized graphics (Tăng tốc đồ họa ) : cung cấp các thư viện đồ họa 2D, 3D sử
dụng OpenGL ES 1.0 (phụ thuộc vào thiết bị phần cứng).
• SQLite : Cấu trúc dữ liệu lưu trữ.
• Media support (Hỗ trợ đa phương tiện ): Hỗ trợ phần lớn các định dạng âm t
hanh,
hình ảnh, video phổ biến như (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG,
GIF).
• Công nghệ GSM – GSM Telephony (phụ thuộc nền tảng phần cứng).
• Hỗ trợ Bluetooth, EDGE, 3G, and WiFi (phụ thuộc thiết bị phần cứng).
• Hỗ trợ Camera, GPS, compass, and accelerometer (phụ thuộc thiết bị phần cứng).
• Rich development environment (Nhiều biến môi trường phát triển ) bao gồm các
thiết bị giả lập,Công cụ bắt lỗi, kiểm soát bộ nhớ và độ ổn định, và các plugin của
Eclipse IDE

1.1.2 Tổng quan kiến trúc của Android
Trước tiên chúng ta sẽ xem sơ đồ các thành phần chính của android gồm :
Application , Application Framework , Libraries , Android Runtime , Linux Kernel.
Báo cáo Đồ án tốt nghiệp Chương II : Tổng quan

Vũ Đức Mạnh-D05THA1 Trang 8
của Android.
9 A Resource Manager - cung cấp chức năng truy cập tài nguyên ngoại trừ mã
nguồn .
9 A Notification Manager - cung cấp chức năng tùy chỉnh những cảnh báo lên
màn hình ở thanh status.
9 A Activity Manager - quản lý vòng đời của các ứng dụng.
• Libraries :
9 System C library – Một BSD thực thi của hệ thống thư viện C chuẩn.
9 Media Libraries - dựa trên chuẩn opencore của pac
ketvideo’s, thư viện này
hỗ trợ playback và recording của những định dạng audio và video phổ biến
,có cả định dạnh những file ảnh tĩnh , bao gồm các định dạng : MPEG4,
H.264, MP3, AAC, AMR, JPG, and PNG.
9 Surface Manager – quản lý việc truy cập hệ thống phụ và ghép những
đường nối của những lớp đồ họa 2D và 3D từ nhiều ứng dụng.
9 LibWebCore – là một công cụ trình duyệt web hiện đại mà những khả năng
của nó có cả trình duyệt androi
d và web nhúng.
9 SGL – công cụ đồ họa 2D nằm phía dưới.
9 3D Libraries – Một sự bổ sung dựa trên OpenGL ES 1.0 APIs , thư viện này
sử dụng cả phần cứng gia tốc 3D.
9 FreeType – biến đổi những font và ảnh bitmap.
9 SQLite – công cụ cơ sở dữ liệu mạnh mẽ và nhẹ được dùng cho tất cả các
ứng dụng.
• Anroid Runtime : Android bao gồm tập hợp các thư viện lõi , nó cung cấp hầu
hết các chức năng sẵn có trong ngôn ngữ java.
• Linux ker
nel : Android dựa vào dịch vụ hệ thống nhân của phiên bản linux 2.6
như bảo mật ,quản lý bộ nhớ,quản lý quy trình ,ngăn xếp mạng và các kiểu
driver.Nhân này cũng hoạt động như lớp trừu tượng giữa phần cứng và phần

thành phần của những ứng dụng khác. Ví dụ, nếu nhu cầu ứng dụng của bạn để hiển thị
một danh sách các di chuyển hình ảnh và các ứng dụng khác đã phát triển một thanh cuộn
phù hợp và đã tạo cho nó có sẵn sàng đối với những người khác, bạn có thể gọi thanh
cuộn để làm công việc, thay vì bạn phải tự phát triển của riêng bạn.Các đoạn code của bạn
không kết hợp các đoạn code của các ứng dụng khác hoặc liên kết đến nó, thay vào đó, nó
đơn giản chỉ khởi động các đoạn c
ode của các ứng dụng khác khi cần sử dụng.
Để làm việc này, hệ thống phải có khả năng bắt đầu tiến trình ứng dụng khi bất kỳ
phần nào của nó cần sử dụng, và khởi tạo các đối tượng Java cho phần đó. Vì vậy, không
giống như các ứng dụng trên hầu hết các hệ thống khác, các ứng dụng A
ndroid không có
một mục nhập cho tất cả mọi thứ trong các ứng dụng (không có hàm main()). Thay vào
đó, chúng có thành phần chủ yếu là hệ thống có thể khởi tạo và chạy khi cần thiết. Có bốn
loại thành phần:
• Activities(android.app.Activity) - đây là lớp khỏi tạo gi
ao diện ứng dụng nội bộ
trên nên Android tương tư như MIDlet trong J2ME.Một hoạt động thể hiện một
hình ảnh giao diện người dùng cho một sự cố gắng tập trung để người sử dụng
có thể thực hiện. Ví dụ, một activitiy có thể trình bày một danh sách các mục để
người dùng có thể lựa chọn hoặc nó có thể hiển thị hình ảnh cùng với các chú
thich. Một tin nhắn văn bản ứng dụng có thể có một activity hiển t
hị một danh
sách các địa chỉ liên lạc để gửi tin nhắn đến một activity thứ hai để viết tin nhắn
này ứng với các địa chỉ liên lạc, và các activity khác để xem xét lại các tin nhắn
cũ hoặc thay đổi cài đặt. Mặc dù chúng làm việc cùng nhau để tạo thành một
giao diện người dùng liền nhau nhưng mỗi activity độc lập với những activity
khác. Mỗi activity đều triển khai thực hiện như là một lớp phụ của lớp activi
ty
cơ bản.
Báo cáo Đồ án tốt nghiệp Chương II : Tổng quan

ng hoạt động sẽ
được công bố. Ví dụ, nó có thể thông báo cho ai quan tâm rằng các máy ảnh đã
được bấm nút.
Có Những phương thức riêng cho từng kiểu thành phần kích hoạt :
• Một activity là đã được phát động thông qua một đối tượng intent là
Context.startActivity() hoặc Activity.startActivityForResult.Những đáp ứng
của activity có thể được quan sát từ những intent đầu m
à nó có thể được gọi bởi
phương thức getIntent().Android gọi các phương thức getIntent() của activity
để chuyển qua bất kỳ intent kế tiếp nào.
Một activity thường bắt đầu cái kế tiếp nó.Nếu cái kết quả mong muốn được
gửi trả lại từ hành động bắt đầu của nó, nó sẽ gọi startActivityForResult() thay
vì startActivity().Ví dụ nếu nó bắt đầu một activity cho phép người dùng lựa
chọn một hình ảnh,nó có thể mong đợi kết quả được trả lại là những hình ảnh
Báo cáo Đồ án tốt nghiệp Chương II : Tổng quan

Vũ Đức Mạnh-D05THA1 Trang 12

đã chọn.Kết quả được trả lại là một đối tượng intent mà nó thông qua đó để gọi
phương thức onActivityResult() của activity
• Một service được bắt đầu thông qua đối tượng Content.startService(). Android
gọi phương thức onStart() của service và chuyển nó qua một đối tượng intent
• Một ứng dụng có thể khởi động broadcast bằng một đối tượng intent thông qua
các phương thức như :
Context.sendBroadcast(),Context.sendOrderedBroadcast() và
Context.sendStickyBroadcast ở trong bất kỳ biến nào của chúng.Android
cung cấp intent đó tới tất cả các broadcast nhận đư
ợc mà chúng quan tâm
bằng cách gọi phương thức onReceive().
Tắt các thành phần : Một content provider đang hoạt động trong khi đó chỉ đáp


<application . . . >
<activity android:name="com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
</activity>
. . .
</application>
</manifest>

Đặt tên lớp phụ của activity chúng thực hiện hoạt động của activity.Các icon và
label thuộc tính trỏ đến file tài nguyên(resource) chứa các icon và label có thể hiển
thị cho người sử dụng activity này.
Các thành phần khác được khai báo một cách tương tự như : <service> cho các
phần tử của service , <receive> cho các phần tử của broadcast receivers và
<provider> cho các phần tử của content provider. Activities, Services, Content
Providers nếu chúng không được khai báo trong manifest thì sẽ không hiện trong
hệ thống và không bao giờ được chạy.Tuy nhiên đối với broadcast receivers có thể
đư
ợc khai báo trong manifest hoặc cũng có thể được tạo ra trong đoạn code tự
động(như đối tượng broadcast receivers) và đăng ký với hệ thống bằng cách gọi
Context.registerReceiver().
Intent Filters(Các bộ lọc Intent) : Một đối tượng intent nếu có thể nhắm rõ ràng
tên của một thành phần android sẽ tìm thành phần đó(dựa trên việc khai báo trong
file manifest) và kích hoạt nó còn nếu không thì android phải định vị một thành
phần tốt nhất có thể đáp ứng cho đối tượng intent đó,bằng cách so sánh các đối
tượng intent vào các mục tiêu tiềm năng của các bộ lọc intent. Dưới đây là một mở
rộng của các ví dụ trước đó cho biết thêm về intent filters :
<?xml version="1.0" encoding="utf-8"?>

1.2.2 Activitiies và Tasks
Như đã nêu ở trên , một activity có thể khởi động một activity khác ,bao gồm cả
việc định nghĩa một ứng dụng khác.Ví dụ bạn muốn hiển thị cho người dùng xem một bản
đồ đường phố của một số địa điểm.Có sẵn activity làm việc đó vì vậy tất cả việc bạn cần
làm là đặt đối tượng intent với thông tin đòi hỏi và chuyển nó vào startActivity().Bản đồ
sẽ hiển t
hị cho người xem , khi người sử dụng bấm vào phím back thì activity của bạn sẽ
hiện lên màn hình. Android duy trì sự trải nghiệm của người dùng này bằng cách giữ cho
cả hai hoạt động trong cùng một task.
Mỗi task là một stack của các activity, không phải là lớp hay các phần tử trong file
manifest, như vậy không có cách nào thiết lập giá trị cho các task độc lập của các activity
đó.
Các hành vi được mô tả là chỉ cần mặc định các hành vi cho activity và task.
Nhưng sẽ còn có nhiều cách để sửa đổi hầu hết tất cả mọi khía cạnh của nó. Sự kết hợp
các activity với task, và các hành vi của một activity trong một task, được kiểm so
át bởi
sự tương tác giữa các thiết lập cờ trong đối tượng intent để bắt đầu các activity và các
thuộc tính thiết lập trong activity của các phần tử của <activity> trong file manifest.
Về vấn đề này, các cờ Intent chính là:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP
Các thuộc tính chính cở <activity> là :
taskAffinity
launch Mode

Báo cáo Đồ án tốt nghiệp Chương II : Tổng quan

Vũ Đức Mạnh-D05THA1 Trang 15

“true”,activity này vẫn còn một phần của task đó cho phiên hiện tại.Nếu người
dùng bỏ nó đi và sau đó trở lại task đó, thì thuộc tính này ko còn hiện hữu.
Sự bắt đầu các task : Một activity được thiết lập như là một mục điểm cho một
task bằng cách cho nó một intent filter với "android.intent.action.MAIN" được xác
định như là hành động và "android.intent.category.LAUNCHER" như là xác định
loại
Khả năng thứ 2 rất quan trọng : người dùng phải có khả năng bỏ lại một
task và sau đó trở lại sau. Vì lý do này, hai chế độ khởi động luôn luôn đánh dấu


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status