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

xây dựng ứng dụng camera và hình ảnh trên android

30 1K 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 30
Dung lượng 1,11 MB

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

Nội dung

Trong đó phải kể tới ứng dụng chụp ảnh và tạo hiệu đẹp rất được ưa chuộnghiện nay đó là ứng dụng Camera 360 trên nền tảng hệ điều hành Android, cho phépngười ta chụp và chỉnh sửa những h

Trang 1

CHƯƠNG I : LÝ DO CHỌN ĐỀ TÀI.

Ngày nay, khi công nghệ ngày một phát triển, nhu cầu của người dùng vềcông nghệ cũng ngày một nhiều Sự ra đời của nhiều ứng dụng đã dần đáp ứng đượcnhững nhu cầu đó, ứng dụng cho điện thoại là một trong số đó Những ứng dụng đógần như đáp ứng ngay tức thì nhu cầu người dùng, ứng dụng về văn bản, nghe nhạc,chụp ảnh… đang trở thành một trong những ứng dụng quan trọng nhất trênsmarkphone Bên cạnh việc các nhà sản xuất đầu tư nhiều vào công nghệ camera,các ứng dụng chụp ảnh cũng cho phép người có được những bức hình đẹp và độcdáo Trong đó phải kể tới ứng dụng chụp ảnh và tạo hiệu đẹp rất được ưa chuộnghiện nay đó là ứng dụng Camera 360 trên nền tảng hệ điều hành Android, cho phépngười ta chụp và chỉnh sửa những hiệu ứng cho bức ảnh để tạo nên một tấm hìnhđẹp Cũng từ ứng dụng này, nhóm em nảy lên ý tưởng là sẽ xây dựng một ứng dụng

về Camera và hình ảnh cho điện thoại trên hệ điều hành Android Tất nhiên, nhóm

sẽ bước vào tìm hiểu và cố gắng tạo nên được ứng dụng Camera ở mức cơ bản vàđơn giản, rồi sau này phát triển dần lên Đề tài “ Xây dựng ứng dụng Camera vàhình ảnh trên Android” sẽ là một đề tài thú vị và có tính tương thích tốt

Trang 2

CHƯƠNG II :TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID.

II.1 Giới thiệu về hệ điều hành Android

Android là hệ điều hành được phát triển dành cho máy điện thoại di động,được xây dựng trên nền tảng của hệ điều hành Linux.Ta cũng biết Linux là một hệđiều hành mã nguồn mở cho phép người tùy ý quản lý và tạo nên những ứng dụngtrên nó Android là hệ điều hành mở mã nguồn chính duy nhất với 12 triệu dòng mãbao gồm 3 triệu dòng mã XML, 2.8 triệu dòng mã C, 2.1 triệu dòng Java và1.75triệu dòng C++

Ban đầu nền tảng này được phát triển bởi Android Inc (sau đó được Googlemua lại) và gần đây nó trở thành một trong những phần mềm đứng đầu của liênminh OHA (Open Handset Alliance - với khoảng 78 thành viên bao gồm cả nhà sảnxuất, nhà phát triển ứng dụng cho thiết bị di dộng mà dẫn đầu là Google)

Android được phát triển nhằm cạnh tranh với các hệ điều hành di động khácnhư IOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia),Samsung (Bada), WebOS (Palm) Tính đến thời điểm này, Android đã trở thànhnền tảng di động tăng trưởng nhanh nhất thế giới

Lúc đầu Android đơn thuần chỉ là một phần mềm trên điện thoại di động, saukhi được mua lại bởi Google nhóm kĩ sư do Rubin đứng đầu đã phát triển nó dựatrên hạt nhân Linux và giới thiệu cho các nhà sản xuất thiết bị cầm tay về một hệthống mềm dẻo có khả năng nâng cấp mở rộng cao

Cho tới nay, đã có rất nhiều phiên bản Android ra đời, đa số tập trung vàoviệc vá lỗi và cập nhật tính năng mới Hiên tại Android có một số Cupcake, Donut,Esclair, Froyo, Gingerbread, Honeycomd, Ice-cream sandwich Android còn hỗ trợmột kho ứng dụng Android Market, với hơn 294.730 ứng dụng tính tới tháng5/2011

Trang 3

II.2 Kiến trúc hệ điều hành Android.

Kiến trúc hệ điều hành Android được chia làm 4 phần như hình dưới:

Hình 1: Cấu trúc hệ điều hành Android

II.2.1 Linux kernel

Ở dưới cùng của các tầng trên là Linux - Linux 2.6 với khoảng 115 bản válỗi Tầng này cung cấp chức năng hệ thống cơ bản như quản lý các tiến trình, quản

lý bộ nhớ, quản lý thiết bị như máy ảnh, bàn phím, màn hình hiển thị, v.v Ngoài ra,nhân Linux xử lý tất cả các vấn đề về Mạng và một loạt các trình điều khiển thiết bịgiao tiếp với phần cứng ngoại vi

Cụ thể như sau:

Display Driver: Điều khiển hiện thị lên màn hình cũng như thu nhận những

điều khiển của người dùng lên màn hình

Camera Driver: Điều khiển hoạt động của camera, nhận các tín hiệu mà

camera trả về

Bluetooth Driver: Điều khiển thiết bị thu và phát sóng Bluetooth.

Trang 4

USB Driver: Quản lý hoạt động cổng giao tiếp USB.

Keypad Driver: Điều khiển bàn phím.

Wifi Driver: Điều khiển quá trình thu và phát sóng wifi.

Binder (IPC) Driver: Quản lý việc kết nối và liên lạc với các mạng vô tuyến

như CDMA,GSM, 3G…đảm bảo những chức năng truyển thông được thực hiện

Power Management: Giám sát việc tiêu thụ năng lượng.

II.2.2 Libraries

Tầng này là một tập hợp các thư viện bao gồm trình duyệt web mã nguồn mở

sử dụng WebKit engine, thư viện libc, cơ sở dữ liệu SQLite là một kho lưu trữ hữuích cho việc lưu trữ và chia sẻ dữ liệu của ứng dụng, có các thư viện để chơi/ghi lại

âm thanh và video, các thư viện SSL chịu trách nhiệm về bảo mật Internet, v.v

II.2.3 Android Runtime

Đây là phần thứ ba của kiến trúc Android Phần này cung cấp một thànhphần quan trọng được gọi là Dalvik Virtual Machine - một loại máy ảo Java đượcthiết kế đặc biệt và tối ưu hóa cho Android

Dalvik VM sử dụng các tính năng cốt lõi của Linux như quản lý bộ nhớ và

đa luồng, những tính năng này đều có trong ngôn ngữ Java Dalvik VM cho phéptất cả các ứng dụng Android chạy trong tiến trình riêng của nó

Android Runtime cũng cung cấp một tập các thư viện lõi cho phép các nhàphát triển ứng dụng Android viết các ứng dụng Android sử dụng ngôn ngữ lập trìnhJava (J2SE)

II.2.4 Application Framework

Tầng Application Framework cung cấp nhiều dịch vụ cấp cao hơn cho cácứng dụng trong ở dạng các class trong Java Các nhà phát triển ứng dụng được phép

sử dụng các dịch vụ này trong các ứng dụng của họ (Ví dụ: dịch vụ kết nối Internet,dịch vụ SMS, )

Các thành phần trong tầng này như:

Activity Manager: Quản lý chu trình song của một ứng dụng cũng như công

cụ điều khiển các Activity

Windows Manager: Quản lý việc xây dựng và hiển thị giao diện người dùng

cũng như tổ chức quản lý các giao diện giữa các ứng dụng

Trang 5

Telephone Manager: Cung cấp công cụ để thực hiện liên lạc như gọi điện thoại XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực.

Location Manager: Cho phép định vị vị trí của điện thoại thông qua hệ

thống định vị toàn cầu GPS và GoogleMaps

Notifications Manager: Quản lý việc hiển thị thông báo (như thông báo tin

nhắn, email…)

Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm

hình ảnh, âm thanh, layout, string

View System: Tập hợp nhiều các View có thể kế thừa lẫn nhau dùng để thiết

kế giao diện ứng dụng như GridView, TableView…

Content Providers: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các

ứng dụng khác hoặc chia sẻ dữ liệu giữa các ứng dụng đó

Package Manager:

II.2.5 Applications

Bạn sẽ viết ứng dụng và các ứng dụng mà bạn viết được cài đặt ở tầng này

Ví dụ: Angry Bird, Facebook, Viber, v.v

Đây là tầng ứng dụng giao tiếp với người dùng như:

Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành được gọi làPhone, contacts, Browser, SMS, Calender, Email-client, Map…v v các chươngnày có đặc điểm là:

Được viết bằng ngôn ngữ Java có phần mở rộng là apk

Khi các chương trình này chạy một máy ảo Virtual Machine sẽ được dựnglên để phục vụ nó Nó có thể là một Active Program- chương trình có giao diện vớingười dùng hoặc là một Background- chương trình chạy trên nền hay dịch vụ

Android là một hệ điều hành đa nhiệm, điều này có nghĩa là trong cùng mộtthời điểm có thể có nhiều chương trình được chạy, tuy nhiên mỗi chương trình chỉ

có một thực thể riêng được chạy (instance) Điều này giúp hạn chế tài nguyên vàgiúp máy chạy tốt hơn

Hơn nữa Android là một hệ điều hành mở, đồng nghĩa nó cho phép ứng dụngcủa bên thứ 3 được phép chạy nền Các ứng dụng đó có một hạn chế đó là nó không

Trang 6

được phép sử dụng quá 5-10% công suất CPU, điều này để nhằm tránh tính độcquyền về CPU

II.2.6 Quản lý bộ nhớ.

Vì các thiết bị Android chủ yếu chạy bằng pin, nên Android được thiết kế đểquản lý bộ nhớ (RAM) để giảm tối đa tiêu thụ điện năng, trái với hệ điều hành máytính để bàn luôn cho rằng máy tính sẽ có nguồn điện không giới hạn Khi một ứngdụng Android không còn được sử dụng, hệ thống sẽ tự động ngưng nó trong bộ nhớ

- trong khi ứng dụng về mặt kỹ thuật vẫn "mở", những ứng dụng này sẽ không tiêuthụ bất cứ tài nguyên nào (như năng lượng pin hay năng lượng xử lý) và nằm đócho đến khi nó được cần đến Cách làm như vậy có lợi kép là vừa làm tăng khảnăng phản hồi nói chung của thiết bị Android, vì ứng dụng không nhất phải đóng rồi

mở lại từ đầu, vừa đảm bảo các ứng dụng nền không làm tiêu hao năng lượng mộtcách không cần thiết

Android quản lý các ứng dụng trong bộ nhớ một cách tự động: khi bộ nhớthấp, hệ thống sẽ bắt đầu diệt ứng dụng và tiến trình không hoạt động được một thờigian, sắp theo thời điểm cuối mà chúng được sử dụng (tức là cũ nhất sẽ bị tắt trước).Tiến trình này được thiết kế ẩn đi với người dùng, để người dùng không cần phảiquản lý bộ nhớ hoặc tự tay tắt các ứng dụng.Tuy nhiên, sự che giấu này của hệthống quản lý bộ nhớ Android đã dẫn đến sự thịnh hành của các ứng dụng tắtchương trình của bên thứ ba trên cửa hàng Google Play; những ứng dụng kiểu nhưvậy được cho là có hại nhiều hơn có lợi

Trang 7

II.3 So sánh hệ điều hành Android với các hệ điều hành khác.

Về cơ bản thì chúng đều là những hệ điều hành dành cho các thiết bị cầmtay, nhỏ gọn Khả năng hoạt động liên tục để đảm bảo liên lạc, đảm bảo kết nốimạng… và điểm yếu của chúng là năng lượng ít Điểm khác biệt của hệ điều hànhAndroid là nó được phát triển trên nhân của Linux, là một hệ điều hành mã nguồn

mở và miễn phí trong khi các hệ điều hành khác đều là nguồn đóng và tốn phí Việcphát triển trên nhân Linux giúp Android dễ dàng chạy trên các hệ máy khác nhau,tính tương thích với phần cứng cao hơn

Các trình ứng dụng trên Android được viết bằng Java Ta có thể lấy đơn cử 3

hệ điều hành cho điện thoại di động hiện nay là Android, IOS, Window phone đểthấy rõ sự khác biệt hơn Xét về tổng số thiết bị thì Android luôn đứng đầu danhsách với hàng trăm thiết bị có sử dụng hệ điều hành này, lý do đó là nó được phânphối tự do, với kho ứng dụng Adroid Market với hơn 380.000 ứng dụng trong khiIOS chứa tới hơn 500.000 ứng dụng và ít ứng dụng rác hơn Android Market Vềứng dựng tối ưu hóa cho máy tính bảng thì Android vẫn thua so với IOS, nhưng cácứng dụng smarkphone Adroid chạy trên taplet Android đem lại hình ảnh tốt hơn cácứng dụng iPhone chạy trên iPad của IOS Do Adroid được xây dựng trên nên nhâncủa Linux, nên nó dễ dàng cho phép các ứng dụng chưa phê duyệt của bên thứ 3,trong khi Apple va Microsoft đều áp dụng chiến lược “waller garden” theo đó cácứng phải trải qua quá trình phê duyệt trước khi hoạt động trên các thiết bị chạy bằngIOS hay Windows phone Để tải các ứng dụng chưa được phê duyệt, người dùngphải tiến hành Jailbreak, một vài ứng dụng trên Android cũng phải “root ” thiết bịtrước khi cài đặt Xét về tính điều hướng thì Android có lợi thế lớn nhất với GoogleMaps Navigation, tích hợp Voice Command hoàn toàn miễn phí Android được pháttriển bởi Google nên dịch vụ tìm kiếm của nó gắn liền với Google Search, ngoài raAndroid còn là nền tảng duy nhất cho phép tùy chỉnh bàn phím ảo trên màn hình.Ngoài bàn phím mặc định người dùng có thể lựa chọn cài đặt các loại bàn phímkhác như Swype, Slide it, Swift key, hoặc 8open Hơn nữa, khi kết nối với máytính, Android sẽ kết nối như một ổ đĩa USB Flash và cho phép bạn xem tất cả cácfile tập tin của mình Xét cho cùng thì Android vẫn là hệ điều hành mang lại nhiềulợi thế cho người dùng hơn

Trang 8

II.4 Thư viện mã nguồn mở về camera và hình ảnh.

II.4.1 SQLite

Một cơ sở dữ liệu nhỏ gọn, được sử dụng bởi rất nhiều các công ty lớn như:Adobe, Google, Microsoft, Mozzila, Sun…thường cho các ứng dụng về phía Client(khách hàng) Thư viện SQLite được tích hợp vào Android nhằm phục vụ cho việc

lưu trữ các ứng dụng ở gói android.database.sqlite Package android.database.sqlite

bao gồm các lớp cơ sở dữ liệu quản lý ứng dụng sử dụng cơ sở dữ liệu riêng Nhữngứng dụng sử dụng cơ sở dữ liệu riêng

II.4.2 ImageJ.

ImageJ là một chương trình xử lý hình ảnh Java phạm vi công cộng lấy cảmhứng từ hình ảnh NIH cho máy Macintosh Nó có thể hiển thị, chỉnh sửa, phân tích,

xử lý, lưu và in 8-bit, 16-bit và 32-bit hình ảnh

Một số tính năng cơ bản của ImageJ được liệt kê dưới đây:

Sr.No Features & Description

ImageJ and its Java source code are freely available and in the public

domain No license is required

Trang 9

It offers more then 35 types of segmentation.

3 Useful keyboard short cuts

Fuji has a lot of keyboard short cuts

Trang 10

actually implemented, yet you do not know how to trigger.

II.4.4 Common Imaging.

Apache hình ảnh, trước đây được biết đến như Apache Sanselan, là một thưviện mà đọc và viết một loạt các định dạng hình ảnh, bao gồm cả phân tích nhanhchóng của thông tin hình ảnh (kích thước, màu sắc không gian, hồ sơ ICC, vv) và

dữ liệu meta

Một số tính năng cơ bản của ImageJ được liệt kê dưới đây:

r.No Features & Description

It reads and writes a wide variety of image formats, and supports some

variations and encodings missed by all or most other libraries

Trang 11

The ColorConversions class offers methods to convert between the

following color spaces: CIE-L*CH, CIE-L*ab, CIE-L*uv, CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ and Yxy

II.4.5 Image Magick.

ImageMagick là một bộ phần mềm để tạo, chỉnh sửa, soạn thư, hoặc chuyểnđổi hình ảnh bitmap Nó có thể đọc và ghi hình ảnh trong một loạt các định dạng(hơn 100), bao gồm DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript ,SVG, và TIFF Sử dụng ImageMagick để thay đổi kích cỡ, lật, gương, xoay, làmméo mó, biến dạng và chuyển đổi hình ảnh, điều chỉnh màu sắc hình ảnh, áp dụnghiệu ứng đặc biệt khác nhau, hoặc vẽ văn bản, đường, đa giác, hình elip và đườngcong Bezier

Một số tính năng cơ bản của ImageMagick được liệt kê dưới đây:

Sr.No Features & Description

Trang 12

Extract features, describe shapes and recognize patterns in images.

10 Encipher or decipher an image

Convert ordinary images into unintelligible gibberish and back again

II.4.6 Endrov.

Endrov là một chương trình phân tích hình ảnh đa năng Nó được viết mộtcách độc lập và được thiết kế để giải quyết nhiều những thiếu sót của phần mềmmiễn phí và nhiều phần mềm thương mại

Một số tính năng cơ bản của Endrov được liệt kê dưới đây:

Sr.No Features & Description

1

View data

View data, in 2D and 3D Designed to handle complex 4D data schemes and unlimited number of channels, where each channel can have its own X,Y and Z resolution

2

Annotate your images

Annotate your images, automatically or by hand, to understand them andget statistics

3 Undo and Redo

Undo and Redo for all operations

4

Lazy Evaluation

Designed from the ground up to handle large image sets Endrov uses

lazy evaluation, a concept mostly available in research programming

Written in Java Plug-in architecture allows easy extension with new

Java plug-ins Can interact with Matlab

Access almost all commercial and open file formats using Bio-formats

8 Microscopic Processing

Trang 13

Control all your microscopes with one program Do on-the-fly image

analysis

II.4.7 LEADTOOLS.

LeadTools cung cấp hơn 200 chức năng xử lý hình ảnh trong một số loại tàiliệu bao gồm dọn dẹp, nâng cao hình ảnh y tế, chuyển đổi màu sắc và chỉnh, giảmtiếng ồn, phát hiện cạnh và nhiều hơn nữa

Một số tính năng cơ bản của LeadTools được liệt kê dưới đây:

Sr.No Features & Description

1

Scanned Document Image Processing

This powerful collection of functions can rid scanned documents of

artefacts and imperfections such as hole punches, skewed angles,

borders, dust speckles and more

2

Medical Image Processing

Enhance the image or highlight the details by shifting, selecting,

subtracting and removing the background for better visuals

Brightness and Contrast

These functions can be used to enhance images, apply artistic effects or aid in diagnostic evaluation of medical images

5

Colour Space Conversion

Add image colour space functionality to single and multi-threaded

applications including IIS and Windows WF hosted applications

6

Colour Correction

These functions can be used to correct images with swapped colour

channels, balance colour intensities or perform various image analysis

tasks

7 Image Enhancement

These functions can be used to correct common errors in photography

Trang 14

such as red-eye and imbalanced colours as well as aid in diagnostic

evaluation of medical images

8

Region of Interest

These functions can be used to create and modify regions of interest in

images to perform image processing functions on specific portions of animage, save time in bar-code and OCR recognition or perform various

image analysis tasks

II.4.8 OpenCV.

OpenCV được phát hành theo giấy phép BSD và do đó miễn phí của nó cho

cả hai sử dụng học thuật và thương mại Nó có C ++, C, Python và Java giao diện

và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tínhtoán hiệu quả và với một tập trung mạnh vào các ứng dụng thời gian thực viết trongtối ưu hóa C / C ++, thư viện có thể tận dụng xử lý đa lõi

Một số tính năng cơ bản của OpenCV được liệt kê dưới đây:

Sr.No Features & Description

1 Smoothing Images

This involve applying Blur,GaussianBlur,medianBlur and bilateral Filter

2 Eroding and Dilating

Apply two very common morphology operators: Dilation and Erosion

4 Basic Thresholding Operations

Perform basic thresholding operations using OpenCV function threshold.5

Adding borders to your images

OpenCV function copyMakeBorder is used to set the borders (extra padding

to your image)

Trang 15

II.5 Các lớp giao diện XML trong Android.

Một trong những ưu điểm lớn nhât của Android đó là nó thúc đẩy cho ngônngữ Java Android SDK hỗ trợ rất tốt cho JRE, hơn nữa Java đang và đã được hỗ trợ

để làm việc với XML theo nhiều cách khác nhau, hầu hết các API liên quan tớiXML của Java đều được hỗ trợ đầy đủ trên Android Ví dụ: Simple API của Javacho XML(SAX), và Document Object Model hiện đều có sẵn trên Android Nhiềunăm qua cả hai API này đều là công nghệ của Java Sản phẩm Streaming API mớiđây cho XML hiện chưa có trong Android, tuy nhiên Android lại cung cấp một thưviện tương đương về mặt chức năng Ta sẽ đi tìm hiều hơn trong phần này

II.5.1 RSS

RSS là một định dạng tập tin trong XML dùng trong việc chia sẻ tin tức webđược dùng bởi nhiều Website và Weblog Gồm các chuẩn sau:

Rich site summary (RSS 0.91)

RDF Site Summary (RSS 0.91 & 1.0)

Really Simple Syndication (RSS 2.0)

Ứng dụng Android sẽ lấy điểm tin RSS từ trang chủ của nhà phát triểnAndroid phổ biến Androidster và phân tách nó thành một danh sách các đối tượngJava đơn giản mà bạn có thể sử dụng để quay lại Android ListView

II.5.2 SAX

Trong môi trường Java, bạn có thể thường xuyên sử dụng SAX API khimuốn có một trình phân tích nhanh và hạn chế tối đa việc sử dụng bộ nhớ của bạn.Điều này rất có lợi cho các thiết bị chạy bằng Android, bạn có thể sử dụng SAX như

là môi trường Java mà không cần tới những thay đổi đặc biệt cần thiết để chạy trênAndroid

Ngày đăng: 21/12/2014, 12:36

HÌNH ẢNH LIÊN QUAN

Hình 2: Biểu đồ use case - xây dựng ứng dụng camera và hình ảnh trên android
Hình 2 Biểu đồ use case (Trang 18)
Hình 3: Biểu đồ trạng thái Xét về tính khả dụng thì hoàn toàn khả dụng, sẽ tốt hơn nên nếu phát triển thêm. - xây dựng ứng dụng camera và hình ảnh trên android
Hình 3 Biểu đồ trạng thái Xét về tính khả dụng thì hoàn toàn khả dụng, sẽ tốt hơn nên nếu phát triển thêm (Trang 19)
Hình 5: Biểu đồ thành phần - xây dựng ứng dụng camera và hình ảnh trên android
Hình 5 Biểu đồ thành phần (Trang 21)
Hình 6: Tạo Project - xây dựng ứng dụng camera và hình ảnh trên android
Hình 6 Tạo Project (Trang 22)
Hình 8: Giao diện activity_photo_xml - xây dựng ứng dụng camera và hình ảnh trên android
Hình 8 Giao diện activity_photo_xml (Trang 23)
Hình 9: Máy ảo AMA1 - xây dựng ứng dụng camera và hình ảnh trên android
Hình 9 Máy ảo AMA1 (Trang 24)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w