HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM CHUYÊN ĐỀ
Giảng viên: TS: Nguyễn Duy Phương
Sinh viên: Vũ Văn Công
Lớp: D10CNPM2
Mã sinh viên: 1021040008 HÀ NỘI, 04/2014
www.ptit.edu.vn
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 1 MỤC LỤC
3.3.1 Thiết kế giao diện. 23
3.3.2 Thiết kế Activity. 34
CHƯƠNG 4: KẾT LUẬN 42
4.1. Kết quả đạt được 42
4.2. Hướng phát triển cho tương lai 42
Tài liệu tham khảo 43 CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 3
CHƯƠNG 1: ỨNG DỤNG CÔNG NGHỆ BẢN ĐỒ
TRÊN THIẾT BỊ DI ĐỘNG.
1.1. Sự phát triển của điện thoại thông minh và ứng dụng di động.
Sự phát triển đến chóng mặt của điện thoại di động trong thời gian gần đây đã biến
nó thành một công cụ không thể thiếu của mỗi người. Từ chỗ chỉ là một thiết bị liên lạc
thông thường, nó đã đạt được những bước tiến cực lớn để góp mặt trong hầu hết mọi
mặt của cuộc sống. Chỉ với một chiếc điện thoại ở mức trung bình hiện nay, chúng đã
có thể mang đến cho người dùng rất nhiều trải nghiệm thú vị từ đơn giản như chơi
nhạc, lướt web đến các chức năng phức tạp khác…
Điện thoại thông minh được biết đến với thế mạnh là một thiết bị nhỏ gọn với nhiều
công nghệ tích hợp và một hệ thống khổng lồ các ứng dụng, hơn thế là khả năng hỗ trợ
người dùng. Để đạt được những tác động như ngày hôm nay, điện thoại thông minh đã
có một quá trình biến đổi không ngừng.
Đầu tiên phải kể đến là sự phát triển của các thiết bị phần cứng. Từ một chiếc điện
thoại được coi là di động của Motorola ra đời vào năm 1973. Nói như vậy vì khi đó nó
nặng tới 1.1 kg, dày tới 13cm và rộng 4,5 cm, chỉ thực hiện được một cuộc gọi kéo dài
30 phút mà phải mất tới 10 tiếng để nạp lại năng lượng. Cho đến nay nói đến điện thoại
Đ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ư: ATM, Ngân hàng, Nhà
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 5
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.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 6
CHƯƠNG 2: HỆ ĐIỀU HÀNH ANDROID VÀ NỀN
TẢNG GOOGLE MAPS.
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.
2.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.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 8
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.
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 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 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
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.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 11
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 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.
c. Ứ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 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
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 13
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,…
2.2.3 MySQL và dữ liệu JSON
a. 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,…
b. 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.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 15
Như vậy, cơ sở dữ liệu sẽ như sau:
3.2. Phân tích chức năng.
3.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:
- 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.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 16
- 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
3.2.2 Xem danh sách địa điểm:
a. 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.
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 đó.
3.2.4 Đăng nhập – Đăng ký
a. 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 đó.
b. Biểu đồ Usercase:
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 18 Hình 1 – Usercase chức năng đăng nhập/đăng ký.
c. 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.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 19 Hình 2 – Biểu đồ trạng thái chức năng đăng nhập – đăng ký.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
Hình 6 – Biểu đồ trạng thái quản lý thông tin cá nhân.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 23 Hình 7 – Biểu đồ tuần tự quản lý thông tin cá nhân.
3.3. Thiết kế.
3.3.1 Thiết kế giao diện.
a. 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 đó.
CHUYÊN ĐỀ –ỨNG DỤNG: PLACES APPS
2014
SINH VIÊN THỰC HIỆN: VŨ VĂN CÔNG – D10CNPM2 TRANG 24 Hình 8 – Giao diện chính
b. Giao diện tìm kiếm (hiển thị danh sách)