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

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

Đ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

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 1 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 Khoa: Điện tử - Viễn thông Hà Nội - 02/2010 2 MỤC LỤC o0o DANH MỤC HÌNH VẼ 3 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ếc smartphone 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ó ít API 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ạy trên smartphone (native application) do đó sẽ thân thiện hơn và đáp ứng được tối đa yêu cầ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ác nền tảng smartphone đang phổ biến nhất hiện nay là Symbian gần đây với Symbian^3, 4 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ới cá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ụng phong phú. 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ều hà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 5 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 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 6 Lớp Device chứa chức năng chính (core functions) của platform Lớp cung cấ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) … Service Cung cấp các chức năng đặc trưng như SNS, bản đồ, thương mại. Để cung cấ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. ” Framework Lớp Framework chứa “open API framework” của bada, cung cấp API viết bằng C++ cho các nhà phát triển ứng dụng . Lớp bao gồm application framework như các lớp và các giao diện cho phép truy cập tới chức năng của lớp dưới. “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. 7 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  Terminating  Nếu phương thức OnAppInitializing()true   !"#$ % Running 8 Terminating Ứ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 9 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ó. Trong pha 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ác tiế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(): 10 [...]... viện phát triển ứng dụng 15 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. .. 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ông thời gian thực trên điện thoại Bada Hệ thống này với mục đích cung cấp cho ngườ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ở... 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ý ứng dựng trên bada developer site Sau khi đăng ký ứng dụng trên bada 13 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 CAMERA trong file manefist.xml... Osp::Locations::Coordinates& coordinates){ Thực thi chức năng cho việc tương tác với bản đồ } 2.3.2.4 Quản lý File và tệp tin Sử dụng namespace Osp::Io để thao tác với file và thư mục trên thiết bị Qua các lớp và giao di n trong namespace này xây dựng chức năng quản lý ảnh thông tin giao thông mà người dùng download về hoặc lưu lại sau khi chụp Để quản lý thư mục ảnh dùng lớp DirEnumerator, Directory, DirEntry... QuanLyAnh::ChDir(const Osp::Base::String & base_dir) { Khai báo các biến DirEnumerator* dircontent = NULL; Tạo mảng lưu đường dẫn các file if(baseDir_){delete baseDir_;} baseDir_ = new Directory(); r = baseDir_->Construct(base_dir); Kiểm giá trị r basePath_ = base_dir; dircontent=baseDir_->ReadN(); Kiểm tra lênh ReadN() thành công hay không dircontent->MoveNext(); // Skip the same directory "." while(dircontent->MoveNext()... 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, ảnh được lưu trữ và ghi chú theo vị trí mà nó được chụp Server cũng có 17 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 Xây dựng các tính năng ứng dụng 2.3.2.1 Chụp ảnh... như họ chứ không chỉ là từ 1 trạm phát thanh nào đó (ví dụ như kênh VOV giao thông) Nhờ có cơ sở dữ liệu trung tâm mà 1 số lượng lớn những người 16 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àng hơ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ạm phát thanh trung tâm Hình 14 Tổng... OnActionPerformed(const Osp::Ui::Control& source, int actionId); của giao di n Osp::Ui::IActionEventListener Sử dụng giao di n: Osp::Locations::Controls::IMapEventListener Để xây dựng khả năng tương tác giưa người dùng với bản đồ Ngưoif dung có thể thao tác trực tiếp trên bản đồ, xem ảnh thông tin giao thông bằng cách chạm tay vào một vị trí mà họ muốn trên bản đồ 23 Chức năng tương tác này được thưc hiện trong... 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... ả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 . 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 Khoa: Điện tử - Viễn thông Hà Nội - 02/2010 2 MỤC LỤC o0o DANH MỤC HÌNH VẼ 3 1. MỞ ĐẦU: Hiện nay. 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 1 BÁO CÁO THỰC TẬP TỐT NGHIỆP Phát triển ứng dụng. DANH MỤC HÌNH VẼ 3 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ếc smartphone hay feature phones không còn xa lạ với người sử dụng. Do vậy nhu cầu

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

Từ khóa liên quan

Mục lục

  • DANH MỤC HÌNH VẼ

  • 1. MỞ ĐẦU:

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

  • 2.1. Bada platform

  • 2.1.1. Định nghĩa

  • 2.1.2. Kiến trúc

  • 2.1.3. Bada application framework

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

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

  • 2.1.3.3. Launching Applications

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

  • 2.1.4.1. Hai pha khởi tạo

  • 2.1.4.2. Object Ownership Policy

  • 2.1.4.3. Privileged API

Tài liệu cùng người dùng

Tài liệu liên quan