TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
────── * ──────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐA
PHƯƠNG TIỆN CHO MOBILE SỬ DỤNG
HỆ ĐIỀU HÀNH ANDROID (MODULE
SERVER)
Sinh viên thực hiện : Nguyễn Thế Trung
Lớp CNPM – K51
Giáo viên hướng dẫn: Ths. Lương Mạnh Bá
HÀ NỘI 6 - 2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Nguyễn Thế Trung
Điện thoại liên lạc 0942345996 Email: [email protected]
Lớp: CNPM Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Đại học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 28/ 2/ 2011 đến 28/ 5/ 2011
2. Mục đích nội dung của ĐATN
• Tìm hiểu các thông tin, cấu trúc hệ điều hành Android
• Tìm hiểu môi trường phát triển ứng dụng bằng Java phục vụ cho Mobile Android
• Tìm hiểu quy trình phát triển ứng dụng bằng Java phục vụ cho Mobile Android
3. Các nhiệm vụ cụ thể của ĐATN
• Tìm kiếm và tổng hợp thông tin
• Cài đặt môi trường phát triển
• Viết chương trình thử nghiệm và tích hợp với các Module Client, CMS để xây dựng hệ
thống
4. Lời cam đoan của sinh viên:
- Kiến trúc hệ thống.
- Thiết kế tổng quan.
- Thiết kế chi tiết.
- Thiết kế chuẩn giao tiếp giữa Server và Client.
• Chương IV: Cài đặt và triển khai ứng dụng - xây dựng các module của server và
tích hợp
Chương này sẽ trình bày những hướng dẫn cho việc cài đặt và những kết quả trong
việc triển khai ứng dụng, những đánh giá về hệ thống.
Phần kết luận:
Tổng kết những kết quả trong thời gian làm đồ án tốt nghiệp. Những ưu điểm,
nhược điểm và những định hướng phát triển trong tương lai.
Lời cảm ơn đến các thầy cô giáo, tổ chức đã giúp đỡ trong quá trình làm đồ án và
những cảm nhận của sinh viên khi hoàn thành thời gian làm tốt nghiệp.
Phần mục lục: tổng hợp những tài liệu tham khảo trong quá trình làm đồ án.
MỤC LỤC
!
"#$
%&'&()&*+$
)&*, /0123&45(6573/8(9&$
:;2.2/<=7(;(73)&*>?
@ABCDEFG@HI%J
K(-L7/8%J
M7))0'733&N&O+PQ(%
@ABRFRS@TSU%V
*/&8+)97)7W65&W-973X773YZ4-4%V
%M7)73)[4-87W65&W%V
DANH MỤC HÌNH
g7)%BX)g7)h9&(5=7%J
g7)BX)g7)iN7>)j,&}W&4%%
g7)BX)g7))*();73%
g7)B\&Q7(6]2(r73()d7W65&W%!
g7)VB_73/`&2a4c73W.737W65&WJ
2u-&(Ph453<,i(4(}BJ
g7)B\&Q7(6]2Z4-4
g7)!BX)g7)h&y7WM2)
g7)$BX)g7)^52e}(
g7)?Bf+P(6g7)>)=((6&d7c73W.732)5()&Q(hMW&/b73!
g7)%JB\&Q7(6]2)*();73%
g7)%%B:&d+/<,c2e)=&7&*,
g7)%B:&d+/<,c2-s(qt
g7)%B:&d+/<i}24i}
g7)%B:&d+/<2u-&(P?
g7)%VB:&d+/<(+p7(|J
g7)%B:&d+/<2b73(=2%
g7)%!B:&d+/<(6v73()=&%
g7)%$BX)g7)29&/K(?
g7)%?B\)•&/b73^fi}6-}6VJ
g7)JBS+7i}6-}6,5h&q}2q&}7(VJ
:0'2B)vPW4(4h4i}S52e5735BVJ
V%
g7)%BS+7W4(4h4i}5735V%
:0'2B^(46(>42)}i}6-}6BV%
g7)BS+74>42)}i}6-}6V%
:0'2VB‚737)s>4(4h4i}5735BV%
g7)B‚737)s>4(4h4i}5735V
g7)B64ƒq}67W}„(6y7}(h}47-9eQ(O+N(6573^S52e5735V
chưa thể thỏa mãn được nhu cầu ngày càng cao của con người. Con người lại kết
hợp máy tính với chiếc điện thoại di động để cho ra những thiết bị di động thế hệ
mới, có sức mạnh của chiếc máy tính lại nhỏ gọn, cơ động như những chiếc điện
thoại di động, không chỉ giúp con người liên lạc, trao đổi thông tin mà còn trợ giúp
trong những công việc hàng ngày.
Đi kèm với sự phát triển của phần cứng như vậy, phần mềm cũng đang phát
triển nhanh chóng để phù hợp với các thiết bị thế hệ mới. Quan trọng nhất đó chính
là các hệ điều hành cho các thiết bị di động. Nổi bật nhất gần đây là hệ điều hành
hành Android của Google. Nó được đánh giá là một hệ điều hành tốt, nhiều tiềm
năng phát triển và sẽ có những bước nhảy vọt trong thời gian tới. Trong kỳ thực tập
và làm đồ án tốt nghiệp em được tìm hiểu về hệ điều hành này.
Cùng với sự phát triển của công nghệ, nhu cầu của con người đối với các
thiết bị di động cũng không còn giới hạn trong việc nghe gọi và nhắn tin như trước,
mà vươn cao hơn tới các nhu cầu giải trí, thu thập thông tin. Xuất phát từ nhu cầu
đó mà nhóm em có mong muốn xây dựng một hệ thống đa phương tiện cho phép
người sử dụng điện thoại di động có thể có được các thông tin mới nhất cũng như
việc người dùng có thể có các giây phút giải trí thú vị ngay chỉ với chiếc điện thoại
nhỏ bé của mình. Đó cũng chính là lý do mà nhóm em đã lựa chọn đề tài “Xây
dựng ứng dụng đa phương tiện cho Mobile sử dụng hệ điều hành Android” để
làm đồ án tốt nghiệp.
2. Nhiệm vụ được giao trong đề tài
Đề tài “Xây dựng ứng dụng đa phương tiện cho Mobile sử dụng hệ điều hành
Android” do nhóm em thực hiện trong thời gian làm đồ án. Về cơ bản đề tài được
chia ra thành ba phần với từng nhiệm vụ cụ thể cho từng thành viên trong nhóm. Cụ
thể như sau:
Phan Thanh Tuấn: xây dựng các module phía client.
Nguyễn Thế Trung: xây dựng các module phía Server.
Nguyễn Mạnh Hùng: xây dựng các module CMS và thiết kế cơ sở dữ liệu.
Với nhiệm vụ xây dựng các module phía client, các công việc của em trong
đồ án cụ thể gồm hai công việc chính:
Với việc phát triển nhanh chóng của thị trường di động ở nước ta, việc sử
dụng chiếc điện thoại cá nhân để tiếp cận với những thông tin khổng lồ trên internet
là một yêu cầu cấp thiết và được người sử dụng điện thoại di động mong đợi. Đáp
ứng nhu cầu đó một số phần mềm đa phương tiện dành cho Mobile ra đời giúp cho
người sử dụng điện thoại di động có thể sử dụng chiếc điện thoại của mình tiếp cận
với những thông tin khổng lồ trên internet tương tự như trên PC. Tiêu biểu trong
các phần mềm đó là sản phẩm iMedia do công ty Naiscorp xây dựng.
Hình 1: Mô hình bài toán
Sản phẩm iMedia là một sản phẩm tiêu biểu về cổng thông tin điện tử cho
thiết bị di động trong quá trình thực tập tại công ty Naiscorp nhóm em đã có điều
kiện tìm hiểu kĩ hơn về mô hình của sản phẩm từ đó có những giải pháp cho việc
xây dựng ứng dụng trong đồ án tốt nghiệp.
Hệ thống iMedia được được chia thành 3 tầng với những chức năng và
nhiệm vụ cụ thể:
• Tầng ứng dụng (Java Application)
• Tầng giao diện (Mobile Interface)
• Tầng dưới cùng là tầng máy tìm kiếm socbay (Socbay Search
Engine).
Việc mô hình hóa hệ thống được biểu diễn như hình dưới:
Hình 2: Mô hình sản phẩm iMedia
Trong đó:
• Socbay Search Engine: máy tìm kiếm của socbay chịu trách nhiệm thu thập
dữ liệu từ các nguồn khác nhau trên internet. Dữ liệu được đánh chỉ mục và
lưu trữ trong cơ sở dữ liệu của socbay.
• Mobile Interface: hỗ trợ cho việc chuẩn hóa dữ liệu phục vụ cho thiết bị di
đông. Ngoài ra Mobile Interface còn quản lý module giao tiếp cho phép lấy
và trả dữ liệu về cho ứng dụng Java khi nhận được yêu cầu từ ứng dụng.
• Java Application: Ứng dụng phía client với tên gọi Socbay Mobile Search,
tương tác với người sử dụng thông qua các thành phần đồ họa.
Trong khoảng ba tháng làm đồ án ngắn ngủi đồng thời vừa phải tìm hiểu và
Để giải quyết các vấn đề đã được nêu ra trong phần trên nhóm em đưa ra
định hướng để giải quyết các vấn đề của bài toán.
Từ bài toán cụ thể trên chúng em đã tiến hành xây dựng mô hình chung của
hệ thống gồm ba phần chính:
1. Phần CMS và Database
Quản lý cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu được sử dụng là SQL Server
2005.
SQL Server 2005 là một hệ thống quản lý cơ sở dữ liệu (Relational Database
Management System (RDMS)) sử dụng Transact-SQL để trao đổi dữ liệu giữa
Client và SQL Server.
SQL Server 2005 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu
rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ
cùng lúc cho hàng ngàn User. SQL Server 2005 có thể kết hợp ăn ý với các server
khác nhau.
Trên đây là một số giới thiệu về SQL Server 2005 với nhiều điểm ấn tượng,
ngoài ra trong quá trình học tập chúng em đã có thời gian tìm hiểu về hệ quản trị cơ
sở dữ liệu này do đó việc lựa chọn nó cũng là một ưu thế so với các hệ quản trị cơ
sở dữ liệu khác.
2. Phần Server
Có nhiệm vụ Crawler thông tin từ internet để cập nhật vào database và làm
nhiệm vụ giao tiếp với Client. Phần này được viết bằng ngôn ngữ Java.
Java là một công nghệ xây dựng các ứng dụng phần mềm có vị trí rất lớn
trong những năm cuối thế kỉ 20, đầu thế kỉ 21. Nó được coi là công nghệ mang tính
cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy thống
nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần.
Lần đầu tiên xuất hiện vào năm 1992 như là một ngôn ngữ dùng trong nội bộ tập
đoàn Sun Microsystems để xây dựng ứng dụng điều khiển các bộ xử lý bên trong
máy điện thoại cầm tay, lò vi sóng, các thiết bị điện tử dân dụng khác. Không chỉ là
một ngôn ngữ, Java còn là một nền tảng phát triển và triển khai ứng dụng trong đó
máy ảo Java, bộ thông dịch có vai trò trung tâm.
động thông minh (smart phone), nó còn được định nghĩa chính thức là một
“software stack” bao gồm hệ điều hành, các “middleware” (các phần mềm liên kết
các phần mềm hoặc các ứng dụng khác) và các ứng dụng phím.
Android có nền tảng mã nguồn mở được phát triển bởi Google. Bên cạnh
kho ứng dụng khá phong phú cùng một cộng đồng phát triển rộng lớn, Google còn
đưa ra bộ công cụ Android SDK cung cấp rất nhiều APIs cần thiết cho việc phát
triển các ứng dụng Android trên ngôn ngữ lập trình Java. Mặc dù mới ra đời nhưng
Android đã tạo ra sức hút rất lớn đối với các nhà phát triển và các hãng sản xuất.
Hiện tại đã có những chiếc điện thoại Android đầu tiên được xuất xưởng như T-
Mobile G1 của HTC, SamSung I7500. Bên cạnh đó rất nhiều hãng sản xuất điện
thoại lớn trên thế giới như Motorola, HTC, SumSung, Sony Ericsson cũng đã cam
kết sẽ gắn bó với Android. Ngoài ra Android còn có thể chạy trên các netbook và có
thể sẽ trở thành một hệ điều hành nữa giành cho netbook.
Android được đánh giá là có triển vọng rất lớn và có tốc độ tăng trưởng
nhanh trong những năm tới. Dưới đây là những ưu điểm tạo nên sức cạnh tranh của
Android.
Những điểm mạnh của Android
• Tính mở: Android được xây dựng dựa trên nhân là hệ điều hành Linux. Đây
là một nền tảng hoàn toàn mở (mã nguồn mở – open source), do đó những
chiếc điện thoại chạy Android sẽ không mất phí cho hệ điều hành, kéo theo
giá thành của những chiếc điện thoại này sẽ giảm xuống. Đó chính là một
yếu tố cạnh tranh rất lớn của Android. Bên cạnh đó, do có một nền tảng mở
và bản thân cũng là phần mềm mở nên các nhà phát triển ứng dụng có thể
thoải mái làm mọi thứ trên Android. Các ứng dụng có thể gọi đến bất kì ứng
dụng lõi nào của Android như tạo cuộc gọi, gửi tin nhắn, sử dụng camera
Họ cũng có thể tạo ra một hệ điều hành mới mang bản sắc riêng dựa trên mã
nguồn mở của Android. Tính mở còn giúp Android ngày càng được mở rộng
khi cộng đồng phát triển tiếp tục làm việc cùng nhau để tạo ra các ứng dụng
mới.
• Các ứng dụng tạo ra ngang bằng nhau: Android không phân biệt các ứng
Đây là các ứng dụng tương tác trực tiếp với người dùng bao gồm các ứng
dựng lõi và những ứng dụng của bên thứ ba. Ngoài việc cung cấp đầy đủ các ứng
dụng cơ bản của một chiếc điện thoại thông thường như: tạo cuộc gọi, nhắn tin
Android còn có những dịch vụ rất hữu ích khác: trình duyệt web, google maps, các
ứng dụng media, camera, games Hơn nữa Google còn cung cấp kho ứng dụng cho
Android tai địa chỉ http://www.android.com/market/ khá phong phú giúp người
dùng có thể thoải mái download để sử dụng.
b. Application Framework
Đây là nơi chứa các dịch vụ và hệ thống quản lí ứng dụng bao gồm:
• Activity Manager: quản lí vòng đời của ứng dụng.
• Window Manager: quản lí các cửa sổ trong ứng dụng như trạng thái, cách bố
trí
• Content Providers: cho phép ứng dụng có thể truy nhập dữ liệu của ứng dụng
khác hoặc chia sẻ dữ liệu của nó cho các ứng dụng.
• View System: cung cấp các thành phần giao diện như list, text, button, thậm
chí cả trình duyệt web được nhúng vào trong ứng dụng.
• Package Manager: chứa các công cụ quản lí việc cài đặt, nâng cấp, cấu hình
hoặc gỡ bỏ các gói ứng dụng.
• Telephony Manager: quản lí các dịch vụ thoại như thông tin, trạng thái các
cuộc gọi, tin nhắn
• Resource Manager: cung cấp quyền truy nhập đến các tài nguyên không nằm
trong code như các chuỗi, icon, các file layout, các đối tượng graphics được
sử dụng
• Notification Manager: cho phép tất cả các ứng dụng đưa ra các thông báo
dưới dạng thanh trạng thái.
c. Libraries
Android cung cấp một tập các thư viện C/C++ được sử dụng bởi các thành
phần khác nhau trong hệ thống. Dưới đây là một số thư viện lõi:
• Thư viện C hệ thống: thừa kế từ thư viện hệ thống C chuẩn được cung cấp
cho các thiết bị nhúng dựa trên nhân Linux.
e. Linux kernel
Android dựa trên nhân Linux version 2.6 đối với các dịch vụ lõi của hệ thống
như bảo mật, quản lí bộ nhớ, quản lí tiến trình, mạng, trình điều khiển. Nhân Linux
như là một lớp trừu tượng giữa phần cứng và phần còn lại của hệ thống Android.
Nhưng Linux không làm việc trực tiếp với các ứng dụng mà thông qua máy ảo
DVM. Nhân Linux được Google sử dụng không hoàn toàn là nhân Linux được sử
dụng cho các phiên bản hệ điều hành cho máy tính để bàn, trong đó Google đã loại
bỏ đi hệ thống quản lý cửa sổ ứng dụng X Window System cũng như bỏ bớt một số
thư viện trong bộ thư viện chuẩn GNU. Do đó việc sử dụng lại code cũng như thư
viện của các chương trình ứng dụng của các hệ điều hành Linux cho máy tính để
bàn là rất khó khăn.
f. Các thành phần cơ bản của ứng dụng Android:
Ứng dụng Android bao gồm 6 thành phần:
• Activity: Activity là nền của một ứng dụng. Khi khởi động một ứng dụng
Android nào đó thì bao giờ cũng có một main Activity được gọi, hiển thị
màn hình giao diện của ứng dụng cho phép người dùng tương tác
Một ứng dụng Android có thể chứa một hoặc nhiều activity. Mỗi một activity
được cung cấp một cửa sổ để thao tác trên đó.
• Service: Một service không có một giao diện trực quan. Nó chạy ở nền trong
một thời gian không xác định. Mỗi một service thừa kế từ lớp cơ sở Service.
Một ví dụ để có thể hiểu về service là ứng dụng music player
• Broadcast Receiver: Broadcast Receiver là một thành phần không làm gì
ngoài việc nhận và hưởng ứng lại những thông báo (broadcasts) được ban ra.
• Content Provider: Content Provider là thành phần làm cho tập dữ liệu của
ứng dụng có thể được sử dụng bởi một ứng dụng khác
• Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các
thông báo đi nhằm khởi tạo một Activity hay Service để thực hiện công việc
mà người dùng mong muốn. Ví dụ khi mở một trang web, tức là người dùng
gửi một intent đi để tạo một activity mới hiển thị trang web đó.
• Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng
Development Kit - JDK) như là bộ thư viện chuẩn trong đó chưa trình biên dịch,
trình thông dịch, trình đóng gói, tài liệu,… Đây chính là nền tảng cho việc phát triển
các ứng dụng Java. Hiện nay, cộng đồng Java trên thế giới mà đi đầu là hãng Sun
Microsystems đã xây dựng nhiều nhánh mới cho Java như: JavaMail (thư điện tử),
Java TAPI (viễn thông), Java3D (đồ họa 3 chiều), J2ME (ứng dụng cho thiết bị di
động),…
b. Phân loại Java:
Hiện nay Java có các phiên bản sau:
• J2SE
TM
(Java 2 Platform, Standart Edition): Phiên bản chuẩn gồm bộ công
cụ thông dụng dùng để chạy trên các máy PC hoặc các mạng máy tính nhỏ.
• J2EE
TM
(Java 2 Platform, Enterprise Edition): Phiên bản dành cho các máy
chủ với bộ nhớ lớn. Bao gồm các kiến trúc nâng cao như Web, EJB,
Transaction,… dùng để xây dựng các ứng dụng có quy mô lớn
• J2ME
TM
(Java 2 Platform, Micro Edition): Bao gồm môi trường và thư viện
Java dùng để phát triển các ứng dụng trên các thiết bị có bộ nhớ nhỏ như
điện thoại di động, PDA, các đồ gia dụng,…
• Ngoài ra SUN còn đang nghiên cứu và phát triển các ứng dụng khác như
JavaFX
Hình 6: Kiến trúc Java
c. Chi tiết về J2SE
TM
(Java 2 Platform, Standart Edition):
J2SE hay Java 2 Standard Edition vừa là một đặc tả, cũng vừa là một nền
tảng thực thi (bao gồm cả phát triển và triển khai) cho các ứng dụng Java. Nó cung
bản 1.2 so với các phiên bản trước, nhưng đến phiên bản 1.6 thì "2" bị loại bỏ.
Phiên bản được biết đến tới thời điểm hiện tại là Java SE 6 (hay Java SE 1.6 theo
cách đặt tên của Sun Microsystems) với tên mã Mustang.
5. Môi trường phát triển
a. Hệ điều hành:
Về hệ điều hành để cài đặt các công cụ hỗ trợ, hiện Java có thể chạy trên hầu
hết các hệ điều hành phổ dụng như:
• Microsoft Windows: các phiên bản XP 32 bits, Vista 32 và 64 bits, Windows
7 32bits và 64bits, (và các phiên bản cũ hơn).
• Apple Mac OS X
• Linux: các dòng hiện đại đều có thể sử dụng được như Ubuntu, Fedora
b. Các công cụ hỗ trợ:
Như đã nêu, các ứng dụng chủ yếu được viết bằng ngôn ngữ Java, sau đó mã
bytecode của Java để chạy trên máy ảo JVM và các IDE cho Java như Eclipse,
Netbeans SUN cũng cung cấp các thư viện để ta sử dụng cho các ứng dụng v v
Ở trong đồ án của em (phần server ) có sử dụng 1 số thư viện cơ bản sau:
• Sqljdbc4.jar: Dùng để kết nối với CSDL SQL Server lư các thông tin để
người dùng xem
• Mongo-2.3.jar: Dùng để kết nối với CSDL Rock Mongo để lưu các thông tin
dạng thô khi crawler data về
• JDK 1.6: Thư viện chuẩn của SUN
c. Cài đặt môi trường lập trình:
Các bước để cài đặt các công cụ hỗ trợ phát triển ứng dụng Android:
• Cài đặt Java Virtual Machine hay JVM.
• Cài đặt Java IDE: (cụ thể là Netbean 7.0).
• Cài đặt SQL server và SQL Manager Studio 2005 Express
• Cài đặt CSDL Rock Mongo
Cụ thể các bước cài đặt khá đơn giản tuy nhiên trong khuôn khổ có hạn của
nội dung đồ án em không trình bày cụ thể ở đây. Chi tiết về việc cài đặt có thể tham
khảo tại địa chỉ
một kết nối TCP socket với các client, giữ các kêt nối, lấy các dữ liệu từ service và
trả lại cho client.
Module kết nối tại client có nhiệm vụ quản lý các gói tin gửi đi, nhận và xử lí
các gói tin gửi về từ server và hiển thị kết quả lên form.
Module kết nối tại Server sẽ tạo một socket, lắng nghe những packet từ client
gửi lên, xử lý,sau đó dựa vào mã gửi lên để gọi các dịch vụ được cung cấp bởi
Search Engine của trang Socbay.com để trả về các dữ liệu đã được chuẩn hoá tương
ứng.