HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
THỰC TẬP TỐT NGHIỆP
Nội dung: Ứng dụng tìm kiếm địa điểm Place Apps
Nơi thực tập: Viện CNTT&TT – CDIT
GV hướng dẫn: Đỗ Thị Hải Yến
Sinh Viên: Lê Văn Các
Lớp: D10CNPM2
MSV: 1021040007
Hà Nội, 07/2014
LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ,
giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt thời gian
từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rất nhiều sự
quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè. Với lòng biết ơn sâu sắc nhất,
em xin gửi đến quý Thầy Cô ở Viện Công Nghệ Thông Tin & Truyền Thông CDiT đã
cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng
em trong suốt thời gian thực tập tại Viện. Và đặc biệt, trong kỳ thực tập này này, Viện
đã tổ chức cho chúng em được thực tập với các đề tài rất hữu ích đối với sinh viên
ngành Công nghệ phần mềm cũng như tất cả các sinh viên thuộc các chuyên ngành
khác. Em xin chân thành cảm ơn các thầy cô đã tận tâm hướng dẫn em trong suốt quá
trình thực tập. Nếu không có những lời hướng dẫn, dạy bảo của thầy cô thì em nghĩ bài
thu hoạch này của em rất khó có thể hoàn thiện được. Một lần nữa, em xin chân thành
cảm ơn thầy. Bài thu hoạch được thực hiện trong suốt quá trình thực tập. Bước đầu đi
vào thực tế, kiến thức của em còn hạn chế và còn nhiều bỡ ngỡ. Do vậy, không tránh
khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp
quý báu của quý thầy cô để kiến thức của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
2
MỤC LỤC
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG BIỂU
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
VIỆN CÔNG NGHỆ
THÔNG TIN VÀ TRUYỀN THÔNG
CDIT
……………………………
Độc lập – Tự do – Hạnh phúc
PHIẾU NHẬN XÉT ĐÁNH GIÁ KẾT QUẢ THỰC TẬP TỐT NGHIỆP
(Thời gian thực tập: Từ ngày 23/06/2014 đến ngày 01/08/2014)
Họ và tên sinh viên: LÊ VĂN CÁC
Lớp: D10CNPM2
NỘI DUNG ĐÁNH GIÁ:
1. Chấp hành kỷ luật:………………………………………………………………
2. Ý thức học tập: ………………………………………………………………….
3. Quan hệ, giao tiếp: ……………………………………………………………
4. Điểm: …………………………………………………………………………
Các ý kiến khác (nếu có):
3
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Ngày … tháng … năm 2014
Giáo viên hướng dẫn thực tập
(ký và ghi rõ họ tên)
Điểm của hội đồng đánh giá thực tập tốt ngiệp CDIT: ………………………………
Điểm trung bình thực tập của sinh viên:
………………………………………………
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
VIỆN CÔNG NGHỆ
THÔNG TIN VÀ TRUYỀN THÔNG
CDIT
……………………………
Độc lập – Tự do – Hạnh phúc
KẾ HOẠCH ĐĂNG KÝ THỰC TẬP TỐT NGHIỆP
Họ và tên sinh viên : LÊ VĂN CÁC
Lớp: D10CNPM2 Địa chỉ : Số nhà 45B tổ 3 – Văn Quán – Hà Đông – Hà Nội
Điện thoại: 01644095972 .E-mail:
Đơn vị thực tập tốt nghiệp: Viện Công nghệ thông tin và Truyền thông CDIT
Người hướng dẫn trực tiếp: Chức vụ:
Chủ đề: Ứng dụng tìm kiếm địa điểm Place Apps
Kế hoạch thực tập:
TT Thời gian Nội dung Ghi chú
1 Từ ngày 23/06 đến
28/06
- Tìm hiểu về đơn vị thực tập CDIT
2 Từ ngày 29/06 đến
04/07
- Tìm hiểu về Hệ điều hành Android
và nền tảng Google Maps
3 Từ ngày 05/07 đến - Phân tích thiết kế, Cài đặt các Modul
4
25/07 và hoàn thiện giao diện cho ứng
dụng
4 Từ ngày 26/07 đến
01/08
- Hoàn thiện báo cáo và bộ câu hỏi
Chú thích: Các mốc thời gian có thể dao động nhẹ theo diễn biến dự án
GIẢNG VIÊN HƯỚNG DẪN
Hà Nội, ngày 24 tháng 6 năm 2014
SINH VIÊN
LÊ VĂN CÁC
Phần A: GIỚI THIỆU ĐƠN VỊ THỰC TẬP
I. Chức năng
Viện công nghệ Thông tin và Truyền thông CDIT là tổ chức đào tạo, nghiên cứu
trực thuộc Học viện Công nghệ Bưu chính Viễn thông, có nhiệm vụ: đào tạo, nghiên
cứu khoa học và chuyển giao công nghệ trong lĩnh vực Công nghệ thông tin và Truyền
thông.
II. Tổ chức
Trung tâm Công nghệ Thông tin CDIT được Tổng giám đốc Tổng Công ty Bưu
chính Viễn thông Việt Nam ký quyết định thành lập số 636/QĐ.TCCB-LĐ ngày 22
tháng 3 năm 1999.
Cùng với sự phát triển của ngành Công nghệ thông tin trong xu hướng hội nhập
với Truyền thông, theo định hướng phát triển của Học viện trong giai đoạn mới, ngày
07 tháng 12 năm 2011 Tập đoàn Bưu chính Viễn thông Việt Nam đã có quyết định số
1973/QĐ-VNPT-TCCB, đổi tên Trung tâm Công nghệ thông tin thành Viện công nghệ
Thông tin và Truyền thông CDIT từ 01/01/2012. Viện công nghệ Thông tin và Truyền
thông CDIT là tổ chức đào tạo, nghiên cứu trực thuộc Học viện Công nghệ Bưu chính
Viễn thông, có nhiệm vụ: đào tạo, nghiên cứu khoa học và chuyển giao công nghệ
trong lĩnh vực Công nghệ thông tin và Truyền thông.
5
CDIT đã duy trì, phát triển và chiếm lĩnh thị trường trong nước với các sản phẩm
đáp ứng tiêu chí: Tiên tiến - Tương thích - Toàn cầu, thay thế sản phẩm nhập khẩu, nỗ
lực đóng góp cho sự phát triển của mạng lưới bưu chính viễn thông và công nghệ
thông tin Việt Nam, vươn mình hòa nhập với cộng đồng CNTT trong khu vực và trên
thế giới.
6
Mô hình tổ chức:
Hình :Mô hình tổ chức CDIT
- Ban lãnh đạo viện và khoa đa phương tiện
- Phòng tổng hợp
- Phòng dịch vụ và chuyển giao công nghệ
- Các tổ chức đoàn thể xã hội
- Phòng NCPT và DT đa phương tiện
- Phòng DCPT và ĐT an toàn thông tin.
- Phòng DCPT ứng dụng ICT( Phòng viễn thông)
- Phòng DCPT hạ tầng ICT( Phòng mạng và hệ thống).
III. Các lĩnh vực hoạt động
Hoạt động của CDiT tập trung vào ba lĩnh vực chính bao gồm:
- Công nghệ Thông tin và Truyền thông (ICT)
- Đa phương tiện (Multimedia)
- An ninh và An toàn thông tin (Information Security)
7
Phần B: NỘI DUNG THỰC TẬP
I. Phần giới thiệu chung
I.1. Tên đề tài
Ứng dụng tìm kiếm địa điểm Place Apps.
I.2. Mục tiêu
- Chỉ ra được tổng quan về hệ điều hành Android và nền tảng Google Maps.
- Phân tích và thiết kế, hoàn thành được ứng dụng tìm kiếm địa điểm trên hệ
điều hành Android.
I.3. Nội dung
- Tìm hiểu tổng quan về hệ điều hành Android và nền tảng Google Maps
- Phân tích thiết kế các chức năng của ứng dụng Place Apps
- Thử nghiệm ứng dụng trên thiết bị thực.
I.4. Kết quả cần đạt
- Hiểu về hệ điều hành Android.
- Có Sản phẩm demo chạy trên thiết bị thực.
II. Đặt vấn đề
Đi cùng với sự phát triển của xã hội, hệ thống đường xá, giao thông ngày càng trở
nên phức tạp, các dịch vụ ăn uống, giải trí phát triển mạnh. Đôi lúc bước ra đường và
có thể chúng ta không biết nên đi đâu, xung quanh mình có địa điểm nào hấp dẫn hay
đôi khi bị lạc đường mà xung quanh không có bản đồ. Hay trong những chuyến du
lịch, công tác ngắn ngày, chúng ta không biết nên chọn địa điểm nào để đáp ứng nhu
cầu ăn uống. Từ mong muốn hỗ trợ người dùng giải quyết các vấn đề trên. Thay vì phải
mang một chiếc bản đồ hay phải liên tục hỏi đường thì chúng ta chỉ việc mở ứng dụng
ra và nó sẽ đưa ra những thông tin mà chúng ta đang tìm kiếm.
Place Apps sẽ cung cấp cho người dùng một trải nghiệm mới về cách tìm kiếm
các địa điểm một cách nhanh chóng, với các hỗ trợ tìm kiếm như: Quán cafe, Ngân
hàng, Nhà hàng, Trạm xăng. Với cả chế độ tìm kiếm online (nếu máy người dùng có
kết nối internet, GPS và đã cài sẵn Google play service) và chế độ offline (nếu máy
người dùng không kết nối internet), Place Apps sẽ mang đến cho người dùng những
tiện ích bỏ túi hấp dẫn…Em chọn xây dựng ứng dụng này trên nền tảng hệ điều hành
Android, một hệ điều hành cho thiết bị di động do Google phát triển và hiện đang dẫn
đầu về số lượng các thiết bị sử dụng nó. Ứng dụng sử dụng hệ thống bản đồ nền của
Google Maps thông qua Google Maps API v2 – một tính năng được cung cấp trong gói
Google Play Service.
8
Đề tài “Ứng dụng tìm kiếm địa điểm Place Apps” mà em trình bày dưới đây gồm:
- Hệ điều hành Android và nền tảng Google Maps.
- Phân tích thiết kế ứng dụng Place Apps.
Trong quá trình tìm hiểu đề tài, em xin chân thành cảm ơn các thầy cô ở Viện
Công Nghệ Thông Tin & Truyền Thông CdiT đã chỉ dẫn tận tình, định hướng và tạo
nhiều điều kiện thuận lợi cho em tìm hiểu tốt đề tài này.
III. Tổng quan hệ điều hành android và nền tảng google maps
III.1. Hệ điều hành Android
III.1.1.Sơ lược về Android
Hệ điều hành Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế
cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh hay máy tính
bảng. Ban đầu Android được phát triển bởi một công ty cùng tên và nhận hỗ trợ tài
chính từ Google. Sau đó được mua lại bởi chính Google vào năm 2005. Android ra mắt
2 năm sau đó với tuyên bố thành lập Liên minh thiết bị cầm tay mở. Thiết bị đầu tiên
chạy Android được bán trên thị trường vào tháng 10 năm 2008.
Android có mã nguồn mở và được Google công bố theo giấy phép Apache. Chính
mã nguông cùng giấy phép không có nhiều ràng buộc này đã 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 được thỏa thích điều chỉnh và phân
phối Android một cách hoàn toàn miễn phí. Ngoài ra Android còn có một lực lượng rất
đông đảo các lập trình viên viết ứng dụng trên nền ngôn ngữ Java có sửa đổi. Vào
tháng 10 năm 2012 trên chợ ứng dụng chính của Android đã có khoảng 700.000 ứng
dụng đi theo đó là khoảng 25 tỉ lượt tải ứng dụng.
Những yếu tố này dần đưa Android trở thành hệ điều hành trên nền tảng di động
thông minh phổ biến nhất thế giới, vượt qua Symbian vào quý IV năm 2010, và được
các cong 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, chạy trên các thiết bị công nghệ cao thay vì bắt tay làm mới một hệ
điều hành cho riêng họ. Bản chất mở của Android cũng thu hút không ít các lập trình
viên và những người đam mê mã nguồn mở tạo ra các dự án do chính cộng đồng quản
lý.
9
Với những tiến bộ vượt bậc, Android chiếm 75% thị phần điện thoại thông minh
trên thế giới vào quý III năm 2012 với khoảng 500 triệu thiết bị đã kích hoạt và 1,3
triệu thiết bị mới kích hoạt mỗi ngày.
Giao diện của Android dựa trên nguyên lý hoạt động tương tác trực tiếp, sử dụng
các động tác cảm ứng tương tự như ngoài đời sống thực tế như vuốt, kéo, xoay. Sự đáp
ứng của thiết bị gần như ngay lập tức khi xảy ra tương tác.
Android hoạt động dựa trên nền Linux 2.6, kể từ Android 4.0 với tên gọi Ice
Cream Sandwich trở về sau, là phiên bản Linux 3.0 với middleware, thư viện và API
viết bằng C, còn các phần mềm ứng dụng chạy trên một nền tảng bao gồm các thư viện
tương thích với Java. Android sử dụng máy ảo Dalvik như một trình biên dịch tự động
để chạy mã dex của Dalvik, thường mã này được dịch thành Java bytecode. Nền tảng
của Android là kiền trúc ARM (Acorn RISC Machine). Người ta cũng muốn nó hỗ trợ
kiến trúc x86 thể hiện ở dự án mang tên Android x86.
Nhân Linux dùng cho Android được Google thực hiện nhiều thay đổi về kiến trúc
so với nhân gốc. Android không có sẵn X Window System cũng như không hỗ trợ các
thư viện GNU chuẩn. Việc chuyển các thư viện có sẵn từ Linux sang Android rất khó
khăn. Các ứng dụng C đơn giản và SDL cũng được hỗ trợ bằng cách chèn các đoạn
shim Java vào và sử dụng tương tự JNI.
III.1.2.Ứng dụng
Android đang có một sự tăng trưởng vượt bậc số lượng các ứng dụng của bên thứ
ba, những ứng dụng này được mang tới cho người dùng chủ yếu thông qua một kênh là
chợ ứng dụng như Google Play hay Amazon AppStore hoặc người dùng có thể tải về
tập tin cài đặt APK từ trang của một hãng thứ ba nào đó. Ứng dụng Play Store cho
phép người dùng tham khảo, tải về, cập nhật các ứng dụng được phát hành bởi Google
và các hãng thứ ba khác và được cài đặt sẵn trên các thiết bị nếu chúng tương thích với
các yêu cầu của Google.
Hiện tại trên các chợ ứng dụng này đã có hơn 700.000 ứng dụng với nhiều mặt hỗ
trợ khác nhau và số lượt tải ứng dụng đã đạt đến con số 25 tỉ lượt tải.
Các ứng dụng viết cho Android được viết bằng ngôn ngữ Java trên một bộ công
cụ hỗ trợ lập trình mang tên Android Software Development Kit (SDK). SDK này chứa
sẵn các công cụ hỗ trợ lập trình bao gồm debuger, các thư viện phần mềm, bộ giả lập
10
thiết bị ảo, tài liệu kỹ thuật, mã nguồn mẫu và các bài hướng dẫn. Thông thường nó sử
dụng một môi trường phát triển tích hợp là Eclipse sử dụng trình cắm Android
Development Tool (ADT). Ngoài ra cũng tồn tại một số công cụ lập trình khác như
Native Development Kit (NDK) dùng cho các ứng dụng hay phần mở rộng viết bằng C
hoặc C++, như Google App Inventor, một môi trường lập trình dành cho các lập trình
viên mới làm quen và một vài nền tảng kép giữa di động và môi trường ứng dụng web.
III.1.3. Tổ chức mã nguồn mở
Android là một hệ điều hành mã nguồn mở cho phép các nhà phát triển và tất cả
những người quan tâm có thể tham gia phát triển một cách thoải mái các ứng dụng hay
thay đổi, nâng cấp các phiên bản của hệ điều hành.
Các bản cập nhật từ các nhà phát hành này thường mang tới các tính năng mới,
hay hoàn thiện một tính năng cũ nào đó. Những bản cập nhật này thường đến với người
dùng nhanh hơn so với từ nhà sản xuất chính, mặc dù chúng không trải qua một công
đoạn kiểm thử hay đảm bảo chất lượng nào. Từ đam mê của những nhà phát triển này,
các thiết bị cũ có thể chạy được những phiên bản mới nhất của hệ điều hành mà không
cần tới những bản cập nhật (vốn bị bỏ quên) từ phía nhà cung cấp, hay chạy Android
trên các thiết bị vốn chạy các hệ điều hành khác, như HTC TouchPad. Cộng đồng
thường đưa ra những phiên bản đã được root sẵn và điều chỉnh những vấn đề không
phù hợp cho những người không nắm bắt được công nghệ như khả năng ép xung hay
over/undervolt
1
của thiết bị. CyanogenMod là một firmware được sử dụng nhiều nhất.
Trước đây các nhà sản xuất và phân phối điện thoại tỏ ra thiếu thiện chí với việc
hỗ trợ các firmware đến từ bên thứ ba. Họ còn cho rằng các thiết bị chạy các firmware
này sẽ hoạt động không tốt và gây tốn kém tiền bạc cho họ nếu họ hỗ trợ chúng. Hơn
thế các firmware đã trải qua nhiều thay đổi như CyanogenMod đôi khi còn cung cấp
những tính năng như tethering
2
mà người dùng sẽ phải trả phí cho nhà mạng nếu muốn
1 Over/UnderVolt: là một kỹ thuật tăng giảm điện áp của một bộ phận nào đó, thường
là vi xử lý nhằm giảm áp lực xử lý, giải quyết vấn đề tản nhiệt, kỹ thuật thay thế phần
nào cho việc sử dụng hệ thống quạt tản nhiệt trong các thiết bị điện tử.
2 Tethering: một kỹ thuật giúp một chiếc điện thoại có thể kết nối không dây với một
thiết bị khác như PC,… mục đích chủ yếu của kỹ thuật này là chia sẻ, truyền mạng
Internet giữa các thiết bị(sử dụng điện thoại như một modem không dây cho PC,
laptop)
11
sử dụng chúng. Kết quả là một số thiết bị bắt đầu đặt ra một số hàng rào như khóa
bootloader để hạn chế quyền truy cập vào boot. Tuy nhiên sau những phát triển của
cộng đồng này, Thư viện Quốc hội Hoa Kỳ đã đưa ra một thông cáo cho phép “jail
break” (kỹ thuật bẻ khóa) các thiết bị di dộng. Nhờ vậy các nhà cung cấp và nhà mạng
bắt đầu tỏ ra mềm mỏng hơn với các nhà phát triển thứ ba này, trong đó có một vài
công ty lớn như HTC, Motorola, Samsung và Sony cung cấp hỗ trợ và khuyến khích
phát triển. Kết quả của nó làm cho các vấn đề về phần cứng ngăn không cho cài
firmware ngày càng giảm bớt, số lượng các thiết bị được mở khóa thậm chí mở khóa
bootloaders sẵn ngày càng gia tăng, như chuỗi sản phẩm điện thoại Nexus của Google.
Tuy nhiên nếu làm vậy người dùng có thể phải từ bỏ chế độ bảo hành cho thiết bị của
mình. Và vấn có một vài nhà mạng ở Mỹ không chấp nhận chuyện này, điện thoại sử
dụng mạng của họ bắt buộc không được mở khóa.
Việc mở khóa, bẻ khóa đang trở thành nguyên nhân gây căng thẳng giữa cộng
đồng với các nhà công nghiệp. Cộng đồng người dùng cho rằng nền công nghiệp đáp
ứng quá chậm với nhu cầu cập nhật, nâng cấp của người dùng thậm chí không hỗ trợ
họ đối với những thiết bị cũ, còn các nhà phát triển không chính thức thì làm rất tốt
điều đó.
III.1.4.Dành cho nhà phát triển
Hiện tại Android cung cấp một trang tài liệu hỗ trợ các nhà lập trình tại địa chỉ
, trang này cung cấp các tài liệu kỹ thuật về các thư viện,
cách sử dụng các hàm, lớp trong Android.
Ngoài ra còn các trang hỗ trợ không chính thức như trang hỏi đáp
hay các trang hướng dẫn lập trình, tham khảo mã nguồn, ví
dụ mẫu như hay . Ở Việt Nam cũng có
nhiều cộng đồng Android khá đông đảo tại các diễn đàn như vietandroid.com,
android.vn là nơi trao đổi kinh nghiệm, thảo luận các vấn đề về lập trình Android.
III.2. Google play service và Google Maps v2
III.2.1.Google Play Service
Google Play Service là một dịch vụ của Google Play, được sử dụng trên các thiết
bị chạy hệ điều hành Android với nhiệm vụ chính là quản lý, kiểm soát và cập nhật các
ứng dụng hay nâng cấp hệ điều hành theo nhu cầu của người dùng.
12
Trong năm 2013, Google đưa ra đã công bố nhiều cải tiến cho Android: Google
Hangouts, Google Play games, giao diện mới cho Google Play Music và Google Map,
bộ API mới cho Google Map, tính năng lưu trữ dữ liệu trò chơi trên mạng và một tính
năng quan trọng khác là Android Device Manager. Tất cả các tính năng này được
không được tích hợp trong một bản cập nhật nào của Android mà được đóng gói vào
một ứng dụng duy nhất. Đó chính là Google Play Service.
Tuy nói như vậy, nhưng Google Play Service không thực sự là một ứng dụng. Nó
đòi hỏi hầu hết các quyền truy cập, sử dụng cơ chế cập nhật ngầm, tự cập nhật thay vì
thông qua Play Store, người dùng không thể kiểm soát và cũng không biết khi nào thì
nó thực hiện cập nhật. Google Play Service là một nền tảng mới cho Android.
Google Play Service có cách hoạt động rất rõ ràng: Nó có thể điều khiển toàn bộ
hệ thống nhưng lại tự động cập nhật, nâng cấp chính mình. Là một phần của gói ứng
dụng Google, và các bên thứ hai không thể tác động vào nó; hay nói cách khác Google
hoàn toàn kiểm soát Google Play Service.
Hầu hết các ứng dụng hiện tại của Google đều cần có Google Play Service để có
thể hoạt động được. Hiện tại nó đang điều khiển tất cả các API của Google Maps, chịu
trách nhiệm đồng bộ dữ liệu tài khoản Google Plus, quản lý nội dung dữ liệu từ xa, đẩy
tin nhắn, điều khiển hoạt động nền của Play Games.
Để thấy mức độ quan trọng của Google Play Service, hãy cùng nhìn vào những
con số thống kê sau. Lượng thiết bị chạy các bản từ Jelly Bean(Android 4.1) chiếm một
nửa số thiết bị chạy Android với 54.2%, trong đó Android 4.4 Kit Kat ra mắt gần đây
đạt con số 1.1%. Trong khi đó Google Play Service được phát hành tới tất cả các thiết
bị chạy Android từ phiên bản 2.2 trở lên có nghĩa là phần lớn các thiết bị phát hành
trong vòng 3 năm trở lại đây (theo Google thì ở vào khoảng 98% thiết bị chạy Android
sử dụng phiên bản từ 2.2 trở lên). Với con số khổng lồ như vậy nhưng nếu có một thay
đổi quan trọng từ các ứng dụng của Google thì chỉ trong vòng 1 tuần hầu hết số thiết bị
trên đều sẽ hoàn tất cập nhật. Play Service trở thành sợi dây liên kết giữa Google và
thiết bị của bạn.
Dựa vào Play Service, các tính năng trên Android không còn bị gắn chặt vào hệ
điều hành nữa, trừ những tính năng cơ bản. Thay vì phải mất vài tháng chờ phiên bản
13
hệ điều hành mới được ra mắt, người dùng có thể chỉ phải chờ một vài tuần là đã có thể
trải nghiệm những thay đổi mới nhất từ Google.
III.2.2. Google Maps API v2
III.2.2.1. Google Maps là gì?
Là một hệ thống ứng dụng và công nghệ bản đồ kỹ thuật số do Google cung cấp,
nhằm mục đích cung cấp một số dịch vụ liên quan đến bản đồ. Nó bao gồm trang web
Google Maps (), Google Rider Finder, Google Transit, và một
hệ thống nhúng bản đồ vào một ứng dụng thứ ba thông qua Google Maps API. Google
Maps đưa ra các chỉ dẫn về đường đi, chỉ đường cho người đi bộ, đi xe hơi và các
phương tiện di chuyển đường bộ khác, các địa điểm, khu vực trên toàn thế giới.
III.2.2.2. Google Maps API
Sau thành công trên một vài ứng dụng được nhúng Google Maps như
chicagocrime.com hay housingmaps.com. Google bắt tay vào phát triển và tung ra hệ
thống thư viện Google Maps API v1 vào tháng 6 năm 2005, cho phép các nhà phát
triển sử dụng hệ thống bản đồ của Google vào trang web của họ. Khi đó, nó hoàn toàn
miễn phí và không hề có các quảng cáo chèn vào. Nhưng Google khẳng định trong
tương lai họ có quyền chèn quảng cáo vào trong các bản đồ đó.
Bằng cách sử dụng Google Maps, người ta có thể đưa vào sản phẩm của mính
một hệ thống bản đồ nền, sau đó phủ một lớp dữ liệu tùy chọn lên trên tùy theo các
mục đích khác nhau.
Ban đầu thư viện chỉ là một thư viện Javascript đơn giản, sau đó được mở rộng
bao gồm các tính năng như dùng cho ứng dụng sử dụng Adobe flash(hiện tại điều này
đã được lược bỏ), dịch vụ lấy hình ảnh bản đồ tĩnh, các dịch vụ mạng mã hóa dữ liệu
địa lý, tạo độ cao(bản đồ 3 chiều), tạo đường giao thông. Hiện tại có khoảng hơn 1
triệu trang web sử dụng hệ thư viện này. Sau này Google mở rộng hệ thống thư viện
này để nó có thể ứng dụng trên nhiều nền tảng thiết bị khác nhau chứ không riêng gì
nền tảng website.
III.2.2.3. Ứng dụng bản đồ trên các thiết bị di động
Tháng 10 năm 2005, Google giới thiệu một ứng dụng Java với tên gọi Google
Maps cho điện thoại di động, chạy trên các thiết bị sử dụng ngôn ngữ Java. Đến tháng
4 năm 2010, bản nâng cấp với tên gọi Google Maps Navigation được phát hành nó hỗ
trợ các thiết bị chạy Google Android phiên bản 2.0 Eclair như Motorola Droid, với các
14
tính năng mới như nhận dạng lệnh qua giọng nói, báo cáo giao thông, xem đường đi.
Đến nay thì Google Maps đã có mặt ở hầu hết các nền tảng từ Android, iOS đến các hệ
máy chơi game như Nintendo DS, Wii U,…
III.2.3.MYSQL vã dữ liệu JSON
III.2.3.1. MYSQL
MySQL hay còn được gọi là My Sequel là một hệ cơ sở dữ liệu mã nguồn mở
thông dụng bậc nhất trên thế giới và được các nhà phát triển rất ưa chuộng sử dụng. Vì
MySQL đáp ứng được các yêu cầu về tốc độ xử lý, tính ổn định và rất dễ sử dụng, có
tính khả chuyển và hoạt động tốt trên nhiều nền tảng hệ điều hành và bản thân sở hữu
một số lượng lớn các hàm tiện ích rất mạnh. MySQL đặc biệt thích hợp cho các ứng
dụng sử dụng hệ cơ sở dữ liệu trên nền web. MySQL thường được sử dụng để bổ trợ
cho các ngôn ngữ web như PHP, Perl,…
III.2.3.2. JSON
JSON (viết tắt của Java Script Object Notation) là một chuẩn định dạng mở sử
dụng cho việc truyển gửi dữ liệu dạng đối tượng từ máy chủ đến các máy khách, thông
dụng trong các ứng dụng web, có nét tương tự như ngôn ngữ XML. Được Douglas
Crockford phát triển và chính thức công bố vào năm 2001.
IV. Phân tích thiết kế ứng dụng place apps
IV.1. Yêu cầu chức năng và cơ sở dữ liệu
IV.1.1.Mục đích và yêu cầu.
IV.1.1.1. Yêu cầu chức năng chính
Là một ứng dụng hỗ trợ cả việc tìm kiếm online và offline nên đầu tiên ứng dụng
cần có một cơ sở dữ liệu đủ lớn để cung cấp cho người dùng các thông tin. Ứng dụng
cũng hỗ trợ một server để chứa các thông tin phản hồi của người dùng: các chấm điểm
sao, các bình luận,…
Tiếp đó, ứng dụng cần phải đảm bảo các tính năng cơ bản của một ứng dụng bản
đồ như cung cấp hệ thống bản đồ cùng danh mục địa điểm, thông tin cụ thể của địa
điểm đó và có khả năng chỉ dẫn ngươi dùng đến địa điểm đó, tìm kiếm một địa điểm
theo yêu cầu của người dùng. Cập nhật vị trí của người dùng khi người dùng di
chuyển.
IV.1.1.2. Yêu cầu thiết bị
15
Để sử dụng được ứng dụng mạng địa điểm Ineed, thiết bị cần đạt được những yêu
cầu sau:
- Hệ điều hành Android mọi phiên bản.
- Cài đặt Google Play Service (không bắt buộc).
- Có định vị GPS (không bắt buộc).
- Kết nối Internet (không bắt buộc).
IV.1.2.Phân tích cơ sở dữ liệu
Cơ sở dữ liệu xoay quanh hai đối tượng chính bao gồm: địa điểm và người dùng.
Đối tượng địa điểm chứa các thuộc tính như vị trí, địa chỉ, tên, mô tả… Đối tượng
người dùng để mô tả và lưu trữ các thông tin của người dùng sử dụng để đăng nhập hệ
thống.
Với các yêu cầu thiết kế như trên, cơ sở dữ liệu sẽ cần các bảng để quản lý thông
tin về tài khoản, thông tin địa điểm, thông tin về phản hồi của người dùng,…
Như vậy, cơ sở dữ liệu sẽ như sau:
Hình : Cơ sở dữ liệu hệ thống
IV.2. Phân tích chức năng
IV.2.1.Tổng quan
Nhằm đáp ứng các yêu cầu nêu trên, ứng dụng cần có các chức năng cơ bản sau:
16
- Xem danh sách địa điểm: Cung cấp thông tin tổng quan, danh sách các địa
điểm dựa theo vị trí của người dùng. Người dùng có thể xem chi tiết một địa
điểm từ chức năng này.
- Xem chi tiết một địa điểm: Cung cấp thông tin chi tiết về một địa điểm được
người dùng lựa chọn.
- Đăng nhập/Đăng ký: cho phép người dùng đăng nhập vào hệ thống và lấy
các thông tin cá nhân. Hoặc đăng ký đối với người mới.
- Quản lý thông tin tài khoản: quản lý thông tin cá nhân, thay đỏi một số thông
tin cho phép. Yêu cầu đăng nhập
IV.2.2.Xem danh sách địa điểm
IV.2.2.1. Chức năng:
Chức năng này có chức năng hiển thị danh sách các địa điểm để người dùng có
thể lựa chọn xem địa điểm mình muốn tìm kiếm. Để hiển thị được danh sách các địa
điểm theo nhu cầu, người dùng có ba lựa chọn: Tìm kiếm theo tên (từ khóa), tìm kiếm
theo khu vực hành chính và tìm kiếm theo Google maps.
IV.2.2.2. Mô tả quá trình thực thi:
Sau khi ứng dụng được khởi chạy, hệ thống sẽ hiển thị các đối tượng tìm kiếm
bao gồm: Quán cafe, Ngân hàng và Trạm xăng. Sau khi người dùng chọn một đối
tượng tìm kiếm thì sẽ hiển thị form tìm kiếm (đây cũng chính là form sẽ hiển thị danh
sách các địa điểm). Như đã nói ở trên, người dùng sẽ có 3 lựa chọn để tìm kiếm. Nếu
người dùng chọn kiểu tìm kiếm theo tên, thì một dialog sẽ xuất hiện, sau khi nhập từ
khóa và nhấn OK, hệ thống sẽ tìm kiếm và trả về cho người dùng một danh sách các
địa điểm theo từ khóa đó. Nếu người dùng chọn kiểu tìm kiếm theo khu vực hành
chính thì một dialog sẽ hiện ra có chưa tên các quận huyện ở Hà Nội, người dùng có
thể lựa chọn một hay nhiều quận huyện, hệ thống sẽ hiển thị danh sách theo các lựa
chọn. Một cách khác, nếu người dùng lựa chọn kiểu tìm kiếm sử dụng google maps thì
hệ thống sẽ yêu cầu bạn kết nối internet và bật GPS, khi đó hệ thống sẽ hiển thị bản đồ
vị trí bạn đang đứng và các địa điểm xung quanh bạn trong vòng bán kính 10km. Bạn
sẽ được chỉ đường trong trường hợp này.
IV.2.3.Xem chi tiết địa điểm
IV.2.3.1. Chức năng:
17
Khi một địa điểm được người dùng chọn từ chức năng xem danh sách địa điểm,
chức năng xem chi tiết địa điểm được thực thi. Nhiệm vụ chính của nó là đưa ra các
thông tin chi tiết về một địa điểm như tên địa điểm, loại hình, vị trí, khoảng cách, mô
tả, thông tin liên lạc. Ngoài ra người dùng có thể sử dụng một trong các tính năng mở
rộng như xem và thêm phản hồi, chấm điểm cho địa điểm.
IV.2.3.2. Mô tả quá trình thực thi:
Sau khi người dùng lựa chọn một địa điểm, thông tin về địa điểm đó sẽ được hiển
thị theo thứ tự: Tên địa điểm, địa chỉ, mô tả, các tuyến bus đi qua. Kèm theo đó là các
bình luận và chấm điểm sao cho địa điểm. Để có thể gửi bình luận, người dùng cần
phải có một tài khoản để đăng nhập. Sau khi bình luận, nội dung sẽ được hiển thị lên
trên địa điểm đó.
IV.2.4.Đăng nhập – Đăng ký
IV.2.4.1. Chức năng:
Cho phép người dùng đăng nhập vào tài khoản cá nhân trên hệ thống, hay đăng
ký cho những người dùng mới. Chức năng này được gọi mỗi khi người dùng thực hiện
các hành động cần dữ liệu cá nhân như thêm địa điểm, thay đổi thông tin, đăng ký theo
dõi địa điểm,… mà chưa thực hiện đăng nhập trước đó.
IV.2.4.2. Biểu đồ Use case:
18
Hình : Usecase chức năng đăng nhập/đăng ký.
IV.2.4.3. Mô tả quá trình thực thi:
Khi nhận được yêu cầu đăng nhập của người dùng hay người dùng thực hiện các
hành động cần đăng nhập, ứng dụng thực hiện kiểm tra thông tin đăng nhập. Nếu thông
tin hợp lệ, ứng dụng thực hiện hành động đăng nhập và lấy về thông tin tài khoản từ
server, đồng thời lưu thông tin đăng nhập. Đối với người dùng mới, hệ thống cho phép
đăng ký và thưc hiện đăng nhập tự động nếu đăng ký thành công.
19
Hình :Biểu đồ trạng thái chức năng đăng nhập – đăng ký.
20
Hình : Biểu đồ tuần tự chức năng đăng nhập.
Hình : Biểu đồ tuần tự chức năng đăng ký.
IV.2.5.Quản lý thông tin tài khoản
IV.2.5.1. Chức năng:
Cho phép người dùng theo dõi các thông tin về tài khoản đã đăng ký, thay đổi
mật khẩu, thay đổi thông tin. Chức năng này yêu cầu đăng nhập.
IV.2.5.2. Biểu đồ Use case:
21
Hình : Usecase chức năng quản lý thông tin cá nhân.
IV.2.5.3. Mô tả quá trình thực thi:
Ứng dụng lấy dữ liệu cá nhân từ server và hiển thị cho người dùng khi có yêu
cầu. Khi người dùng thay đổi thông tin, những thông tin này sẽ được kiểm tra tính hợp
lệ trước khi được cập nhật trên cơ sở dữ liệu.
22
Hình : Biểu đồ trạng thái quản lý thông tin cá nhân.
23
Hình : Biểu đồ tuần tự quản lý thông tin cá nhân.
IV.3. Thiết kế
IV.3.1.Thiết kế giao diện
IV.3.1.1. Giao diện chính
Giao diện chính bao gồm các thể loại để người dùng chọn lựa theo nhu cầu.
Sau khi người dùng chọn thì một giao diện khác sẽ được hiển thị lên theo thể loại
đó.
24
Hình : Giao diện chính.
25