1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát triển ứng dụng chia sẻ thông tin giao thông dựa trên thiết bị di động

31 369 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 31
Dung lượng 1,56 MB

Nội dung

Trong khi đó Smartphone chạy trên một hệ điều hành hoàn thiện và cung cấp platform cho các nhàphát triển ứng dụng thứ 3 để có thể phát triển ứng dụng của mình.. Hình 3 Share of worldwid

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA ĐIỆN TỬ - VIỄN THÔNG

&

-BÁO CÁO

THỰC TẬP TỐT NGHIỆP

Phát triển ứng dụng chia sẻ thông tin giao thông

dựa trên thiết bị di động

Giáo viên hướng dẫn: Phạm Văn Tiến Sinh viên thực hiện: Phạm Anh Tuấn

Mã số sinh viên: 20063510

Lớp: Điện tử 1 – K51

Hà Nội - 02/2010

Trang 2

Hà Nội - 02/2010

Trang 3

MỤC LỤC

-o0o -DANH MỤC HÌNH VẼ 4

1 MỞ ĐẦU: 5

2 NỘI DUNG THỰC TẬP: 7

2.1.Bada platform 7

2.1.1 Định nghĩa 7

2.1.2 Kiến trúc 8

2.1.3 Bada application framework 9

2.1.3.1 Chu kỳ sống của ứng dụng 9

2.1.3.2 Sự chuyển đổi trạng thái của ứng dụng 10

2.1.3.3 Launching Applications 11

2.1.4 Lập trình bada cơ bản 12

2.1.4.1 Hai pha khởi tạo 12

2.1.4.2 Object Ownership Policy 13

2.1.4.3 Privileged API 15

2.1.5 Các tính năng bada 16

2.1.5.1 Tính năng cơ bản 16

2.1.5.2 Tính năng tương tác người dùng 16

2.1.5.3 Tính năng hướng dịch vụ 17

2.2.Công cụ phát triển 17

2.3.Ứng dụng chia sẻ thông tin giao thông 18

2.3.1 Mô tả ứng dụng 18

2.3.2 Xây dựng các tính năng ứng dụng 20

2.3.2.1 Chụp ảnh và upload ảnh lên server 20

2.3.2.2 Chức năng bản đồ số cho ứng dụng 22

Trang 4

2.3.2.2.1 Hiển thị bản đồ 22

2.3.2.2.2 Sử dụng dịch vụ chuyển từ tọa độ sang tên đương phố (ReverseGeoCoding) 23

2.3.2.2.3 Lây dữ liệu từ GPS sensor 24

2.3.2.3 Chức năng tương tác với người dùng 25

2.3.2.4 Quản lý File và tệp tin 26

2.3.2.5 Download ảnh 26

2.3.3 Kết quả đạt được 27

TÀI LIỆU THAM KHẢO: 30

Trang 5

DANH MỤC HÌNH VẼ

Hình 1 SmartPhone……… 7Hình 2 Feature Phone

………7

Hình 3 Share of worldwide 2010 Q4 smartphone sales to end users by operating system, according to Canalys 8

Hình 4 bada architecture 9

Hình 5 Application Life-cycle 11

Hình 6 Application State Transition 12

Hình 7 Launching Application 12

Hình 8 Code cause resource leak 13

Hình 9 Hai pha khởi tạo 14

Hình 10 Ownership giứa hai đối tượng 15

Hình 11 Các namespace cơ bản 17

Hình 12 Các namespace thực hiện tính năng tương tác người dùng 18

Hình 13 Service-oriented namespaces 18

Hình 14 Tổng quan cấu trúc hệ thống 20

Hình 15 Thiết kế của cấu trúc hệ thống 21

Hình 16 Chụp ảnh - upload ảnh 28

Hình 17 Hiển thị ảnh trên bản đồ 29

Hình 18 Chọn đường/phố muốn xem ……….29

Hình 19 Kết quả……… …29

Hình 20 Quản lý ảnh ……… 30

Hình 21 Xem ảnh qua Web……….30

Trang 6

1 MỞ ĐẦU:

Hiện nay nhu cầu sử dụng điện thoại trên thế giới ngày càng tăng nhanh Những chiếcsmartphone hay feature phones không còn xa lạ với người sử dụng Do vậy nhu cầu vềứng dụng phục vụ công việc, giải trí cho dòng điện thoại này đã và đang trở thành mộtđiểm “nóng” Định nghĩa feature phones dùng để mô tả những chiếc di động cấp thấp cóhiệu năng tính toán thấp hơn một smartphone Đa số các feature phone phải chạy cácứng dụng dựa trên nền một platform như JavaME hoặc BREW Các feature phones có ítAPI hỗ trợ cho lập trình ứng dụng, và bị giới hạn do bộ nhớ rất nhỏ (J2ME) Trong khi

đó Smartphone chạy trên một hệ điều hành hoàn thiện và cung cấp platform cho các nhàphát triển ứng dụng thứ 3 để có thể phát triển ứng dụng của mình Các ứng dụng chạytrên smartphone (native application) do đó sẽ thân thiện hơn và đáp ứng được tối đa yêucầu từ người dùng

Hình 1 SmartPhone Hình 2 Feature Phone

Nền tảng di động – mobile platform chính là “trái tim” của các thiết bị smartphone Cácnền tảng smartphone đang phổ biến nhất hiện nay là Symbian gần đây với Symbian^3,Window Mobile gần đây với Window Phone 7, và các nền tảng mở như iOS, Android,PalmOS và SamSung bada vừa công bố

Các nền tảng mở trên smartphone đang dần trở lên chiếm ưu thế và phổ biến hơn so vớicác nền tảng khác do tính mở với số lượng người dùng ngày càng tăng và kho ứng dụngphong phú

Trang 7

Hình 3 Share of worldwide 2010 Q4 smartphone sales to end users by operating system, according to Canalys Trong quá trình thực tập tại phòng nghiên cứu truyền thông nhúng 411 – C9, thuộc bộ môn Kỹ thuật thông tin, khoa Điện tử - Viễn thông, Đại học Bách Khoa Hà Nội, em

đã cùng nhóm nghiên cứu tìm hiểu các nền tảng mở trên smartphone và xây dựng ứng dụng chia sẻ thông tin giao thông trên thiết bị SamSung WAVE GT-S8500 chạy hệ điềuhành bada Trong báo cáo này em xin đi sâu vào platform bada và việc xây dựng ứng dụng chia sẻ thông tin giao thông trên bada platform

2 NỘI DUNG THỰC TẬP:

2.1 Bada platform

2.1.1 Định nghĩa

bada là một nền tảng phần mềm cho thiết bị di động do Samsung

Electronics phát triển Bada được thiết kế để sử dụng trong các dòng điện thoại thông minh cao cấp và trung cấp

Trang 8

2.1.2 Kiến trúc

bada có kiến trúc 4 lớp:

Kernel

bada, theo như định nghĩa của Samsung, không phải là một hệ điều hành,

nhưng là một nền tảng có nhân có thể cấu hình, cho phép sử dụng nhân Linux hoặc các hệ điêu hành thời gian thực (RTOS)

Nhân Linux thường được dùng nhiều hơn cho các điện thoại thông minh cao cấp, trong khi RTOS thường có trong các smartphone tầm trung do có chân bộ nhớ nhỏ hơn

Hình 4 bada architecture

Device

Lớp Device chứa chức năng chính (core functions) của platform Lớp cungcấp những chức năng cơ bản như đồ họa, giao thức, gọi điện (telephony), bảo mật, sự kiện (event) …

Trang 9

Cung cấp các chức năng đặc trưng như SNS, bản đồ, thương mại Để cungcấp các chức năng này, Samsung xây dựng bada server để các ứng dụng bada có thể sử dụng service components của server

“This layer contains the service-oriented functions that are provided by application engines and server-assisted components The application engines provided by the service layer include Contact and Messaging engines The server-assisted features are provided by RESTful Web- service components that inter-connect with the service components of the bada Server This enables applications to manage data that is stored on remote servers, such as geographic

information and user presence information Access to the server-assisted features is possible through APIs on the Framework layer ”

“This layer contains the open API framework of bada It consists of the application framework,

as well as interfaces and classes that provide access to the functionality on the underlying layers The application framework provides features for application life-cycle management, event handling and application controls The interfaces provided by the open API framework include several basic interfaces that are needed by all applications for handling data types, utilities, basic device features and application state and for creating the graphical user interface The API framework also contains interfaces related to UI, multimedia, communication, internationalization, location, security, commerce and Web browsing, as well as interfaces that provide access to the services provided by the underlying service layer.”

2.1.3 Bada application framework

2.1.3.1 Chu kỳ sống của ứng dụng

Hình dưới đây mô tả chu kỳ sống của 1 ứng dụng bada,bao gồm chuyển đổi trạng thái của ứng dụng từ background sang foreground và ngược lại

Trang 10

Hình 5 Application Life-cycle

2.1.3.2 Sự chuyển đổi trạng thái của ứng dụng

Các ứng dụng bada có 4 trạng thái tương ứng sau:

Intializing

Application framework cài đặt ứng dụng và tạo frame ứng dụng

Nếu phương thức OnAppInitializing() trả về giá trị flase

tr ng thái ng d ng chuy n sang ạng thái ứng dụng chuyển sang ứng dụng chuyển sang ụng chuyển sang ển sang Terminating và thoát

Nếu phương thức OnAppInitializing()tr v giá tr ả về giá trị ề giá trị ị true ng ứng dụng chuyển sang

d ng kh i t o c p phát tài nguyên c a mình nh UI controls và ụng chuyển sang ởi tạo cấp phát tài nguyên của mình như UI controls và ạng thái ứng dụng chuyển sang ấp phát tài nguyên của mình như UI controls và ủa mình như UI controls và ư UI controls và

tr ng thái.ạng thái ứng dụng chuyển sang

Running

Trang 11

Ứng dụng hủy các tài nguyên của riêng nó đã được cấp phát

Terminated

Appliction framework xóa ứng dụng khỏi bộ nhớ

Hình 6 Application State Transition

2.1.3.3 Launching Applications

Ứng dụng bada có thể chạy từ menu chính hoặc qua ứng dụng đang chạy

Hình 7 Launching Application

Trang 12

Khi chạy một ứng dụng từ menu chính, trình quản lý tiến trình nạp những thư viện cần thiết và file nhị phân thực thi ứng dụng vào bộ nhớ “entry point” (OspMain) tạo ra một thể hiển của ứng dụng và thực thi nó Trongpha khởi tạo ứng dụng (OnAppInitializing()), tài nguyên, các thành phần giao diện (UI component) sẽ được nạp vào bộ nhớ, thực thi cáctiến trình được yêu cầu.

2.1.4 Lập trình bada cơ bản

2.1.4.1 Hai pha khởi tạo

Tránh hiện tượng rò rỉ tài nguyên nhớ (memory leak) Các ứng dụng bada được phát triển bằng C++, trong C++ khi xảy ra lỗi cấp phát tài nguyên trong hàm tạo của đối tượn, đối tượng được tạo không hoàn chỉnh

(partially constructed) và hàm hủy của đối tượng không được gọi đến

Hình 8 Code cause resource leak

Để tránh rò rỉ tài nguyên nhớ, sử dụng phương pháp 2 pha khởi tạo : đưa quá trình cấp phát tài nguyên ra khỏi hàm tạo, đưa quá trình này vào 1 phương thức khác Như ví dụ dưới đây quá trình cấp phát bộ nhớ cho 2

đối tương SimpleClass được đưa vào phương thức Construct():

Trang 13

Hình 9 Hai pha khởi tạo

Các lớp trong bada application framework đều sử dụng 2 pha khởi tạo nếu lớp đó có khả năng phát sinh ngoại lệ trong quá trình thực thi hàm tạo của lớp đó

Để tránh overhead do C++ exceptions, Samsung bada sử dụng

kiểu dữ liệu result để bắt lỗi và các ngoại lệ xảy ra trong quá trình thực

thi ứng dụng (Exception handing)

2.1.4.2 Object Ownership Policy

Trang 14

Ownership nhấn mạnh trách nhiệm xóa bỏ bộ nhớ cấp phát động và tránh memory leak Khi cấp phát vùng nhớ cho 1 đối tượng qua toán tử

new, vùng nhớ đấy phải được giải phóng khi no đã được dùng xong bằng toán tử delete

There are 2 rules for obtaining ownership in bada:

The new operator takes ownership of the allocated memory space

Ownership can be transferred, but it cannot be shared

Hình 10 Ownership giứa hai đối tượng

Trong bada những phương thức có tên kết thúc bằng chữ “N”, đối tượng trả về của phương thức phải được delete sau khi dùng xong để tránh memory leak

Trang 15

2.1.4.3 Privileged API

Open API của bada được chia làm 3 mức privilege:

Non-privileged: mức chứa các API có thể được sử dụng mà không

cần khai báo privilege trong file manefist.xml

Normal: mức chưa các API mà muốn sử dụng cần khai báo

privilege cần thiết trong file manefist.xml

System: mức chứa các API chỉ được sử dụng bởi các developer với

vai trò là đối tác của SamSung

Trong quá trình phát triển ứng dụng, để sử dụng các API của bada có

privilege level Normal, cần khai báo privilege group được

yêu cầu trong file manefist.xml mặc định project được tạo hoặc lựa chọn các privilege group cần thiết cho các API sẽ sử dụng khi đăng ký

Trang 16

site thành công, tải file manefist được tạo về, và copy vào thư mục gốc của project.

Ví dụ ứng dụng chia sẻ thông tin giao thông cần sử dụng API của lớp Osp::Media::Camera c n khai báo privilege group ần khai báo privilege group CAMERA trong file manefist.xml nh sau:ư UI controls và

<Privilege>

<Name>CAMERA</Name>

</Privilege>

Tham kh o ả về giá trị Privilege level c a m i API trong bada API ủa mình như UI controls và ỗi API trong bada API

Reference (Ch n Help/Help Content/bada API Reference trên màn ọn Help/Help Content/bada API Reference trên màn hình chính c a bada IDE)ủa mình như UI controls và

Không gian thư viện lập trình (namespace) của bada được phân chia theo các tính năng : tính năng cơ bản, tính năng tương tác người dùng, tính năng hướng dịch vụ (service-oriented) Điều này giúp việc phát triển ứng dụng trở lên dễ dàng hơn, nhanh chóng tìm thấy các API và privilege group cần thiết cho ứng dụng

2.1.5.1 Tính năng cơ bản

Namespace cơ bản của bada

Hình 11 Các namespace cơ bản

Đây là các namespace cơ bản cần thiết cho tất cả các ứng dụng bada

2.1.5.2 Tính năng tương tác người dùng

Các namespace để phát triển tính năng tương tác với người dùng :

Trang 17

Hình 12 Các namespace thực hiện tính năng tương tác người dùng

Các tính năng tương tác ở đây là: dàn trải đồ họa lên màn hình,

handling media, Tạo UI controls, sử dụng UI extensions,

và quản lý web controls

Sử dụng bộ công cụ bada SDK được cung cấp trên bada develop site

Bada SDK là bộ phát triển phần mềm bao gồm bada platform, tài liệu liên quan và các ví dụ mẫu

Các thành phần trong bada SDK:

Mã nhị phân của platform (Platform binaries), bộ thư viện phát triển ứng dụng

Trang 18

Các file header.

Tool-chain bao gồm trình biên dịch, trình debug, và trình mô phỏng.Các ứng dụng ví dụ cho nhưng người làm quen vơi bada

IDE - Môi trương phát triển tích hợp (Integrated Development

Environtent) dựa trên công cụ phát triển C/C++ nổi tiến Eclipse CDT

2.3 Ứng dụng chia sẻ thông tin giao thông

2.3.1 Mô tả ứng dụng

Báo cáo này mô tả quá trình hoạt động , các thông số kĩ thuật, cấu trúc hệthống, phát triển phần mềm và việc triển khai hệ thống chia sẻ ảnh giao thôngthời gian thực trên điện thoại Bada Hệ thống này với mục đích cung cấp chongười dùng những thông tin cập nhật về tình hình giao thông trên các tuyếnđường hoặc 1 điểm cố định nào đó mà họ quan tâm Điểm sáng tạo này chính

là ở chỗ những người đi đường có thể có được các thông tin giao thông hayảnh giao thông từ cơ sở dữ liệu được xây dựng từ những người đi đường khácnhư họ chứ không chỉ là từ 1 trạm phát thanh nào đó (ví dụ như kênh VOVgiao thông) Nhờ có cơ sở dữ liệu trung tâm mà 1 số lượng lớn những người

Trang 19

sử dụng có thể gửi ảnh đến đó cùng lúc Điều này giúp cho những người điđường có thể lấy được những thông tin giao thông mà họ quan tâm dễ dànghơn nhiều so với việc họ có được thông tin từ bản tin giao thông của 1 số trạmphát thanh trung tâm.

Hình 14 Tổng quan cấu trúc hệ thống

Nhờ có bản đồ số ở server mà người dùng có thể tìm kiếm ảnh giao thông bằng cách click vào vị trí mà họ muốn xem thay vì phải nhập tên của vị trí đó.

Cấu trúc của hệ thống được trình bày trong hình 14 Trong hệ thống đó, người dùng sử dụng điện thoại Bada, chụp hình giao thông và gửi nó đến back-end server Nhờ có máy thu GPS nhúng trong điện thoại di động nên ảnh gửi đi sẽ được đính kèm thông tin về vị trí nơi mà nó được chụp Thêm vào đó, tốc độ di chuyển của người đi đường cũng sẽ được gửi kèm với ảnh về server Do đó, người xem có thể có them thông tin về các điểm tắc nghẽn giao thông trên tuyến đường mà mình quan tâm Tại server,

Trang 20

thể cung cấp giao diện web cho những ai sử dụng điện thoại di động hoặc lap top có thể truy cập và tìm kiếm ảnh giao thông

Hình 15 Thiết kế của cấu trúc hệ thống

2.3.2.1 Chụp ảnh và upload ảnh lên server

Sử dụng privilege group CAMERA và lớp Osp::Media::Camera để xây dựng chức năng chụp ảnh cho ứng dụng

Gọi phương thức result Osp::Media::Camera::Capture()đ ển sang

ch p nh.ụng chuyển sang ả về giá trị

Trang 21

Xử lý ảnh chụp và upload ảnh lên server trong hàm callback:

void

CameraForm::OnCameraCaptured ( Osp::Base::ByteBuffer &

capturedData, result r ) {

Xử lý ảnh chụp Upload ảnh lên server

Uploadimage

->Upload(imagePath,street,streetup,longitude,latitude,host); }

Để xử lý ảnh chụp dùng lớp Image trong namespace Osp::Media Đoạncode sau nén ảnh nếu ảnh chụp quá lớn:

if (IsFailed(r)) goto CATCH;

//Compress the Jpeg

r = _pImage->CompressJpeg (imagePath, destPath,limitSize );

} Upload ảnh lên server dùng giao thức HTTP phương thức POST S ử

d ng các l p và giao di n trong namespace ụng chuyển sang ớp và giao diện trong namespace ện trong namespace Osp::Net::Http Privilege group yêu c u ần khai báo privilege group HTTP và NET

void HttpUpload::Upload(Osp::Base::String

filePath,Osp::Base:: String street,Osp::Base:: String

streetup,Osp::Base:: String longitude,Osp::Base:: String

latitude,Osp::Base:: String hostname) {

Tạo phiên HTTP pHttpSession

//Tạo phiên giao dịch Http Transaction trong phiên HTTP pHttpTransaction = pHttpSession ->OpenTransactionN();

Lấy thể hiện cho quá trình request HTTP pHttpRequest

Ngày đăng: 21/07/2015, 14:26

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w