1. Trang chủ
  2. » Thể loại khác

HỌC PHẦN: CHUYÊN ĐỀ 3 LẬP TRÌNH MẠNG TRÊN ANDROID HỆ: ĐẠI HỌC

20 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 425,92 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập thực hành CĐ3: Lập trình dịch vụ mạng trên Android Bộ môn Công nghệ Phân mềm khoa Công nghệ Thông tin Trang 2 Bài 5 Một số dịch vụ trên google .... Các bước chính trong triển kh

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

KHOA CÔNG NGHỆ THÔNG TIN

***

HỌC PHẦN: CHUYÊN ĐỀ 3 LẬP TRÌNH MẠNG TRÊN ANDROID

HỆ: ĐẠI HỌC (tài liệu lưu hành nội bộ)

Hưng Yên – Tháng 1 năm 2017

Trang 2

MỤC LỤC

Bài 1 Tổng quan về module 1

1.1 Tổng quan về module 1

1.2 Một số thư viện thường dùng trong android 1

1.2 Tiến trình và luồng 3

1.2.1 Tiến trình 3

1.2.2 Luồng 3

1.2.3 Lớp Hander 3

1.2.4 Giới thiệu đa luồng 6

1.3 AsyncTask 7

1.3.1 Tổng quan về lớp AsyncTask 7

1.3.2 Mô tả lớp AsyncTask 7

1.3.3 Ứng dụng tải ảnh từ internet 9

1.3.4 Ứng dụng ProgressBar với AsyncTask 11

Bài 2 Tin nhắn 14

2.1 SmsManager 14

2.1.1 Giới thiệu SmsManager 14

2.1.2 Để thực hiện xây dựng ứng dụng với SmsManager qua các bước sau: 14

2.2 Telephony 17

2.2.1 Giới thiệu Telephony Manager 17

2.2.2 Thao tác với Telephony Manager 17

2.3 Intent 19

2.3.1 Định nghĩa 19

2.3.2 Phương thức và mô tả Intent 19

2.3.3 Thao tác với intent 20

2.4 BroadcastReceiver 20

2.4.1 Giới thiệu về Broadcast Receiver 20

2.4.2 Ứng dụng thông báo thay đổi trạng thái wifi 21

2.4.3 Ví dụ ứng dụng BroadCast tự định nghĩa 22

Bài 3 Thư điện tử 25

3.1 Gửi email 25

Trang 3

Bài tập thực hành CĐ3: Lập trình dịch vụ mạng trên Android

Bộ môn Công nghệ Phân mềm khoa Công nghệ Thông tin Trang 2

Bài 5 Một số dịch vụ trên google 43

5.1 Giới thiệu Google service 43

5.2 Google Map Service 43

5.2.1 Một số ứng dụng của Google Map API 45

5.2.2 Yêu cầu để hiển thị bản đồ sử dụng google map 45

5.3 Mapview 48

5.3.1 Giới thiệu Mapview 48

5.3.2 Sử dụng Mapview cơ bản 48

5.3.3 Xây dựng ứng dụng hiển thị vị trí của 1 địa điểm trên bản đồ 48

5.4 Location Base Service 55

5.4.1 The Location Object 56

5.4.2 LocationManager 57

5.4.3 Ứng dụng vị trí 58

Bài 6 Ứng dụng Location Base service 63

6.1 Tìm tọa độ của 1 địa điểm 63

6.1.1 Tìm tọa độ của 1 địa điểm với google map 63

6.1.2 Tìm tọa độ của 1 địa điểm với Google Earth 63

6.2 Các phương thức của lớp Map 65

6.3 Ứng dụng tìm đường đi giữa 2 vị trí dung Google Map Direction API 67

Bài 7 Kết nối với tài nguyên Internet 68

7.1 Giới thiệu WebView 68

7.1.1 Giới thiệu WebView 68

7.1.2 Thao tác với WebView qua các bước sau: 68

7.1.3 Ví dụ 68

7.2 Giới thiệu ConnectionReceiver và NetworkInfo 70

7.2.1 Lớp ConnectivityManager 70

7.2.2 Lớp NetworkInfo 71

7.3 Quản lý mạng và kết nối mạng 71

7.3.1 Kiểm tra trạng thái kết nối mạng 71

7.3.2 Ứng dụng cảnh báo khi trạng thái kết nối mạng thay đổi với BroadcashReceiver 74 Bài 8 Sử dụng nguồn dữ liệu từ internet 76

8.1 Định vị tài nguyên 76

8.1.1 Liên kết 76

8.1.2 Định nghĩa URL 76

8.1.3 Cấu trúc của URL 76

8.2 HTML và RSS 77

8.2.1 Định nghĩa HTML 77

8.2.2 Cấu trúc cây HTML cơ bản 77

8.2.3 HTML và CSS 78

8.2.4 Một số thể hay dùng trong HTML 79

8.2.5 RSS 79

8.2.6 Đặc tả RSS 80

8.2.7 Một số phần tử của RSS 81

8.3 Một số lớp liên quan tới 81

8.3.1 Giới thiệu lớp URL 81

Trang 4

8.3.2 Giới thiệu lớp URLConnection 82

8.3.3 Giới thiệu lớp HttpURLConnection 83

8.4 Lấy dữ liệu đơn giản từ URL trên internet 84

8.4.1 Load dữ liệu văn bản từ internet về điện thoại 84

8.4.2 Load ảnh từ internet 86

8.4.3 Load nhạc từ internet 89

Bài 9 Ứng dụng duyệt web Webmini và đọc tin tức 89

9.1 Tổng hợp kiên thức liên quan 89

9.2 Ứng dụng duyệt web Webmini 89

9.3 Ứng dụng đọc báo 94

Bài 10 Một số khái niệm cơ bản về dịch vụ mạng 95

10.1 Một số khái niệm cơ bản 95

10.1.1 Mô hình OSI 95

10.1.2 Giao thức 96

10.1.3 Địa chỉ IP 97

10.1.4 Cổng (Port) 98

10.1.5 Mô hình hướng kết nối TCP/IP 98

10.1.6 So sánh sự khác nhau giữa TCP và UDP 100

10.1.6 Mô hình OSI và TCP/IP 101

10.2 Giới thiệu WebService 101

10.2.1 Giới thiệu WebService 101

10.2.2 Định nghĩa WebService 101

10.2.3 Đặc điểm của Web service 102

10.2.4 Ưu và nhược điểm 102

10.3 Kiến trúc của Web service 103

10.3.1 Kiến trúc của Web service 103

10.3.2.Thành phần cơ bản của Web service 104

10.4 Xây dựng và triển khai dịch vụ mạng cho ứng dụng di động 105

10.4.1 Giới thiệu 105

10.4.2 Các bước chính trong triển khai dịch vụ mạng cho ứng dụng di động 106

10.4.3 Giao tiếp client và server 106

10.5 Một số công nghệ lập trình mạng 106

10.5.1 Công nghệ Web Service 107

Bài 11 Định dạng dữ liệu XML 110

Trang 5

Bài tập thực hành CĐ3: Lập trình dịch vụ mạng trên Android

Bộ môn Công nghệ Phân mềm khoa Công nghệ Thông tin Trang 4

11.3 Phân tích dữ liệu XML 121

13.3.1 Phân tích XML bằng kỹ thuật DOM 122

13.3.2 Phân tích XML bằng kỹ thuật SAX 123

13.3.3 Kỹ thuật DOM và kỹ thuật SAX 124

11.4 Tạo một tài liệu XML trên android 124

Bài 12 Định dạng dữ liệu JSON 129

12.1 Giới thiệu JSON 129

12.1.1 Giới thiệu về JSON 129

12.1.2 Định nghĩa JSON 129

12.1.3 Ưu điểm của Json 129

12.2 Cấu trúc tệp JSON 129

12.2.1 Cấu trúc tệp JSON 129

12.2.2 Ví dụ mô tả JSON 131

12.3 Thao tác với tệp định dạng JSON 132

12.3.1 Tổng quan về thao tác với tệp JSON 132

12.3.2 Các bước thực hiện thao tác với URL định dạng JSON 132

12.3.3 Đọc databse dạng jSON 133

12.4 JSON và XML 134

Bài 13 Dịch vụ Web với WebService 136

13.1 Cấu hình IIS và SQL 136

13.1.1 Cài đặt IIS 136

13.1.2 Cấu hình SQL 137

13.2 Khởi tạo WebService 138

13.2.1 Các bước xây dựng WebService 138

13.2.2 Xây dựng WebService hỗ trợ các phép tính cộng 139

Bài 14 Lập trình dịch vụ mạng Xây dựng ứng dụng di động 142

14.1 Tổng hợp một số kiến thức liên quan 142

14.1.1 Sử dụng AsyncTask 142

14.1.2 Thư viện KSOAP 2 142

14.1.3 Thư viện Retrofit 142

14.2 Ứng dụng WebService 142

Bài 15 Dịch vụ Web với WebAPI 152

15.1 Tổng quan về Web API 152

15.1.1 Giới thiệu API 152

15.1.2 Giới thiệu Web API 152

15.1.3 Đặc điểm Web API (.NET 4.0 trở lên) 153

15.1.4 Công cụ phát triển Web API 153

15.2 Khởi tạo và cấu hình Web API 154

15.2.1 Tạo ứng dụng Web API bằng Visual Studio 154

15.2.2 Tạo ứng dụng Web API đầu tiên 156

Bài 16 Ứng dụng Dịch vụ Web theo công nghệ WebAPI 160

16.1 Tổng hợp một số khái niệm lien quan với WebAPI 160

16.1.1 Tạo Web API: 160

16.1.2 TẠO WEB API BẰNG NODEJS, CSDL MONGODB(NoSQL) 160

16.2 Ứng dụng quản lý account với Web API 161

Trang 6

16.3 Xây dựng app android đọc account từ Web API 166

Bài 17 Giới thiệu về bảo mật trên mobile 171

17.1.Giới thiệu 171

17.2 Các mức bảo vệ trên mạng 171

17.2.1 Bảo vệ Quyền truy nhập 171

17.2.2 Đăng ký tên /mật khẩu 171

17.2.3 Mã hoá dữ liệu 172

17.2.4 Bảo vệ vật lý 172

17.2.5 Tường lửa 172

17.2.6 Quản trị mạng 172

17.2.7 An toàn thông tin bằng mật mã 173

17.3 Một số phương pháp bảo mật ứng dụng Android 173

17.3.1 Lưu trữ nội bộ 174

17.3.2 Mã hóa dữ liệu trên bộ nhớ ngoài 174

17.3.3 Sử dụng Intents cho IPC 174

17.3.4 Sử dụng HTTPS 175

17.3.5 Sử dụng GCM thay cho SMS 176

17.3.6 Tránh Yêu cầu dữ liệu cá nhân 176

17.3.7 Xác nhận User Input 176

17.3.8 Sử dụng ProGuard Trước khi Publishing 177

17.4 Tạo chữ ký kỹ thuật số trong ứng dụng Android 177

17.4.1 Giới thiệu 177

17.4.2 Tạo chữ ký kỹ thuật số trong ứng dụng Android 178

Trang 7

Bài tập thực hành CĐ3: Lập trình dịch vụ mạng trên Android

Bộ môn Công nghệ Phân mềm khoa Công nghệ Thông tin Trang 2

DACH MỤC TỪ VIẾT TẮT

Protocol

Trang 8

DANH MỤC HÌNH VẼ, BẢNG

Hình 1 Hình ảnh mô phòng MultiThreading 7

Hình 2 Lớp kế thừa từ lớp AsyncTask 8

Hình 3 Mô hình làm việc AsyncTask 8

Hình 4 Thứ tự thực hiện các phương thức của lớp AsyncTask 9

Hình 5 Kết quả ứng dụng ProgressBar 13

Hình 6 Hoạt động Broadcast Receiver 21

Hình 7 Các kiểu giao diện hiển thị bản đồ mà Google Maps cung cấp 44

Hình 8 API key và google service 45

Bảng 1 Bảng một số phương thức hay sử dụng lớp Location 56

Bảng 2 Các tham số của phương thức locationManager.requestLocationUpdates 57

Hình 9 Lấy tọa độ của 1 địa điểm với google map 63

Hình 10 Lấy tọa độ của 1 địa điểm với google Earth 64

Bảng 3 Các phương thức của lớp Map 65

Bảng 4 Các thuộc tính của lớp Map 66

Bảng 5 Sự kiện của Map 66

Bảng 6 Các điều khiển của Map 66

Hình 11 Cấu trúc trang web theo định dạng HTML 78

Hình 12 Cấu trúc trang web theo định dạng HTML5 78

Bảng 7 Bảng các phương thức khởi tạo của lớp URL 81

Bảng 8 Bảng một số phương thức trong lớp URL 82

Bảng 9 Bảng mô tả các chức năng trong mô hình OSI 96

Hình 13 Phương thức hoạt động của bộ giao thức TCP/IP 99

Hình 14 Mô hình OSI và cụm giao thức TCP/IP 101

Hình 15 Kiến trúc của Web service 103

Hình 16 Mô hình giao tiếp client và server 106

Hình 17 Kiến trúc WCF 107

Hình 18 Kiến trúc WebAPI 109

Hình 19 Phân tích cú pháp của XML 114

Hình 20 Phân tích XML bằng kỹ thuật DOM 122

Hình 21 Cấu trúc tệp JSON 131

Hình 22 Cài đặt IIS 137

Trang 10

Bài 1 Tổng quan về module

1.1 Tổng quan về module

Module này giới thiệu cho người học về dịch vụ mạng và các đối tượng thư viện hỗ trợ việc lập trình dịch vụ mạng trên android Dịch vụ và dịch vụ mạng được giới thiệu trong module gồm: Các dịch vụ trên điện thoại, dịch vụ của google, dịch vụ trên web Một số vấn

đề liên quan được giới thiệu như: khái niệm webservice, cụm giao thức mạng, các loại dữ liệu XML, JSON lưu trữ dữ liệu trên internet

1.2 Một số thư viện thường dùng trong android

1 Gson

Gson là thư viện Android dùng để tạo ra Json từ Java Object hoặc gắn giá trị cho Java Object từ Json Thư viện này thường được sử dụng khi tương tác với APIs Chúng ta thường

sử dụng Json bởi vì nó nhẹ và đơn giản hơn so với XML

2 Retrofit

Trên trang chủ của Retrofit có câu: “Retrofit turns your REST API into a Java interface” nói lên đầy đủ chức năng của nó Đây là một giải pháp tuyệt vời để tổ chức các lời gọi API trong một dự án Các lời gọi request được thêm đơn giản và tiện dụng Ta sử dụng Callback để lấy kết quả các request gửi lên

Sử dụng thư viện Retrofit Trang chủ: http://square.github.io/retrofit/

Retrofit là một Rest Client (Tìm hiểu thêm về chuẩn RESTFul dưới link tham khảo) cho Android và Java và được tạo ra bởi Square Họ làm cho việc nhận và tải lên JSON (hoặc

dữ liệu khác) một cách khá dễ dàng tới một WebService dựa trên mô hình REST

Để làm việc với Retrofit cần triển khai cơ bản 3 lớp:

– Model class to map JSON Data – Interfaces để định nghĩa các API cho Webservice – Retrofit.Builder Lớp để định nghĩa URL Endpoint cho các hoạt động liên quan tới Http

3 EvenBus

EvenBus là thư viện làm đơn giản giao tiếp giữa các phần trong ứng dụng của bạn Ví

dụ, để gửi dữ liệu từ Activity tới Service đang chạy, hoặc gửi dữ liệu giữa các Fragment

4 ActiveAndroid

ActiveAndroid là một ORM dành cho Android Nó là một trừu tượng của SQLite cho

Trang 11

Bài tập thực hành CĐ3: Lập trình dịch vụ mạng trên Android

Bộ môn Công nghệ Phân mềm khoa Công nghệ Thông tin Trang 2

7 Piccaso

Khi tải hình ảnh từ web, thì bạn nên sử dụng Picasso vì nó đơn giản và dễ dàng và tôi thực sự như thế nào API được viết

Các bước bạn cần thực hiện để tải xuống hình ảnh chỉ với các API Android chuẩn:

– Nhận URL Hình ảnh

– Tạo AsyncTask để tải hình ảnh

– Thực thi AsyncTask

– Lưu trữ kết quả trong Bitmap

– Đặt bitmap làm nguồn

– Hình ảnh Cache cho tương lai

8.Dagger

Dagger được biết đến và sử dụng là một thư viện dependency injection trong Android

Nó là một dependency injection đơn giản và nhanh cho cả Android và Java, bao gồm 2 phần: thư viện Dagger (size 100kb) và trình biên dịch Dagger

Thư viện này chứa tất cả những logic cần thiết và một số chú thích.Nó cũng sử dụng chuẩn chú thích javax.inject, làm code của bạn khác với các dependency injection khác của framework như Spring hay Guice

Dagger được cấp phép theo Apache License 2.0, được phát triển và điều hành bởi Square và Google và có thể tìm được ở đây: http://square.github.io/dagger/

9 LeakCanary

Bạn có biết những người thợ mỏ sử dụng một con chim hoàng yến nhốt trong một chiếc lồng, nếu khí gas nhiều đến mức con hoàng yến chết, đó sẽ là dấu hiệu để họ rời khỏi

mỏ LeakCanary dễ dàng phát hiện các đối tượng bị rò rỉ bằng cách thêm một vài dòng code Java vào code đã có sẵn Nó miễn phí và dễ dàng sử dụng

LeakCanary được cấp phép theo Apache License 2.0, được phát triển và điều hành bởi Square và có thể tìm được ở đây: https://github.com/square/leakcanary

10 ZXing

Sử dụng mã vạch và mã QR làm tiêu chuẩn trong các thiết bị đọc dữ liệu Ban đầu được viết bằng Java, nó có thể đọc và tạo mã vạch trên nhiều nền tảng, và nó đã được chuyển sang nhiều ngôn ngữ khác Thư viện này đã được phát triển một thời gian và có cơ sở người dùng tốt Trình đọc mã QR được dùng trên smartphone cũng sử dụng thư viện này Nó làm việc hiệu quả và có lịch sử tốt

ZXing được phát triển bởi Sean Oven,Daniel Switkin, ZXing Team và được cấp phép theo Apache License 2.0 Nó có thể tìm được ở đây: https://github.com/zxing/zxing

11 Libphonenumber

Khi phân tích cú pháp và định dạng số điện thoại, không có nhiều giải pháp sẵn có tốt

và miễn phí Rất may, Google team đã đưa ra một thư viện có tên Libphonenumber Đây có lẽ

là thư viện tốt và toàn diện nhất để phân tích cú pháp, xác nhận và định dạng số điện thoại

Nó khá đơn giản và dễ dàng để sử dụng API và cũng đã được chuyển sang các ngôn ngữ khác ngoài JVM như C# và PHP Libphonenumber được phát triển và điều hành bởi

https://github.com/googlei18n/libphonenumber

12.Tape

Đây là một thư viện khác của Square Tape là một tập hợp của các lớp để xử lý hàng đợi Thật tuyệt khi xử lý luồng dữ liệu và download dữ liệu trong môi trường không ổn định.Thay vì code xử lý hàng đợi bằng tay, Tape sẽ làm thay bạn Nếu có lỗi nào đó, Tape sẽ

Trang 12

tự động chạy lại lệnh hoặc hoạt động lại một lần nữa Ngoài ra, tất cả các kết quả trung gian

sẽ được tự đọng o lưu trữ, đây cũng là một tính năng hữu ích của Tape

Tape được được cấp phép Apache License 2.0, bạn có thể tìm tại đây: https://github.com/square/tape

13.Jitpack.io

Jitpack.io được phát triển bởi nhóm nghiên cứu của Streametry Ltd Jitpack có thể built bất kỳ project GitHub nào và phát hành tới repo Maven công cộng Nó giúp tiết kiệm thời gian và rắc rối khi xây dựng dependency Nó là một trong những cách đơn giản nhất để xuất bản bất kì project GitHub nào như một Maven dependency

Bạn có thể kiểm tra Jitpack tại đây: http://jitpack.io/ Jitpack uses a custom terms of usage license

1.2 Tiến trình và luồng

1.2.1 Tiến trình

Process là quá trình hoạt động của một ứng dụng Điều đó nghĩa là gì? Có thể lấy một

ví dụ như sau, khi bạn click đúp chuột vào biểu tượng MS Word, một process chạy ứng dụng Word được khởi tạo

1.2.2 Luồng

Thread là một tiến trình đơn vị xử lý của máy tính có thể thực hiện một công việc riêng biệt Trong Java các luồng được quản lý bởi máy ảo Java (JVM)

Thread là một bước điều hành bên trong một process Một process dĩ nhiên có thể chứa nhiều thread bên trong nó Khi chúng ta chạy ứng dụng Word, hệ điều hành tạo ra một process và bắt đầu chạy các thread chính của process đó

Điểm quan trọng nhất cần chú ý là một thread có thể làm bất cứ nhiệm vụ gì một process có thể làm Tuy nhiên, vì một process có thể chứa nhiều thread, mỗi thread có thể coi như là một process nhỏ Vậy, điểm khác biệt mấu chốt giữa thread và process là công việc mỗi cái thường phải làm

Một điểm khác biệt nữa đó là nhiều thread nằm trong cùng một process dùng một không gian bộ nhớ giống nhau, trong khi process thì không Điều này cho phép các thread đọc

và viết cùng một kiểu cấu trúc và dữ liệu, giao tiếp dễ dàng giữa các thread với nhau Giao thức giữa các process, hay còn gọi là IPC (interprocess communication) thì tương đối phức tạp bởi các dữ liệu có tính tập trung sâu hơn

1.2.3 Lớp Hander

Ngày đăng: 22/06/2022, 02:26

HÌNH ẢNH LIÊN QUAN

Một chương trình đa luồng hoạt động nhanh hơn trên máy tính có cấu hình tốt và mạnh - HỌC PHẦN: CHUYÊN ĐỀ 3 LẬP TRÌNH MẠNG TRÊN ANDROID HỆ: ĐẠI HỌC
t chương trình đa luồng hoạt động nhanh hơn trên máy tính có cấu hình tốt và mạnh (Trang 16)
Hình 2. Lớp kế thừa từ lớp AsyncTask - HỌC PHẦN: CHUYÊN ĐỀ 3 LẬP TRÌNH MẠNG TRÊN ANDROID HỆ: ĐẠI HỌC
Hình 2. Lớp kế thừa từ lớp AsyncTask (Trang 17)
//doInBackground: Hàm chỉ hành động. VD này là hành động lấy hình từ internet - HỌC PHẦN: CHUYÊN ĐỀ 3 LẬP TRÌNH MẠNG TRÊN ANDROID HỆ: ĐẠI HỌC
do InBackground: Hàm chỉ hành động. VD này là hành động lấy hình từ internet (Trang 19)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w