Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
2,77 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC KHÓA LUẬN TỐT NGHIỆP ĐỀ TÀI XÂY DỰNG ỨNG DỤNG ĐỌC TIN TỨC TRƯỜNG ĐẠI HỌC SƯ PHẠM - ĐẠI HỌC ĐÀ NẴNG TRÊN NỀN TẢNG ANDROID GVHD : TS NGUYỄN TRẦN QUỐC VINH SVTH LỚP : NGUYỄN NGỌC QUÂN : 11CNTT1 Đà Nẵng, tháng năm 2015 i LỜI CẢM ƠN Đầu tiên, em xin bày tỏ lòng biết ơn chân thành sâu sắc tới Tiến sĩ Nguyễn Trần Quốc Vinh, người tận tình hướng dẫn, giúp đỡ em để khóa luận hồn thành Em xin chân thành cảm ơn Trường Đại học Sư Phạm – Đại học Đà Nẵng toàn thể giảng viên khoa Tin học, trường Đại học Sư Phạm – Đại học Đà Nẵng tạo điều kiện thuận lợi cho em trình học tập hồn thành khóa luận tốt nghiệp Em xin cảm ơn dạy dỗ, bảo quan tâm thầy cô khoa Tin học suốt thời gian em theo học hồn thành khóa luận Cuối cùng, em muốn gửi lời cảm ơn chân thành tới gia đình, bạn bè, người ln động viên khích lệ giúp em hồn thành khóa luận tốt nghiệp Xin chân thành cảm ơn ii LỜI CAM ĐOAN Tôi xin cam đoan : Những nội dung khóa luận tơi tự thực hướng dẫn trực tiếp thầy Nguyễn Trần Quốc Vinh Mọi tham khảo dùng khóa luận 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ố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá tơi xin chịu hồn tồn trách nhiệm Đà Nẵng, tháng năm 2015 Sinh viên thực Nguyễn Ngọc Quân iii MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT vi DANH MỤC CÁC BẢNG vii DANH MỤC CÁC HÌNH viii MỞ ĐẦU 1 Tính cấp thiết đề tài Mục tiêu nghiên cứu Đối tượng nghiên cứu Phạm vi nghiên cứu Phương pháp nghiên cứu Bố cục đề tài CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 LỊCH SỬ ANDROID 1.2 KIẾN TRÚC CỦA ANDROID 1.2.1 Tầng ứng dụng 1.2.2 Application framework 1.2.3 Library 1.2.4 Android Runtime 1.2.5 Linux kernel 1.3 ANDROID EMULATOR (GIẢ LẬP CHẠY ANDROID) 1.4 CHU KỲ ỨNG DỤNG ANDROID .9 1.4.1 Chu kỳ sống thành phần 1.4.2 Activity Stack 10 1.5 SQLITE 11 1.6 GIỚI THIỆU DỊCH VỤ GOOGLE CLOUD MESSAGING 12 1.6.1 Định nghĩa 12 1.6.2 Cơ chế hoạt động 12 1.7 PHÂN TÍCH XML TRONG ANDROID 13 1.7.1 Tổng quan XML .13 iv 1.7.1.1 Khái niệm 13 1.7.1.2 Cấu trúc 13 1.7.2 RSS 14 1.7.3 Các lớp giao diện phân tích XML 14 1.8 GIỚI THIỆU DỊCH VỤ PUSH NOTIFICATION CỦA PARSE .15 1.8.1 Tổng quan Parse .15 1.8.2 Dịch vụ push notification Parse .16 1.8.3 Cài đặt Parse SDK vào dự án ứng dụng Android 16 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 19 2.1 PHÂN TÍCH CÁC CHƯƠNG TRÌNH TƯƠNG TỰ 19 2.1.1 Một số chương trình tương tự 19 2.1.1.1 Phần mềm đọc báo Tuổi Trẻ 19 2.1.1.2 Phần mềm đọc báo Dân Trí 20 2.1.1.3 Phần mềm đọc báo VietNamNet 21 2.1.2 Nhận xét chung .22 2.1.2.1 Ưu điểm 22 2.1.2.2 Nhược điểm 22 2.2 MÔ TẢ ĐỀ TÀI 22 2.2.1 Xác định yêu cầu toán 22 2.2.2 Yêu cầu chức 23 2.2.3 Yêu cầu phi chức 23 2.3 THIẾT KẾ HỆ THỐNG 23 2.3.1 Sơ đồ tổng quan hệ thống .23 2.3.2 Usecase 24 2.3.2.1 Sơ đồ Usecase 24 2.3.2.2 Đặc tả Usecase 24 2.3.3 Sơ đồ 27 2.3.3.1 Chức đọc tin 27 2.3.3.2 Chức kiểm tra tin 27 2.3.3.3 Chức đăng ký chuyên mục .28 v 2.3.3.4 Chức cài đặt 28 2.3.4 Thiết kế sở liệu .29 2.3.5 Sơ đồ lớp .30 2.3.6 Sơ đồ quan hệ bảng 31 CHƯƠNG 3: THỬ NGHIỆM CHƯƠNG TRÌNH Error! Bookmark not defined 3.1 ỨNG DỤNG 32 3.1.1 Màn hình .32 3.1.2 Danh sách tin 32 3.1.3 Đọc tin chi tiết 33 3.2 KIỂM NGHIỆM THỰC TẾ 36 3.2.1 Đưa ứng dụng lên Google Play 36 3.2.2 Thống kê đạt 37 KẾT LUẬN VÀ KIẾN NGHỊ 39 KẾT QUẢ ĐẠT ĐƯỢC 39 HẠN CHẾ 39 HƯỚNG PHÁT TRIỂN 40 TÀI LIỆU THAM KHẢO 41 PHỤ LỤC 49 Phụ lục 1: Mã nguồn hàm gửi push từ server chạy php 49 Phụ lục 2: Mã nguồn file PushNotification.java chụi trách nhiệm nhận push notification 50 Phụ lục 3: Nội dung file AndroidManifest.xml ứng dụng 51 vi DANH MỤC CÁC TỪ VIẾT TẮT API Application Programming Interface CSDL Cơ sở liệu GCM Google Cloud Messaging IDE Integrated Development Enveronment RSS Rich Site Summary SDK Software Development Kit XML EXtensible Markup Language vii DANH MỤC CÁC BẢNG Số hiệu Tên bảng Trang 2.1 Đặc tả Usecase “Kiểm tra tin mới” 25 2.2 Đặc tả Usecase “Đăng ký chuyên mục” 25 2.3 Đặc tả Usecase “Xem danh sách tin” 26 2.4 Đặc tả Usecase “Cài đặt” 26 2.5 Thông tin bảng “android_metadata” 29 2.6 Thông tin bảng “category” 29 2.7 Thông tin bảng “news” 30 viii DANH MỤC CÁC HÌNH Số hiệu Tên hình Trang 1.1 Cấu trúc stack hệ thống Android 1.2 Android Emulator 1.3 Chu kỳ sống thành phần ứng dụng 1.4 Activity stack 10 1.5 Giao diện SQLite Manager 11 1.6 Cơ chế hoạt động GCM 12 1.7 Parse hỗ trờ hầu hết tảng lập trình 15 2.1 Màn hình menu phần mềm Tuổi Trẻ 19 2.2 2.3 2.4 2.5 2.6 Màn hình danh sách tin tin chi tiết phần mêm đọc báo Tuổi Trẻ Màn hình home phần mêm đọc báo Dân Trí Màn hình danh sách tin đọc tin chi tiết phần mềm đọc báo Dân Trí Màn hình menu danh sách tin phần mềm đọc báo VietNamNet Màn hình menu danh sách tin phần mềm đọc báo VietNamNet 20 20 21 21 22 2.7 Sơ đồ tổng quan hệ thống 23 2.8 Sơ đồ Usecase 24 2.9 Sơ đồ chức đọc tin 27 2.10 Sơ đồ chức đọc tin 27 2.11 Sơ đồ chức đăng ký chuyên mục 28 2.12 Sơ đồ chức cài đặt 28 2.13 Sơ đồ lớp 30 2.14 Sơ đồ lớp quan hệ bảng 31 3.1 Giao diện hình 32 ix 3.2 Danh sách tin 33 3.3 Các chức lọc tin 33 3.4 Phân biệt tin đọc chưa đọc 34 3.5 Chức đọc tin chi tiết 34 3.6 Chức chia sẻ tin 35 3.7 Chức cài đặt 35 3.8 Ứng dụng Google Play 36 3.9 Tên số lượng số thiết bị cài đặt ứng dụng 37 3.10 Lượt cài đặt phiên hệ điều hành tính đến 07/05/2015 38 3.11 Lượt cài đặt nhà mạng di động tính đến 07/05/2015 38 3.12 Lượt cài đặt nhà mạng di động tính đến 07/05/2015 38 36 3.2 KIỂM NGHIỆM THỰC TẾ 3.2.1 Đưa ứng dụng lên Google Play Sau trình thiết kế xây dựng ứng dụng đưa lên chạy thử nghiệm tạo ứng dụng Google Play với tên gọi “DUEd News” địa https://play.google.com/store/apps/details?id=it.ued.uedtintuc Hình 3.8 Ứng dụng Google Play Việc đưa ứng dụng lên Google Play ngày 25 tháng 01 năm 2015 với phiên 1.0 Lần cập nhật sau làm ngày 08 tháng 05 năm 2015 với phiên 2.8515 Qua lần cập nhật, ứng dụng bổ sung tính mới, cải thiện độ thân thiện ổn định 37 3.2.2 Thống kê đạt Sau thời gian đưa ứng dụng lên kho ứng dụng Google Play Thông kê lấy từ tài khoản quản lý ứng dụng cho thấy ứng dụng đạt số mốc định sau: Tổng số lượt cài đặt 18 tổng số 17 dòng thiết bị Các thiết bị đến từ hảng sản xuất điện thoại di động tiêu biển Samsung, Asus, Sony Pantech Hình 3.9 Tên số lượng số thiết bị cài đặt ứng dụng Trên lượt cài đặt có phiên hệ điều hành Android 4.4 có thiết bị cài đặt chiếm 38.89% tổng số thiết bị cài đặt ứng dụng Đứng thứ lượt cài đặt phiên Android 4.0.3 – 4.0.4 có lượt cài đặt chiếm 27.78% Phiên Android 4.1 Android 4.0 chiếm 11.11% 38 Hình 3.10 Lượt cài đặt phiên hệ điều hành tính đến 07/05/2015 Thống kê lượt cài đặt mạng di động cho thấy có 12 thiết bị cài đặt có sử dụng mạng di động Việt Nam chiếm 61.67% Còn lại lượt cài đặt đến từ mạng di động ngồi Việt Nam Hình 3.11 Lượt cài đặt nhà mạng di động tính đến 07/05/2015 Ứng dụng nhận đánh giá trung bình 5.00 / 5.00 lượt đánh giá Hình 3.12 Lượt cài đặt nhà mạng di động tính đến 07/05/2015 39 KẾT LUẬN VÀ KIẾN NGHỊ KẾT QUẢ ĐẠT ĐƯỢC Trong trình nghiên cứu thực đề tài khóa luận em tìm hiểu nắm số vấn đề: Về lý thuyết a Cũng cố kiến thức lập trình mơn học liên quan b Tìm hiểm tảng phần mềm Android, cách xây dựng ứng dụng điện thoại Android nói chung ứng dụng sử dụng internet nói riêng c Bên cạnh đó, để xây dựng ứng dụng em phải nghiên cứu hiểu thêm nhiều công nghệ liên quan XML, Web service, JSON, SQLite, GCM… Về chương trình a Đề tài hồn thành đạt yêu cầu đề tài b Ứng dụng hoạt động tương đối ổn đinh c Tiết kiệm tối đa lưu lượng truy cập internet d Giao diện thân thiện, hiệu ứng bắt mắt, dễ dàng sử dụng dù người tiếp cận lần e Đã đưa ứng dụng lên kho ứng dụng Google Play HẠN CHẾ Bên cạnh kết đạt trên, em cịn nhiều hạn chế q trình thực khóa luận Ứng dụng chưa có chức đọc tin offline 40 HƯỚNG PHÁT TRIỂN Để phục vụ nhu cầu sử dụng đông đảo sinh viên du học sinh đến học trường Hướng phát triển đề tài ứng dụng hổ trợ đa ngôn ngữ (tiếng Lào, tiếng Trung Quốc, tiếng Anh) Cải thiện độ ổn định ứng dụng, giảm thiểu lỗi phát sinh trình sử dụng ứng dụng Cải thiện giao diện đẹp mắt hiệu hơn, hổ trợ giao diện cho thiết bị máy tính bảng tốt 41 TÀI LIỆU THAM KHẢO [1] Google Buys Android for Its Mobile Arsenal Bloomberg Businessweek Bloomberg, truy cập ngày 02 tháng 05 năm 2015, [2] Industry Leaders Announce Open Platform for Mobile Devices, Open Handset Alliance truy cập ngày 02 tháng 05 năm 2015 [3] T-Mobile G1 Spec Infosite and comparisons GSM Arena, truy cập ngày 02 tháng 05 năm 2015 < http://www.gsmarena.com/t_mobile_g12533.php> [4] Google Cloud Messaging for Android, ngày truy cập 02 tháng 05 năm 2015 [5]Parse Documentation, ngày truy cập 02 tháng 05 năm 2015 49 PHỤ LỤC Phụ lục 1: Mã nguồn hàm gửi push từ server chạy php function guiThongBao_Android_GCM($registatoin_ids) { //mã api key google app đăng ký GCM $GOOGLE_API_KEY= "AIzaSyDfyFmV3IeB2HiHueSL3dmcAA6eUHw_6Tk"; //link server google nhận nội dung cần thông báo đến thiết bị $url= 'https://android.googleapis.com/gcm/send'; // nội dung message $message= '{"registration_ids":["'.$registatoin_ids.'"],"data": {"where": {"deviceType": "android"},"data": {"message": "news","action": "ACTIONTION"}}}'; //khởi tạo header $headers = array( 'Authorization: key=' $GOOGLE_API_KEY , 'Content-Type: application/json' ); // mở kết nối curl $ch = curl_init(); // set nơi truy vấn curl_setopt($ch, CURLOPT_URL, $url); // set kiểu POST curl_setopt($ch, CURLOPT_POST, true); // set header curl_setopt($ch,CURLOPT_HTTPHEADER, $headers); // nhận giá trị trả curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); // Tắt kiểm tra SSL curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); // thiết lập 50 curl_setopt($ch,CURLOPT_POSTFIELDS, $message); // thực thi $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' curl_error($ch)); } // đóng kết nối curl_close($ch); // xuất liệu hình echo $result; } Phụ lục 2: Mã nguồn file PushNotification.java chụi trách nhiệm nhận push notification public class PushNotification extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { try { JSONObject json = new JSONObject(intent.getExtras().getString(CommonUtilities PARSE_PACKAGE_NAME)); String message = json.getString("message"); try{ int contentid = json.getInt("contentid"); String alert = json.getString("alert"); if ("news".equals(message)) { new XmlParser(context, String.valueOf(contentid+1),alert); } }catch(NumberFormatException ex){ System.out.println(ex); } 51 try{ String link = json.getString("link"); if ("update".equals(message)) { generateNotificationUpdate(context, "Có phiên update!",link); } else if ("".equals(message)){ } }catch(NumberFormatException ex){ System.out.println(ex); } } catch (JSONException e) { } } } Phụ lục 3: Nội dung file AndroidManifest.xml ứng dụng 52 53 55