Tải bản đầy đủ
TỔNG QUAN ĐỀ TÀI VÀ CƠ SỞ LÝ THUYẾT

TỔNG QUAN ĐỀ TÀI VÀ CƠ SỞ LÝ THUYẾT

Tải bản đầy đủ

c) Skydriver
Skydriver là dịch vụ sao lưu, chia sẻ dữ liệu của tập đoàn Microsoft.
Người sử dụng sau khi đăng ký tài khoản sẽ có 7GB dung lượng bộ nhớ để sao
lưu và chia sẻ tài liệu. Giao diện Skydriver dễ sử dụng, băng thông upload và
download có thể điều chỉnh. Một phần mềm chạy trên máy client giúp người
dùng dễ dàng upload, download, đồng bộ và chỉnh sửa tài liệu của họ.
c) Các dịch vụ sao lưu, chia sẻ dữ liệu khác
Bên cạnh những công ty, những dịch vụ chia sẻ dữ liệu trực quan trên thị
trường internet còn nhiều dịch vụ sao lưu, chia sẻ dữ liệu nổi tiếng khác như:
-

Mediafire.com

-

Uploading.com

-

Hotfile.com
Đây là một số dịch vụ sao lưu trên môi trường PC được sử dụng phổ biến.

Trên thị trường thiết bị di động các phần mềm chia sẻ tài liệu chưa nhiều và chưa
có nhiều phần mềm chia sẻ dữ liệu giữa người dùng với nhau thông qua một
chương trình ứng dụng. Dropbox có client chạy trên thiết bị iphone và Android
nhưng chức năng chia sẻ giữa người dùng với nhau qua thiết bị di động là chưa
có. Đô án được xây dựng với các chức năng giúp người sử dụng backup tài liệu,
chia sẻ tài liệu tránh khỏi những phiền toái khi bạn bị mất máy hoặc máy gặp trục
trặc. Chương trình chia sẻ tài liệu là một phần mềm dịch vụ, giúp người sử dụng
điện thoại có thêm tiện ích khi sử dụng. Người sử dụng có thể backup những dữ
liệu quan trọng, tránh những trường hợp làm mất thông tin. Người sử dụng còn
có thể chia sẻ những tài liệu trên máy của họ cho mọi người, chia sẻ những bức
ảnh đẹp, những video, hay những tài liệu học tập, văn bản. Đây là những lý do
em chọn đề tài “Xây dựng chương trình chia sẻ tài liệu trên Android”.
1.1.2. Mục tiêu của đề tài
Mục tiêu của đề tài là nhằm đưa ra một giải pháp bổ sung, khả thi cùng với
các dịch vụ sao lưu khác trên điện thoại như Dropbox cung cấp tiện ích cho
người sử dụng. Hơn thế nữa, mục tiêu của chương trình còn giúp người sử dụng
dễ dàng hơn trong việc chia sẻ tài liệu trên điện thoại, cụ thể là Android.

7

1.1.3. Hướng tiếp cận của đề tài
Phương pháp đưa ra là sử dụng web service. Một dịch vụ web chạy trên
server thực hiện các công việc quản lý người dùng và quản lý tài liệu của mỗi
người dùng. Một mô hình client – server. Phía client giao tiếp với server thực
hiện các chức năng của chương trình.
Công viêc chính thực hiện để tài bao gồm:
-

Tìm hiểu và cài đặt Server trên nền ASP.NET.

-

Tìm hiểu và xây dựng web service kết nối với Client và cơ sở dữ liệu.

-

Tìm hiểu và cài đặt Client trên nền hệ điều hành Android.

-

Tìm hiểu các phương thức truyền dữ liệu giữa môi trường Android(java
SE) và ASP.NET

1.2. Tổng quan hệ điều hành Android
1.2.1. Lịch sử phát triển
Android là hệ điều hành/môi trường lập trình được phát triển bởi Google,
đã được tổ chức Open Handset Alliance chứng nhận Android là nền tảng mã
nguồn mở đầu tiên hoàn toàn miễn phí, mở, và chứa đầy đủ các yếu tố cần thiết
để phát triển ứng dụng cho điện thoại di động. Được chính thức ra đời năm 2005,
cho tới nay Android đã phát triển nhanh và mạnh với nhiều phiên bản và được ưa
dùng. Các phiên bản của Android:

Hình 1.1: Lịch sử phát triển Android

8

1.2.2. Đặc điểm của hệ điều hành Android
Android là một môi trường giúp phát triển phần mềm cho các thiết bị di
động. Nó không phải là nền tảng cho phần cứng. Android bao gồm một nhân hệ
điều hành dựa trên nhân của hệ điều hành mã nguồn mở Linux, một giao diện
người dùng phong phú, các ứng dụng cho người dùng cuối, thư viện mã, frame
work, hỗ trợ đa phương tiện,… Một đặc điểm mạnh mẽ khác của Android nó là
một nền tảng mã nguồn mở, điều này rất có lợi trong việc cung cấp các yếu tố
còn thiếu (các thư viện, các công cụ hỗ trợ phát triển ứng dụng) bởi cộng đồng
phát triển mã nguồn mở toàn cầu. Không chỉ hỗ trợ các thiết bị có cấu hình phần
cứng mạnh được biết tới là các “Smart Phone” Android hỗ trợ được các nền tảng
phần cứng khác tất nhiên phải đảm bảo được tốc độ xử lý.
Giống với lập trình ứng dụng trong WINDOWS được cung cấp các tính
năng thỏa mãn sự hỗ trợ của hệ điều hành như cung cấp các cửa sổ, các nút bấm,
các textbox,… các hệ quản trị cơ sở dữ liệu cho phép truy xuất, thay đổi, lưu trữ
như MySQL, SQL server,...
Trong hệ điều hành Android cũng cung cấp các khái niệm này, tuy nhiên có
phương thức đóng gói khác và có cấu trúc phù hợp cho điện thoại. Các phương
thức đó là
-

Activities

Trong hệ điều hành Android các khối xây dựng lên giao diện người dùng
được hiểu là Activities. Chúng ta có thể hiểu Activities trong hệ điều hành
Android chính là các cửa sổ hoặc các nút hoặc các hộp thoại trong các ứng dụng
chạy trên máy tính để bàn. Như vậy phần giao diện được gọi là Activities còn mã
nguồn của chương trình sẽ được đóng gói vào các Form Content providers hoặc
Services.
-

Content providers

Content Providers cung cấp một mức độ trừu tượng (Level Of Anstractio)
đối với bất kỳ dạng dữ liệu nào được lưu trên thiết bị mà có thể bị truy cập từ
nhiều ứng dụng khác nhau. Các mô hình phát triển ứng dụng trên Android

9

khuyến khích việc xây dựng dữ liệu có thể được truy cập từ nhiều ứng dụng khác
nhau tuy nhiên phải kiểm soát được truy cập.
-

Intents

Intents được hiểu là thông điệp của hệ thống. Thông điệp này chạy vòng
quanh bên trong thiết bị thông báo tới các ứng dụng các sự kiện khác nhau xảy ra
bên trong hệ thống như: trạng thái phần cứng bị thay đổi, dữ liệu mới được thêm
vào, các sự kiện của ứng dụng(ví dụ người sử dụng Click vào phần nào đó của
thiết bị). Không chỉ người lập trình mới có thể hồi đáp lại Intents tuy nhiên người
lập trình có thể tạo ra các Intents theo mục đích của mình như dùng để khởi tạo
các Activities khác hoặc dùng để báo cho ta biết khi có các tình huống cụ thể
phát sinh,…
-

Services

Trong Android các phương thức Activities, Content Providers, Intents có thời
gian sống rất ngắn và có thể tắt tại bất cứ thời điểm nào. Tuy nhiên Services được
thiết lập để có thể chạy liên tục nếu cần thiết và độc lập với các hoạt động.
Services được sử dụng trong việc kiểm tra quá trình cập nhật cho dữ liệu trong
RSS hoặc chơi lại một bản nhạc mặc dù phương thức Activities đã tắt.
Các đặc điểm mà hệ điều hành Android cung cấp phát triển các ứng dụng:
Lưu trữ: Lập trình viên có thể đóng gói các dữ liệu cần thiết cho ứng
dụng, những dữ liệu này không có sự thay đổi chẳng hạn như dữ liệu cho các
biểu tượng hoặc dữ liệu cần cho trợ giúp người sử dụng. Lập trình viên có thể sử
dụng một phần nhỏ không gian lưu trữ trên bộ nhớ của thiết bị dùng để lưu trữ cơ
sở dữ liệu hoặc sử dụng thẻ nhớ (SD Card) để lưu trữ dữ liệu cần thiết nếu người
dùng sử dụng thẻ nhớ. Android cung cấp các phương thức giúp đọc, ghi dữ liệu.
Mạng: các thiết bị sử dụng Hệ điều hành Android cung cấp sẵn khả năng
truy cập Internet thông qua các kết nối vừa hoặc lớn hơn. Lập trình viên có thể
tận dụng lợi thế truy cập Internet từ bất kỳ cấp độ nào mà họ muốn, có thể sử
dụng Sockets trong java hoặc tất cả các phương thức được xây dựng và đưa vào
bộ Webkit trong Android. Bộ webkit trong Android được xây dựng dựa trên trình
duyệt Web và cung cấp tất cả các ứng dụng cần thiết cho một trình duyệt.

10

Đa phương tiện: Các thiết bị sử dụng Android cung cấp khả năng ghi và
phát video, quá trình ghi và phát cụ thể hoàn toàn có thể thay đổi. Người lập trình
viên có thể truy vấn tới thiết bị, tìm hiểu khả năng của thiết bị(có phát nhạc hay
không, có camera hay không) và lấy ra những khả năng đa phương tiện phù hợp
như là nghe nhạc, lấy ảnh từ camera, sử dụng Micro để ghi dữ liệu âm thanh v.v.
GPS: Các thiết bị sử dụng Android nếu có khả năng định vị vị trí thì lập
trình viên hoàn toàn có thể lấy ra được các thông tin cần thiết để xây dựng ứng
dụng riêng của mình như định vị (GPS), xem bản đồ hoặc cho phép người sử
dụng theo dõi thiết bị trong trường hợp bị mất cắp.
Các dịch vụ thoại: Dĩ nhiên thiết bị chạy Android cho phép các ứng dụng
cơ bản của điện thoại. Lập trình viên có thể xây dựng chương trình cho phép gọi
và nhận cuộc gọi, gửi và nhận tin nhắn, và tất cả dịch vụ khác của một chiếc điện
thoại thông thường.
1.2.3. Kiến trúc hệ điều hành Android
Việc phát triển dựa trên nhân Linux 2.6 đem lại nhiều thuận lợi lớn cho
Android bởi lịch sử phát triển lâu đời và là nền tảng mở. Nhân này chịu trách
nhiệm điều khiển phần cứng, quản lý điện năng, quản lý truy cập và các chức
năng cần thiết khác cho một hệ điều hành. Các điều khiển thiết bị được cung cấp
bao gồm: Hiển thị, máy ảnh, bàn phím, Wifi, bộ nhớ Flash, Âm thanh, và
IPC(Xử lý truyền thông). Dựa trên nhân của Linux hệ điều hành Android có kiến
trúc kiểu ngăn xếp như sau. Các thành phần chính sẽ được mô tả rõ ở bên dưới.
 Linux Kennel
Như đã trình bày ở trên, hệ điều hành Android được xây dựng dựa trên
nền tảng là nhân của hệ điều hành mã nguồn mở Linux. Nhân Linux cung cấp
một lớp trừu tượng giúp điều khiển nền tảng phần cứng cũng như các dịch vụ cốt
lõi như bộ nhớ, xử lý và quản lý hệ thống tập tin.. Cung cấp các khả năng như
điều khiển thiết bị, truy xuất vào thiết bị, điều khiển nguồn điện, truy xuất tới
máy ảnh, màn hình cảm ứng, GPS,… Các ứng dụng của người dùng được viết
bởi ngôn ngữ Java, Android SDK, sau đó được biên dịch thành mã Byte và chạy
thông qua máy ảo Davik.

11

Hình 1.2: Kiến trúc ngăn xếp của hệ điều hành Android
 Android Runtime
Ở mức này, máy ảo Davik thực hiện nhiệm vụ giống với CLR(Comon
Language Runtime) của Microsoft tuy nhiên tất cả các ứng dụng Android được
chạy thông qua các tiến trình riêng, các tiến trình này được quản lý thông qua
máy ảo Davik do vậy mỗi ứng dụng sẽ khởi tạo một máy ảo tương ứng, Davik
được thiết kế đảm bảo hiệu xuất cho việc xử lý các tiến trình. Các ứng dụng thực
thi thông qua Davik được định dạng dưới dạng .Dex
Các máy ảo Dalvik có các lớp Java tạo các tập tin và kết hợp chúng vào
một hoặc nhiều các tập tin thực thi Dalvik (. dex). Nó ghép sự trùng lặp thông tin
từ các tập tin hoặc từ các lớp, có hiệu quả việc giảm không gian cần thiết. Ví dụ,
tệp dex của các ứng dụng web, trình duyệt Android là khoảng 200Kb, trong khi
tương đương với phiên bản jar là khoảng 500Kb. Các Tệp dex của các ứng dụng
đồng hồ báo thức, khoảng 50Kb và ở phiên bản Jar là khoẳng 120Kb. Thứ hai,
Google đã điều chỉnh rác trong máy ảo Dalvik. Các công ty có thể biện minh cho
điều này sự lựa chọn vì nhiều các thư viện lõi của Android, trong đó có các thư
viện đồ họa, được thực hiện trong C và C + +.
12

Một số thư viện tiêu biểu
• Các hệ thống thư viện của C được dựa trên Berkeley Software
Distribution và được tinh chỉnh để nhúng vào các thiết bị dựa trên Linux.
• SLG công cụ đồ họa 2D cơ bản.
• Các thư viện đa phương tiện PacketVideo’s OpenCORE, các thư viện này
cung cấp khả năng ghi và phát hầu hết các định dạng âm thanh và Video.


Một thư viện có tên là Surface Manager điều khiển truy cập tới hệ thống
hiển thị và hỗ trợ hiển thị 2D và 3D.

• Thư viện Webkit cung cấp các hỗ trợ cho trình duyệt giống với hỗ trợ
trong trình duyệt GoogleChrome.
• Thư viện FreeType hỗ trợ phông trữ.
• Thư viện SQLite cung cấp các phương thức liên quan tới cơ sở dữ liệu.
SQLite là thư viện mã nguồn mở tuy nhiên không có các công cụ trên
Android lập trình viên có thể mua các công cụ cần thiết cho việc khai thác
cơ sở dữ liệu.
 Application Framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho
các nhà phát triển khả năng xây dựng các ứng dụng vô cùng phong phú và sáng
tạo. Lập trình viên có thể tự do tận dụng phần cứng, truy cập thông tin địa điểm,
chạy các dịch vụ nền, thiết lập hệ thống cảnh báo, thêm các thông báo và trạng
thái,... Kiến trúc ứng dụng được thiết kế đơn giản hóa trong việc sử dụng các
thành phần, các ứng dụng đều có khả năng Public các thành phần của mình với
mục đích cho các ứng dụng khác sử dụng (dĩ nhiên tồn tại khả năng bảo mật và
mã hóa cần thiết). Tất cả ứng dụng là tập hợp các dịch vụ và hệ thống cơ bản.
• Tập hợp các đối tượng View được hiểu là các thành phần xây dựng lên
giao diên người dùng (UI) của ứng dụng như các Button, TextView,
ListView, Layout, Grids, Edit Box,…
• Content Provider cho phép ứng dụng có thể truy cập dữ liệu từ các ứng
dụng khác, bao hàm cả các ứng dụng của hệ thống như danh bạ điện thoại,
13

hệ thống tin nhắn,… Ngoài ra cho phép ứng dụng chia sẻ dữ liệu của
chính mình cho các ứng dụng khác
• Resource Manager quản lý việc truy cập của ứng dụng tới các tài nguyên
của chính ứng dụng ví dụ: truy cập tới các Layout, các xâu được định
nghĩa, các Icon.
• Notification Manager quản lý việc đưa ra các thông báo, cảnh báo của ứng dụng
• Activity Manager quản lý vòng đời của ứng dụng, khởi tạo, chạy, kết thúc,
đồng thời có khả năng gọi lại các Activity trong ngăn xếp chứa chúng.
 Application
Được gọi là tầng ứng dụng nơi chứa các ứng dụng giao tiếp với người sử
dụng. Các ứng dụng này được phát triển trên nền tảng ngôn ngữ Java. Các hệ
thống Android cung cấp một số ứng dụng có sẵn như quản lý danh bạ, trình
duyệt, các ứng dụng gọi và nhận cuộc gọi, Home,…
Contact: là ứng dụng miễn phí, mã nguồn mở được cung cấp bởi Google nó cung
cấp các tính năng cơ bản của một ứng dụng quản lý danh bạ điện thoại như thêm
liên hệ, chỉnh sửa liên hệ, xóa liên hệ,… Ngoài ra nó cũng cho phép các nhà phát
triển có khả năng tương tác lên cơ sở dữ liệu một số tương tác thường thấy như
việc tham chiếu lên cơ sở dữ liệu, đọc cơ sở dữ liệu, chỉnh sửa hoặc xóa một bản
ghi bất kỳ,… Để thực hiện lập trình viên cần cấp quyền truy cập cho ứng dụng,
dùng con trỏ tham chiếu tới dữ liệu.
Phone: ứng dụng cho phép người sử dụng thực hiện các chức năng thoại cơ bản
của điện thoại di động như thực hiện cuộc gọi, nhận cuộc gọi, gửi nhận tin nhắn,

Brower: Giống với các trình duyệt của IOS hay Windows Mobile trình duyệt của
Android cung cấp các tính năng cơ bản như khả năng duyệt web động cũng như
web tĩnh, đọc các định dạng xml các dạng tệp ảnh, tệp video, tệp audio, sử dụng
các giao thức khác nhau để kết nối internet. Sử dụng các công nghệ khác nhau để
truy cập như công nghệ GPRS, 3G, 4G,…

14

Hình 1.3: Sơ đồ chuyển trạng thái của Activity

15

1.2.4. Các dịch vụ mạng
Nền tảng Android kết hợp nền tảng khả năng phần cứng, kiến trúc phần
mềm, và truy cập vào mạng dữ liệu đem lại sức mạnh lớn trong việc thiết kế các
ứng dụng mạng.
Android cung cấp truy cập bằng nhiều cách: mạng di động IP, WiFi, và
Bluetooth. Ở đây chúng ta sẽ tập trung vào việc ứng dụng Android trong việc sử
dụng mạng dữ liệu IP, sử dụng phương pháp tiếp cận khác nhau.
Phần này giới thiệu lại các kiến thức cơ bản về mạng từ đó chuyển qua xem
xét các yếu tố hỗ trợ mạng trên nền tảng Android. Như ta đã biết kiến trúc mạng
TCP/IP là một kiến trúc mạnh bao gồm các lớp và các giao thức sử dụng tương
ứng với các lớp như.
-

Tầng Application sử dụng các giao thức SMTP,HTTP,FTP

-

Tầng Transport sử dụng giao thức: TCP,UDP

-

Tầng Internet sử dụng giao thức: IP, ICMP, IGMP

-

Tầng Link sử dụng giao thức : ARP,RARP.

HTTP và Soap
Web Services là một mô hình chung cho xây dựng ứng dụng và có thể
được thực hiện trên bất kỳ hệ thống nào có hỗ trợ giao tiếp qua Internet. Trước
đây việc kết nối tới Webservice sử dụng các công nghệ như Component Object
Model (DCOM), Remote Method Invocation (RMI), và Internet Protocol InterOrb (IIOP). Thật không may tất cả các mô hình này phụ thuộc vào một giao thức,
đối tượng cụ thể. Sau này Web Service mở rộng các mô hình này một đưa ra giao
thức truy cập đối tượng đơn giản (SOAP) và Extensible Markup Language
(XML).
Như chúng ta đã biết giao thức HTTP cho phép người dùng gửi yêu cầu
“Request” tới máy chủ HTTP, và máy chủ sẽ hồi đáp “Response” yêu cầu của
người sử dụng. Với SOAP tất cả các Request và Response được triết xuất thành
XML và gửi đi thông qua giao thức HTTP. Điều này khiến việc trao đổi giữa
Client và Server trở nên đơn giản và bảo mật hơn.

16

Hình 1.4: Mô hình sử dụng SOAP
Truyền dữ liệu sử dụng SOAP
Cộng đồng mã nguồn mở đã phát triển một gói mới cho phép truyền dữ
liệu sử dụng Soap. Gói này cho phép chuyển dữ liệu gửi đi thành XML, gửi dữ
liệu tới WebService, nhận về phản hồi từ WebService (cũng dạng XML) lấy ra
thành phần của dữ liệu.
XSTREAM
Như vậy công nghệ Soap giúp trao đổi dữ liệu giữa Client và WebService
dưới dạng XML thông qua giao thức HTTP. Để thuận tiện cho việc gửi dữ liệu,
lập trình viên có thể sử dụng XSTREAM
XSTREAM là một công cụ giúp chuyển các đối tượng hay những thể hiện
của những lớp Java qua dạng XML hay ngược lại. Nó là một mã nguồn mở, được
phát triển từ đầu năm 2004.
Để sử dụng XSTREAM Cần khởi tạo các đối tượng cần chuyển đổi thành
XML, đối tượng có thể bao hàm nhiều đối tượng con. Sau đó dùng XSTREAM
để tiến hành chuyển đổi qua lại giữa đối tượng và tệp XML.
1.3 Tổng quan Web service
1.3.1 Giới thiệu web service
Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc
cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to
Business) và B2C (Business to Customer). Giá trị cơ bản của dịch vụ Web dựa
17