Ngày này, thị trường di động đang phát triển mạnh mẽ chưa từng thấy với vô vàng các nhãn hiệu, kiểu dáng, tính năng...Đã biến chiếc điện thoại thành một thiết bị giải trí đa phương tiện không thể thiếu. Với lợi thế nhỏ gọn, được mọi người sử dụng đem theo mọi lúc mọi nơi, nhưng cũng vì nhỏ g ọn như vậy cũng là một bất lợi về xử lý và tốc độ. Để đảm bảo một chiếc điện thoại thông minh hoạt động tốt thì nó cần có một hệ điều hành quản lý thiết bị.Đi kèm với sự phát triển phần cứng trên thiết bị động thì cuộc chiến của các nhà phát triển các hệ điều hành trên điện thoại di động cũng diễn ra hết sức khốc liệt. Hiện nay, các nền tảng di động lớn được biết đến như sau 1.1.1 IOS IOS là hệ điều hành trên các thiết bị di động của Apple. Ban đầu hệ điều hành này chỉ được phát triển để chạy trên iPhone, nhưng sau đó nó đã được mở rộng để chạy trên các thiết bị của Apple như iPod touch, iPad và Apple TV. Ngày 31 tháng 5, 2011, App Store của Apple chứa khoảng 500 000 ứng dụng iOS, và được tải về tổng cộng khoảng 15 tỷ lần. Trong quý 4 năm 2010, có khoảng 26% điện thoại thông minh chạy hệ điều hành iOS, sau hệ điều hành Android của Google và Symbian của Nokia. Giao diện người dùng của iOS dựa trên cơ sở thao tác bằng tay. Người dùng có thể tương tác với hệ điều hành này thông qua rất nhiều động tác bằng tay trên màn hình cảm ứng của các thiết bị của Apple. Tháng 6 năm 2010, Apple đổi cái tên iPhone OS thành iOS. Nhãn hiệu IOS đã được Cisco dùng để đặt tên cho hệ điều hành của mình. Để tránh các vụ kiện cáo, Apple đã xin giấy phép sử dụng nhãn hiệu iOS từ Cisco. 1.1.2 ANDROID Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android ( sau đó được Google mua lại vào năm 2005). Tháng 7 năm 2005, Google mua lại Android, Inc., một công ty nhỏ mới thành lập có trụ sở ở Palo Alto, California, Mỹ. Những nhà đồng sáng lập của Android chuyển sang làm việc tại Google gồm có Andy Rubin (đồng sáng lập công ty Danger), Rich Miner (đồng sáng lập công ty Wildfire Communications), Nick Sears (từng là phó chủ tịch của TMobile), và Chris White (trưởng nhóm thiết kế và phát triển giao diện tại WebTV). Khi đó, có rất ít thông tin về các công việc của Android, ngoại trừ việc họ đang phát triển phần mềm cho điện thoại di động. Điều này tạo những tin đồn về việc Google có ý định bước vào thị trường điện thoại di động.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771
Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
ĐỒ ÁN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : D480201
ĐỀ TÀI : XÂY DỰNG ỨNG DỤNG DAILYMOODZ
Trang 2Tôi xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin, trường Đại học Bách khoa Đà Nẵng đã truyền đạt những kiến thức quý báu cho tôi trong những năm học vừa qua và nhất là đã tạo điều kiện thuận lợi cho tôi học tập, thực hiện đề tài tốt nghiệp này.
Đặc biệt, tôi xin chân thành cảm ơn Thầy giáo PGS.TS Võ Trung Hùng
đã trực tiếp, tận tình giúp đỡ và hướng dẫn tôi trong suốt thời gian thực hiện đề tài.
Để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình và bạn bè
đã động viên, khích lệ, giúp đỡ và tạo điều kiện thuận lợi nhất có thể trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này.
Mặc dù đã cố gắng nỗ lực hết sức để thực hiện đề tài này, song luận văn của tôi chắc chắn khó tránh khỏi những thiếu sót Do vậy, tôi rất mong nhận được sự thông cảm, góp ý và chỉ bảo tận tình của thầy cô.
Một lần nữa xin chân thành cám ơn!
Đà Nẵng, ngày 08 tháng 06 năm 2016
Sinh viên thực hiện
Bùi Xuân Thế
Trang 3Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy PGS.TS Võ Trung Hùng.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu trách nhiệm.
Sinh viên
Bùi Xuân Thế
Trang 4
Đà Nẵng, ngày … tháng … năm 2016
CÁN BỘ HƯỚNG DẪN
PGS.TS VÕ TRUNG HÙNG
Trang 5
Trang 6
MỞ ĐẦU 1
1 GIỚI THIỆU ĐỀ TÀI 1
2 MỤC ĐÍCH VÀ HƯỚNG XÂY DỰNG ĐỀ TÀI 1
2.1 Mục đích của đề tài 1
2.2 Ý nghĩa đề tài 1
2.3 Phạm vi đề tài 1
2.4 Nhiệm vụ cần thực hiện 2
2.5 Công cụ xây dựng 2
2.6 Dự kiến kết quả đạt được 2
3 TÓM TẮT PHƯƠNG PHÁP TRIỂN KHAI 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1 Tìm hiểu nền tảng di động 4
1.1.1 IOS 4
1.1.2 ANDROID 5
1.1.3 WINDOWN PHONE 5
1.2 Hệ điều hành Android 6
1.2.1 Giới thiệu 6
1.2.2 Kiến trúc 7
1.2.3 Ngôn ngữ lập trình Java 9
1.2.4 Môi trường lập trình Android Studio và Eclipse 10
1.3 WEB SERVICE 11
1.3.1 Giới thiệu 11
1.3.2 Giới thiệu về ngôn ngữ PHP 12
1.3.3 Giới thiệu về JSON 12
1.3.4 Giới thiệu hệ quản trị cơ sở dữ liệu MySql 13
1.4 KẾT CHƯƠNG 13
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 14
2.1 PHÂN TÍCH YÊU CẦU 14
2.1.1 Mô tả bài toán 14
2.1.2 Phân tích yêu cầu bài toán 14
2.1.3 Mô tả những yêu cầu phi chức năng 15
Trang 72.2.1 Yêu cầu hệ thống 18
2.2.2 Biểu đồ ca sử dụng 28
2.2.3 Biểu đồ hoạt động 31
2.2.4 Biểu đồ tuần tự 34
2.2.5 Biểu đồ lớp 37
2.3 Cơ sở dữ liệu 38
2.3.1 Các bảng cơ sở dữ liệu 38
2.3.2 Mô hình quan hệ cơ sở dữ liệu 47
2.4 KẾT CHƯƠNG 50
CHƯƠNG 3: TRIỂN KHAI CHƯƠNG TRÌNH 51
3.1 Công cụ, môi trường phát triển ứng dụng 51
3.1.1 Công cụ 51
3.1.2 Môi trường phát triển ứng dụng 51
3.2 Đánh giá kết quả 51
3.2.1 Kết quả 51
3.2.2 Những điều đạt được 61
3.2.3 Những điều chưa đạt được 61
3.3 KẾT CHƯƠNG 61
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 62
1 Kết luận 62
2 Hướng phát triển 62
TÀI LIỆU THAM KHẢO 63
Trang 8Hình 1: Hệ điều hành trên điện thoại 4
Hình 2: Các thiết bị Android 6
Hình 3: Kiến trúc hệ điều hành Android 8
Hình 4 : Android Studio 10
Hình 5: Biểu đồ ca sử dụng tổng quát 28
Hình 6: Biểu đồ ca sử dụng Check In Moodz 29
Hình 7 : Use Case hiển thị Maps 29
Hình 8: Biểu đồ ca sử dụng Post Image 29
Hình 9: Biểu đồ ca sử dụng Mood 30
Hình 10: Biểu đồ ca sử dụng Feed 30
Hình 11: Biểu đồ ca sử dụng Connections 30
Hình 12: Biểu đồ ca sử dụng Update Profile 31
Hình 13: Biểu đồ ca sử dụng Settings 31
Hình 14: Biểu đồ hoạt động Check In Mood 31
Hình 15: Biểu đồ hoạt động Maps 31
Hình 16 : Biểu đồ hoạt động Mood 32
Hình 17: Biểu đồ hoạt động Post Image 32
Hình 18: Biểu đồ hoạt động Phục hồi ảnh/video đã lưu trữ 32
Hình 19: Biểu đồ hoạt động Chức năng xem biểu đồ tâm trạng 33
Hình 20: Biểu đồ hoạt động Connections 33
Hình 21: Biểu đồ hoạt động View Profile 33
Hình 22: Biểu đồ tuần tự Login 34
Trang 9Hình 24: Biểu đồ tuần tự Maps 35
Hình 25: Biểu đồ tuần tự Post Image 35
Hình 26: Biểu đồ tuần tự Connections 35
Hình 27: Biểu đồ tuần tự Analytics 36
Hình 28: Biểu đồ hoạt động Profile 36
Hình 29: Biểu đồ tuần tự Comment Image 36
Hình 30 : Biểu đồ lớp giản lược 37
Hình 31: Biều đồ quan hệ thực thể trong quản lí User 47
Hình 32: Biều đồ quan hệ thực thể trong chức năng Check In Mood 48
Hình 33: Biều đồ quan hệ thực thể trong chức năng Post Image 49
Hình 34: Màn hình Login 52
Hình 35: Màn hình Register 52
Hình 36: Màn hình Menu các chức năng của tài khoản Basic 53
Hình 37: Màn hình Menu các chức năng của tài khoản Plus 53
Hình 38: Màn hình Home tài khoản Basic 54
Hình 39: Màn hình Home tài khoản Plus 54
Hình 40: Màn hình Profile tài khoản Plus 55
Hình 41: Màn hình Check In 55
Hình 42: Màn hình Maps 56
Hình 43: Màn hình Mood 56
Hình 43: Màn hình Feed 57
Hình 45: Màn hình Detail Image 57
Hình 46: Màn hình Detail Mood 58
Trang 10Hình 49: Màn hình Profile của tài khoản Plus 59 Hình 50: Màn hình Search Friends 60 Hình 51: Màn hình Your Mood Trend 60
Trang 11Bảng 1: Bảng dự diện kiến kết quả đạt được 2
Bảng 2: Bảng các chức năng 17
Bảng 3: Bảng đăng kí tài khoản, thiết lập mật khẩu lần đầu 18
Bảng 4: Bảng yêu cầu chức năng đăng nhập 19
Bảng 5: Bảng yêu cầu chức năng quên mật khẩu 19
Bảng 6 : Bảng yêu cầu chức năng thay đổi mật khẩu 20
Bảng 7 : Bảng yêu cầu chức năng Check In với Icon Mood 21
Bảng 8: Bảng yêu cầu chức năng Maps 21
Bảng 9: Bảng yêu cầu chức năng Post Image 22
Bảng 10 : Bảng yêu cầu chức năng Mood : xem lịch sử Check In của người dùng 23 Bảng 11 : Bảng yêu cầu chức năng Feed 24
Bảng 12 : Bảng yêu cầu chức năng xem biểu đồ trạng thái 24
Bảng 13 : Bảng yêu cầu chức năng cài đặt cho ứng dụng 25
Bảng 14 : Bảng yêu cầu chức năng cập nhật thông tin cá nhân 26
Bảng 15: Bảng yêu cầu chức năng tạo mối quan hệ bạn bè trên ứng dụng 27
Bảng 16: Bảng User 38
Bảng 17: Bảng Countries 39
Bảng 18: Bảng Devices 39
Bảng 19: Bảng user_image 39
Bảng 20: Bảng colors 40
Bảng 21: Bảng comment_likes 41
Trang 12Bảng 24: Bảng email_activation 42
Bảng 25: Bảng image_like 42
Bảng 26: Bảng devices 43
Bảng 27: Bảng mood_comment_like 43
Bảng 28: Bảng mood_comment 44
Bảng 29: Bảng mood_likes 44
Bảng 30: Bảng purchase_token 45
Bảng 31: Bảng reports 45
Bảng 32: Bảng user_mood 46
Trang 13MỞ ĐẦU
1 GIỚI THIỆU ĐỀ TÀI
Thời đại ngày nay, khi Internet ngày càng phổ biến, đời sống con ngườiđược nâng cao, cùng với sự bùng nổ của điện thoại Nhu cần giải trí ngày củng mộttăng Check In , chụp ảnh, chia sẽ ảnh với bạn bè, trò chuyện nhóm là một trong cáchình thức giải trí được rất nhiều người lựa chọn
Xuất phát từ các nhu cầu thực tế đó, ứng dụng DailyMoodz là nơi các bạn
có thể chia sẻ tâm trạng, chia sẻ ảnh với bạn bè Chỉ với chiếc điện thoại, máy tínhbảng… có hệ điều hành Android thì bạn có thể tha hồ làm những việc đó
Xuất phát từ ý tưởng cung cấp một ứng dụng giúp mọi người giải trí trong
thời gian rảnh rỗi, tôi đã chọn đề tài “Xây dựng ứng dụng DailyMoodz” làm đề tài
- Thực hiện các chức năng nhằm mục đích giải trí cho người dùng :
Check In tâm trạng tại một vị trí, địa điểm nào đó với cácmood icon và ảnh
Chia sẻ ảnh với mọi người
Kết bạn và trò chuyện với bạn bè
2.2 Ý nghĩa đề tài.
DailyMoodz là ứng dụng giải trí, nhằm mục đích giải trí sau những giờ làmviệc, hoặc trong thời gian rảnh
Trang 142.3 Phạm vi đề tài
“DailyMoodz” là ứng dụng trên điện thoại di động, trong giai đoạn nàyđược phát triển trên nền tảng di động Android phiên bản 2.3 trở lên
2.4 Nhiệm vụ cần thực hiện
- Tìm hiểu phát triển ứng dụng trên nền Android
- Xây dựng cơ sở dữ liệu
2.5 Công cụ xây dựng
2.5.1 Phần ứng dụng:
- Ứng dụng được viết bằng ngôn ngữ Java
- Cơ sở dữ liệu Webservice
2.5.2 Môi trường triển khai:
- Thiết bị chạy Android 2.3 trở lên
- Các máy ảo Android như máy ảo mặc định của Android DeveloptionToolkit, Genymotion, …
2.6 Dự kiến kết quả đạt được
Bảng 1: Bảng dự diện kiến kết quả đạt được
Check In Người dung có thể Check In tâm trạng của mình tại một vị
trí nào đó, và sẽ được hiển thị trên Maps
Post Image Người dùng có thể chia sẻ ảnh của mình với mọi người
Maps Hiển thị vị trí người dùng Check In và Post Image.
Feed Như một dòng thời gian hiển thị các ảnh mà người dùng
đăng Connections Người dùng có thể kết bạn với nhiều người khác.
Profile Người dùng có thể thay đổi thông tin tài khoản cá nhân
Chart Biểu đồ tâm trạng của người dùng trong ngày, trong tuần.Settings Người dùng có thể cài đặt cho ứng dụng của mình
Trang 15Login,Register,
Sign Out Người dùng có thể đăng ký mới tài khoản, đăng nhập để
đăng bài đăng, và có thể đăng xuất nếu sử dụng
3 TÓM TẮT PHƯƠNG PHÁP TRIỂN KHAI
- Tìm hiểu đề tài
- Thiết kế và phân tích hệ thống
- Xây dựng ứng dụng
- Kiểm thử
- Chạy thử nghiệm và kiểm thử
- Viết báo cáo và tổng kết đề tài và đề ra hướng phát triển
Trang 161.1 TÌM HIỂU NỀN TẢNG DI ĐỘNG
Hình 1: Hệ điều hành trên điện thoại
Ngày này, thị trường di động đang phát triển mạnh mẽ chưa từng thấy với
vô vàng các nhãn hiệu, kiểu dáng, tính năng Đã biến chiếc điện thoại thành mộtthiết bị giải trí đa phương tiện không thể thiếu Với lợi thế nhỏ gọn, được mọi người
sử dụng đem theo mọi lúc mọi nơi, nhưng cũng vì nhỏ g ọn như vậy cũng là một bấtlợi về xử lý và tốc độ Để đảm bảo một chiếc điện thoại thông minh hoạt động tốtthì nó cần có một hệ điều hành quản lý thiết bị.Đi kèm với sự phát triển phần cứngtrên thiết bị động thì cuộc chiến của các nhà phát triển các hệ điều hành trên điệnthoại di động cũng diễn ra hết sức khốc liệt Hiện nay, các nền tảng di động lớnđược biết đến như sau
1.1.1 IOS
IOS là hệ điều hành trên các thiết bị di động của Apple Ban đầu hệ điềuhành này chỉ được phát triển để chạy trên iPhone, nhưng sau đó nó đã được mởrộng để chạy trên các thiết bị của Apple như iPod touch, iPad và Apple TV Ngày
31 tháng 5, 2011, App Store của Apple chứa khoảng 500 000 ứng dụng iOS, vàđược tải về tổng cộng khoảng 15 tỷ lần Trong quý 4 năm 2010, có khoảng 26%điện thoại thông minh chạy hệ điều hành iOS, sau hệ điều hành Android của Google
và Symbian của Nokia
Trang 17Giao diện người dùng của iOS dựa trên cơ sở thao tác bằng tay Người dùng
có thể tương tác với hệ điều hành này thông qua rất nhiều động tác bằng tay trênmàn hình cảm ứng của các thiết bị của Apple
Tháng 6 năm 2010, Apple đổi cái tên iPhone OS thành iOS Nhãn hiệu
"IOS" đã được Cisco dùng để đặt tên cho hệ điều hành của mình Để tránh các vụkiện cáo, Apple đã xin giấy phép sử dụng nhãn hiệu iOS từ Cisco
1.1.2 ANDROID
Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một
số đầu phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux.Trước đây, Android được phát triển bởi công ty liên hợp Android ( sau đó đượcGoogle mua lại vào năm 2005)
Tháng 7 năm 2005, Google mua lại Android, Inc., một công ty nhỏ mớithành lập có trụ sở ở Palo Alto, California, Mỹ Những nhà đồng sáng lập củaAndroid chuyển sang làm việc tại Google gồm có Andy Rubin (đồng sáng lập công
ty Danger), Rich Miner (đồng sáng lập công ty Wildfire Communications), NickSears (từng là phó chủ tịch của T-Mobile), và Chris White (trưởng nhóm thiết kế vàphát triển giao diện tại WebTV) Khi đó, có rất ít thông tin về các công việc củaAndroid, ngoại trừ việc họ đang phát triển phần mềm cho điện thoại di động Điềunày tạo những tin đồn về việc Google có ý định bước vào thị trường điện thoại diđộng
Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứngdụng di động hấp dẫn tận dụng tất cả một chiếc điện thoại đã cung cấp Nó đượcxây dựng để được thực sự mở
1.1.3 WINDOWN PHONE
Windows Phone là hệ điều hành được Microsoft phát triển để thay thế cho
hệ điều hành di động Windows Mobile trước đây Windows Phone bắt đầu từ phiênbản thứ 7 (khi ra mắt, Microsoft gọi nó là Windows Phone 7, còn hiện giờ nó đã lênđến 7.5) Được biết, do phát triển trong thời gian ngắn nên Windows Phone rất hạn
Trang 18lý do nữa để Microsoft không quan tâm nhiều đến nền tảng cũ đó là vì màn hìnhcảm ứng bằng ngón tay ngày càng phổ biến hơn trên điện thoại và Windows Mobilevốn thiết kế cho bút stylus đã trở nên rất lỗi thời.
Một cột mốc quan trọng của Windows Phone đó là sự hợp tác giữaMicrosoft với Nokia sau khi hãng điện thoại Phần Lan này quyết định không còntập trung vào điện thoại Symbian nữa Kết quả của sự hợp tác này đó là dòng NokiaLumia ra đời ở sự kiện Nokia World 2011 Đến CES 2012, Nokia tiếp tục ra mắt haimáy Lumia mới nữa (mình sẽ đề cập ở phần sau) Việc tích hợp các dịch vụ củaMicrosoft (Bing, Bing Maps, Windows Phone Marketplace,…) lên thiết bị Nokiađược cho là sẽ tạo nên lợi thế cạnh tranh cho WIndows Phone với hai đối thủ lớnhiện thời là iOS và Android
Trang 19Android 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ầmtay mở: 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ụctiê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ênchạy Android được bán vào tháng 10 năm 2008.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thôngminh phổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được cáccô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 Kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng,Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác Bản chất
mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những ngườiđam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý Những
dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặcđưa Android vào các thiết bị ban đầu chạy hệ điều hành khác
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vàothờ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,3triệ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áigọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ
1.2.2 Kiến trúc
Hệ điều hành Android có các thành phần phần mềm tạm chia thành 5 phầnvới 4 tầng chính trong sơ đồ kiến trúc như hình dưới đây :
Trang 20Hình 3: Kiến trúc hệ điều hành Android
1.2.2.2 Libraries
Tầng này là một tập hợp các thư viện bao gồm trình duyệt web mã nguồn
mở sử dụng WebKit engine, thư viện libc, cơ sở dữ liệu SQLite là một kho lưu trữhữu ích cho việc lưu trữ và chia sẻ dữ liệu của ứng dụng, có các thư viện đểchơi/ghi lại âm thanh và video, các thư viện SSL chịu trách nhiệm về bảo mậtInternet, v.v
Trang 211.2.2.3 Android Runtime
Đây là phần thứ ba của kiến trúc Android Phần này cung cấp một thànhphần quan trọng được gọi là Dalvik Virtual Machine - một loại máy ảo Java đượcthiết kế đặc biệt và tối ưu hóa cho Android
Android Runtime cũng cung cấp một tập các thư viện lõi cho phép các nhàphát triển ứng dụng Android viết các ứng dụng Android sử dụng ngôn ngữ lập trìnhJava (J2SE)
Bạn sẽ viết ứng dụng và các ứng dụng mà bạn viết được cài đặt ở tầng này
Ví dụ: Angry Bird, Facebook, Viber, v.v
1.2.3 Ngôn ngữ lập trình Java
- Giới thiệu
Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp.Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồnthành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch
mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtimeenvironment) chạy
Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như
C và C++, nhưng sau này nhờ công nghệ "biên dịch tại chỗ" - Just in timecompilation, khoảng cách này đã được thu hẹp, và trong một số trường hợp đặc biệtJava có thể chạy nhanh hơn Java chạy nhanh hơn những ngôn ngữ thông dịch nhưPython, Perl, PHP gấp nhiều lần Java chạy tương đương so với C#, một ngôn ngữkhá tương đồng về mặt cú pháp và quá trình dịch/chạy
Trang 221.2.4 Môi trường lập trình Android Studio và Eclipse
Eclipse sẵn sàng cho phát triển ứng dụng trên máy trạm bằng ngôn ngữJava, vì thế người ta hay mặc định Eclipse là Java và ngược lại Cấu hình máy đòihỏi không cao (bộ nhớ RAM 512 MB), thích hợp cho sinh viên Ngoài ra, chươngtrình viết bằng Java có thể chạy trên các hệ điều hành khác nhau
Để lập trình Android, Eclipse cần được tích hợp bộ công cụ phát triểnAndroid ADT
1.2.4.2 Android Studio
Hình 4 : Android Studio
Một trong số những tính năng mới của môi trường phát triển này đó là nó
hỗ trợ tốt hơn việc bố cục ứng dụng cho nhiều thiết bị khác nhau, đảm bảo rằng appviết ra có thể tương thích với màn hình của cả smartphone lẫn tablet Những thay
Trang 23đổi trong mã lập trình sẽ được hiển thị theo thời gian thực trên công cụ mô phỏng đikèm Google cũng bổ sung thêm khả năng kéo thả các thành phần đồ họa để quátrình xây dựng ứng dụng trở nên dễ dàng và nhanh chóng hơn Android Studio còncho phép xem lại app ở nhiều ngôn ngữ khác nhau trong cùng một giao diện để lậptrình viên có thể chỉnh sửa những lỗi còn tồn tại Đặc biệt là tiếng Việt cũng được
hỗ trợ trong Android Studio
Web service thì rất linh động : Vì với UDDI và WSDL, thì việc mô tả và pháttriển web service có thể được tự động hóa
Web service có thể công bố (publish) và gọi thực hiện qua mạng
Ngày nay web services được sử dụng rất nhiều trong những lĩnh vực khác nhaucủa cuộc sống
- Nâng cao khả năng tái sử dụng
- Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiếntrình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web
Trang 243.1.1.2 Nhược điểm
- Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ Web, giaodiện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu cácgiao thức cho việc vận hành
- Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt
- Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật
1.3.2 Giới thiệu về ngôn ngữ PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lậptrình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụngviết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp vớiweb và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứngdụng web, tốc độ nhanh, nhỏgọn, cú pháp giống C và Java, dễ học và thời gian xâydựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanhchóng trở thành một ngôn ngữ lập trình web phổ biến nhất thếgiới
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do RasmusLerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các
mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trênmạng
1.3.3 Giới thiệu về JSON
Json (JavaScript Object Noattion) là 1 định dạng hoán vị dữ liệu nhanh Chúng
dễ dàng cho chúng ta đọc và viết Dễ dàng cho thiết bị phân tích và phát sinh JSon
là cơ sở dựa trên tập hợp của ngôn ngữ lập trình JavaScript
JSon được xây dựng trên 2 cấu trúc :
Là tập hợp của các cặp tên và giá trị như name – value Trong nhữngngôn ngữ khác nhau, đây dược nhận thấy như là 1 đối tượng (object), sựghi (record), cấu trúc ( struct), từ điển (dictionary), bảng băm (hashtable), danh sách khóa (keyed list), hay mảng liên hợp
Là 1 tập hợp các giá trị đã được sắp xếp
Trang 251.3.4 Giới thiệu hệ quản trị cơ sở dữ liệu MySql
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới vàđược các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng VìMySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạtđộng trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rấtmạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng cótruy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải vềMySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiênbản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix,FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác,
nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
1.4 KẾT CHƯƠNG
Chương này trình bày các lý thuyết cơ bản về lập trình di động, lập trìnhAndroid, các dịch vụ trực tuyến và cơ sở dữ liệu phục vụ cho việc xây dựng ứngdụng
Trang 26CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 PHÂN TÍCH YÊU CẦU
2.1.1 Mô tả bài toán
- Thực hiện các chức năng nhằm mục đích giải trí cho người dùng :
Check In tâm trạng tại một vị trí, địa điểm với icon Mood vàImage
Chia sẻ ảnh với mọi người
Kết bạn và trò chuyện
2.1.1.4 Triển khai
Từ những phân tích trên hệ thống sẽ được chia làm 2 phần :
- Cơ sở dữ liệu :
Sử dung Web service và hệ quan trị cơ sở dữ liệu Navicat
- Ứng dụng : Là thành phần chương trình đặt tại thiết bị di động nền tảng
Android Chương trình sẽ tương tác trực tiếp với người sử dụng
2.1.2 Phân tích yêu cầu bài toán
Trang 27 Check In tâm trạng tại một vị trí, địa điểm với icon Mood vàImage
Chia sẻ ảnh với mọi người
2.1.3 Mô tả những yêu cầu phi chức năng
2.1.3.1 Yêu cầu về tính năng của hệ thống
- Hiệu năng: Ứng dụng chạy nhanh và mượt, truy xuất cơ sở dữ liệu nhanh
- Tính sẵn sàng: Ứng dụng có khả năng phục vụ mọi thời điểm người dùngcần sử dụng
- Tính tương thích: Cài đặt và chạy được trên mọi thiết bị dùng hệ điềuhành Android 2.3 trở lên
2.1.3.2 Yêu cầu về giao diện người dùng
- Giao diện thiết kế dạng phẳng, đẹp, dễ nhìn, dễ sử dụng
- Ngôn ngữ hiển thị bằng tiếng Anh
Trang 282.1.3.3 Phân tích khả thi
- Nhu cầu bảo mật thông tin cá nhân ngày càng cao, người ta càng chútrọng đến vấn đề riêng tư khi sử dụng điện thoại thông minh
- Lượng người dùng điện thoại thông minh chạy Android rất đông đảo
- Ứng dụng được cung cấp miễn phí cho mọi người dùng và hướng tới pháttriển trên mọi nền tảng di động phổ biến hiện nay
2.1.3.4 Chi phí phát triển
- Điện thoại thông mình ngày nay đang phát triển các dòng điện thoại bìnhdân, nghĩa là chi phí cho một chiếc điện thoại hỗ trợ đầy đủ các tính năng
mà chương trình yêu cầu thì hoàn toàn không đắt
- Phát triển một ứng dụng Android rất dễ dàng với công cụ miễn phí nhưAndroid Studio hay Eclipse và bộ ADT
Trang 302.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.2.1 Yêu cầu hệ thống
2.2.1.1 Yêu cầu chức năng và đặc tả use case
• Đăng kí tài khoản.
Mô tả Là ca sử dụng cho phép người dùng đăng kí tài khoản
và thiết lập mật khẩu lần đầu
Điều kiện trước Ứng dụng đã được cài đặt trong điện thoại
Người dùng muốn đăng kí một tài khoản mới
Các bước thực
hiện chính
Bước 1 : Mở ứng dụng tại giao diện điện thoại
Bước 2 : Điền đầy đủ thông tin bắt buộc
Kết quả mong đợi Tạo tài khoản thành công
Trường hợp lỗi Không tạo được tài khoản, Không kết nối được với
server
Trang 31 Đăng nhập bằng tài khoản của người dùng.
Bảng 4: Bảng yêu cầu chức năng đăng nhập.
Ứng dụng đã được cài đặt trong điện thoại
Mô tả Là ca sử dụng cho phép người dùng dùng lấy lại mật
khẩu khi bị quên hoặc bị đánh cắp
Điều kiện trước Ứng dụng đã được cài đặt trong điện thoại
Người dùng đã đặt mật khẩuCác bước thực hiện
Trang 32Kết quả mong đợi Một email chứa password được gửi về email của
người dùng
Trường hợp lỗi Ứng dụng không kết nối được với cơ sở dữ liệu
Thay đổi mật khẩu
Bảng 6 : Bảng yêu cầu chức năng thay đổi mật khẩu
Mô tả Là ca sử dụng cho phép người dùng dùng thay đổi
mật khẩu khi cần thiết
Điều kiện trước Ứng dụng đã được cài đặt trong điện thoại
Người dùng đã đặt mật khẩuCác bước thực hiện
chính
Bước 1 : Mở ứng dụng tại giao diện điện thoại.Bước 2 : Chọn “Profile”
Bước 2 : Chọn thay đổi mật khẩu
Bước 4 : Nhập mật khẩu cũ, mật khẩu mới và xác nhận
Kết quả mong đợi Báo đã thay đổi mật khẩu thành công
Trường hợp lỗi Ứng dụng không kết nối được với cơ sở dữ liệu
Chức năng Check In tâm trạng
Bảng 7 : Bảng yêu cầu chức năng Check In với Icon Mood.
Mô tả Là ca sử dụng cho phép người dùng Check In tâm
trạng của mình tại một vị trí nào đó
Trang 33Điều kiện trước Người dùng đã đăng nhập vào ứng dụng
Ứng dụng đang hiển thị màn hình Check In
Kết quả mong đợi Vị trí và caption sẽ hiển thị trên Maps
Trường hợp lỗi Không kết nối được với server
Mô tả Là ca sử dụng cho phép người dùng thấy được vị trí
Check In và Post Image của mình và mọi người trên Maps
Điều kiện trước Người dùng đã đăng nhập vào ứng dụng
Ứng dụng đang hiển thị màn hình chínhCác bước thực hiện
chính
Bước 1 : Người dùng chọn nút “Maps” trên màn hìnhBước 2 : Màn hình Maps hiện ra
Kết quả mong đợi Vị trí người dùng Check In và Post image sẽ được
hiển thị trên Maps
Trường hợp lỗi Không kết nối được với server Không hiển thị được
Trang 34 Chức năng Post Image
Bảng 9: Bảng yêu cầu chức năng Post Image.
Mô tả Là ca sử dụng cho phép người dùng đăng ảnh và chia
sẻ ảnh với mọi người
Điều kiện trước Người dùng đã đăng nhập vào ứng dụng và đã
upgrade tài khoản thành công
Bước 3 : Người dùng điền caption và address
Bước 4 : Người dùng bấm nut “Post Image”
Kết quả mong đợi Ảnh sẽ được đăng lên dòng thời gian Feed
Trường hợp lỗi Không kết nối được với server Post Image không
Trang 35Các bước thực hiện
chính
Bước 1 : Người dùng Login vào ứng dụngBước 2 : Người dùng chọn chức năng Mood trên menu của ứng dụng
Bước 3 : Người dùng chọn ngày, và sau đó nhấn
“OK”
Kết quả mong đợi Lịch sử Check In sẽ được hiển thị trên màn hình
Trường hợp lỗi Không kết nối được với server
Chức năng Feed : Dòng thời gian hiển thị ảnh mà người dùng đãđăng lên trước đó
Bảng 11 : Bảng yêu cầu chức năng Feed
Mô tả Là ca sử dụng cho phép người dùng xem tất cả các
ảnh mà mọi người đăng lên trước đó
Điều kiện trước Người dùng đã đăng nhập vào ứng dụng
Tài khoản đã Upgrade thành công
Trường hợp lỗi Không kết nối được với Server
Chức năng Analytics : Người dùng có thể xem biểu đồ trạng tháitrong ngày và trong tuần
Bảng 12 : Bảng yêu cầu chức năng xem biểu đồ trạng thái trong ngày và trong
tuần.
Trang 36Mã chức nắng M.3.10
Mô tả Là ca sử dụng cho phép người dung xem biểu đồ trạng
thái của mình theo ngày, theo tuần
Điều kiện trước Người dùng đã đăng nhập vào ứng dụng
Tài khoản Upgrade thành công
Các bước thực
hiện chính
Bước 1 : Người dùng chọn Analytics trên thanh Menu của ứng dụng
Bước 2 : Chọn tab “Your Mood Trends”
Bước 2 : Chọn Dayly để xem biểu đồ tâm trạng theo ngày, và Weekly để xem biểu đồ tâm trạng theo tháng.Kết quả mong
Trang 37gọi đã lưu trữ trong danh sáchBước 3 : Người dùng bấm nút “Restore”
Kết quả mong
đợi
Tin nhắn được chọn sẽ được phục hồi và lưu trong bộ sưu tập
Trường hợp lỗi Ứng dụng không kết nối được với cơ sở dữ liệu SQLite
Ứng dụng không giải mã được dữ liệu
Chức năng Update Profile
Bảng 14 : Bảng yêu cầu chức năng cập nhật thông tin cá nhân
Dữ liệu được tự động backup lên khi có mạng
Trường hợp lỗi Lỗi trong quá trình upload
Connections
Bảng 15: Bảng yêu cầu chức năng tạo mối quan hệ bạn bè trên ứng dụng
Trang 38Điều kiện trước Người dùng đã đăng nhập vào ứng dụng
Tài khoản đã được Upgrade thành công
Trang 392.2.2 Biểu đồ ca sử dụng
2.2.2.1 Biểu đồ mức 0
Hình 5: Biểu đồ ca sử dụng tổng quát
Trang 402.2.2.2 Biểu đồ mức 1
Check In Moodz
Hình 6: Biểu đồ ca sử dụng Check In Moodz
Hiển thị Maps, Xem vị trí Check In Moodz and Post Image
Hình 7 : Use Case hiển thị Maps.
Post Image
Hình 8: Biểu đồ ca sử dụng Post Image
Mood : Xem lại lịch sử Check In với Icon Mood