1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android

87 349 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 87
Dung lượng 1,95 MB

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

Nội dung

Hầu như tất cả những smartphone sử dụng hệ điều hành Android đều rất dễ sử dụng, đơn giản trong tùy biến theo sở thích cá nhân, cũng như có rất nhiều ứng dụng để thỏa mãn nhu cầu của từn

Trang 1

 LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến thầy giáo TS Nguyễn Văn Núi – bộ môn công nghệ phần mềm đã định hướng và tận tình giúp đỡ, động viên

em trong quá trình thực hiện đồ án Thầy luôn luôn theo sát chỉ bảo và định hướng

để em hoàn thành đề tài một cách tốt nhất Em xin chân thành cảm ơn thầy!

Em xin cảm ơn những người bạn và gia đình đã động viên, giúp đỡ để em phấn đấu vượt qua khó khăn trong quá trình học tập và rèn luyện tại Trường Đại học Công nghệ Thông tin và Truyền thông

Đồ án tốt nghiệp là cơ hội để em có thể áp dụng, tổng kết lại những kiến thức mà mình được học Đồng thời, em rút ra được những kinh nghiệm thực tế và quý giá trong suốt quá trình thực hiện đồ án Sau một thời gian khá dài, em tập trung công sức cho đồ án và làm việc tích cực, đặc biệt nhờ sự chỉ đạo và hướng dẫn tận tình của thầy Nguyễn Văn Núi cùng với các thầy cô trong trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên, đã giúp em hoàn thành đồ án một cách thuận lợi và gặt hái được những kết quả như mong muốn

Cuối cùng, em xin cảm ơn tất cả thầy cô giáo Trường Đại học Công nghệ Thông tin và Truyền thông đã dạy dỗ, chỉ bảo những kiến thức, tri thức khoa học

và những bài học kinh nghiệm trong suốt quá trình học tập, rèn luyện tại trường, đề

em chuẩn bị thật tốt kiến thức và hành trang trong cuộc sống

Kính chúc quý thầy cô mạnh khỏe, tiếp tục đạt được nhiều thắng lợi trong nghiên cứu khoa học và sự nghiệp trồng người

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan toàn bộ nội dung trong đồ án này là do tự em đọc và nghiên cứu các tài liệu, khảo sát các phần mềm hiện nay Từ đó viết ra cơ sở lý

thuyết và xây dựng chương trình “Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android”.

Mọi nguồn tham khảo, trích dẫn trong đồ án đều được ghi rõ nguồn gốc

Người cam đoan

Hoàng Văn Lục

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC HÌNH 6

MỞ ĐẦU 8

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 9

1.1 Tổng quan về hệ điều hành android 9

1.1.1 Lịch sử Android 10

1.1.2 Các phiên bản HĐH Android 11

1.1.3 Đặc điểm 14

1.1.4 Kiến trúc tổng quát của hệ điều hành Android 16

1.1.5 Chu kỳ ứng dụng android 20

1.2 Các thành phần giao diện trong android 21

1.2.1 View 21

1.2.2 ViewGroup 21

1.2.3 LinearLayout 22

1.2.4 FrameLayout 22

1.2.5 AbsoluteLayout 22

1.2.6 RetaliveLayout 22

1.2.7 TableLayout 23

1.2.8 ImageView 23

Trang 4

1.3 Activity & Intend 28

1.3.1 Activity 28

1.3.2 Intent 28

1.4 Bitmap trong Android 30

1.5 Màu sắc trong Android 31

1.6 Thao tác với điểm ảnh trong bitmap 32

1.7 Một số thuật toán xử lý ảnh trong android 33

1.7.1 Convolution matrix 33

1.7.2 Neon 35

1.7.3 Emboss 36

1.7.4 TV Screen 36

1.7.5 Sketch 37

1.7.6 Invert 37

1.7.7 Smoothing 37

1.7.8 Gaussian blue 37

1.7.9 Grayscale 38

1.7.10 Sharpen 38

1.7.11 Color lighten 39

CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 40

2.1 Khảo sát thực tế 40

2.2 Đặc tả bài toán 41

2.3 Đặc tả chức năng 42

2.3.1 Chức năng load ảnh 42

2.3.2 Chức năng xử lý ảnh 42

2.3.3 Chức năng ghép danh ngôn hay, câu nói ý nghĩa vào ảnh 43

2.3.4 Xem ảnh nghệ thuật kết hợp danh ngôn hay, câu nói ý nghĩa từ server 44 2.4 Luồng sự kiện 44

2.4.1 Luồng sự kiện cho chức năng load ảnh 44

Trang 5

2.4.2 Luồng sự kiện chức năng edit 45

2.4.3 Luồng sự kiện chức năng styles 45

2.4.4 Luồng sự kiện chức năng text 45

2.4.5 Luồng sự kiện chức năng stickers 46

2.4.6 Luồng sự kiện cho các chức năng share, save, wallpaper 46

2.5 Các biểu đồ hệ thống 47

2.5.1 Biểu đồ use case 47

2.5.2 Biểu đồ trình tự 52

2.5.3 Biểu đồ hoạt động 53

2.5.4 Biểu đồ class 54

CHƯƠNG 3: DEMO ỨNG DỤNG 57

3.1 Một vài hình ảnh của ứng dụng 57

3.2 Danh sách các màn hình 61

KẾT LUẬN 63

TÀI LIỆU THAM KHẢO 64

Trang 6

DANH MỤC HÌNH

Hình 1.1: Hệ điều hành Android 9

Hình 1.2: Logo các phiên bản hệ điều hành Android 11

Hình 1.3: Biểu tượng Robot Android 13

Hình 1.4: Kiến trúc tổng quát 16

Hình 1.5: Tầng ứng dụng 16

Hình 1.6: Application Framework 17

Hình 1.7: Libraries 17

Hình 1.8: Android Runtime 18

Hình 1.9: Linux kernel 19

Hình 1.10: Chu kỳ sống thành phần 20

Hình 1.11: Chu kỳ sống của Activity 20

Hình 1.12: Bố trí các widget sử dụng LinearLayout 22

Hình 1.13: Bố trí widget trong RetaliveLayout 23

Hình 1.14: Bố trí widget trong TableLayout 23

Hình 1.15: ImageView và ImageButton 24

Hình 1.16: Minh hoạ option menu 27

Hình 1.17: Truyền dữ liệu giữa 2 Activity 29

Hình 1.18: Các thuộc tính của Intend 29

Hình 1.19: Các Action đã được định nghĩa sẵn trong Intend 30

Hình 1.20: Công thức xử lý ảnh ma trận nhân chập 33

Hình 1.21 Công thức ma trận nhân chập 35

Hình 1.22 Mô tả ảnh neon 35

Hình 1.23 Mô tả ảnh Emboss 36

Hình 2.1: biểu đồ use case tổng quát 47

Hình 2.2: Biểu đồ use case edit 48

Hình 2.3: Biểu đồ use case Styles 49

Trang 7

Hình 2.4: Biểu đồ uscase Stickers 50

Hình 2.5: Biểu đồ use case text 51

Hình 2.6: Biểu đồ trình tự chức năng load ảnh 52

Hình 2.7: Biểu đồ trình tự chức năng xử lý ảnh 52

Hình 2.8: Biểu đồ hoạt động cho chức năng load ảnh 53

Hình 2.9: Biểu đồ hoạt động cho chức năng xử lý ảnh 53

Hình 2.10: Biểu đồ class LoadImage 54

Hình 2.11: Biểu đồ class Xử lý ảnh 54

Hình 2.12: Biểu đồ class edit 55

Hình 2.13: Biểu đồ class Text 55

Hình 2.14 Biểu đồ class Sticker 56

Hình 2.15 Biểu đồ class Style 56

Hình 3.1 Màn hình chính của chương trình 57

Hình 3.2 Màn hình hiển thị status 57

Hình 3.3 Tạo hiệu làm mờ ảnh 58

Hình 3.4 Tạo hiệu ứng Sepia bằng blur 58

Hình 3.5 ghép câu nói ý nghĩa vào ảnh nghệ thuật 59

Hình 3.6 Tạo ảnh tâm trạng 59

Hình 3.7-8 xem ảnh nghệ thuật từ sever 60

Hình 3.9-10 Nhập văn bản và chọn màu chữ 60

Hình 3.11-12 Share và save ảnh 61

Trang 8

 MỞ ĐẦU

Ngày nay, hệ điều hành Android ra đời và trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay Những ưu điểm dễ thấy nhất của Android chính là khả năng tùy biến nhanh chóng,

dễ làm quen, ứng dụng hỗ trợ phong phú, tương thích với đa cấu hình phần cứng của các nhà sản xuất Dù đã hay chưa từng sử dụng smartphone Android thì ta cũng không cần quá lo lắng về việc thay đổi Hầu như tất cả những smartphone sử dụng hệ điều hành Android đều rất dễ sử dụng, đơn giản trong tùy biến theo sở thích cá nhân, cũng như có rất nhiều ứng dụng để thỏa mãn nhu cầu của từng người dùng Đồng thời Android có mã nguồn mở đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên được điều chỉnh và phân phối Android một cách tự do

Cùng với sự phát triển không ngừng của công nghệ thông tin, các siêu phẩm điện thoại thông minh ra đời, với nhiều chức năng thông minh Bên cạnh những chức năng quan trong của một chiếc smartphone, một chức năng cũng không thể thiếu đó là chiếc camera chụp ảnh, để lưu trữ lại những kỷ niệm đẹp, những khoảnh khắc ý nghĩa Những chiếc smartphone ngày càng được cải thiện cả về tính năng lẫn chất lượng phần cứng, camera trên điện thoại cũng ngày được nâng cấp để đáp ứng nhu cầu chụp ảnh, selfie với chất lượng hình ảnh cao Tuy nhiên, những chiếc camera mặc định của điện thoại thường chỉ cho ra những hình ảnh thô và không làm hài lòng người sử dụng, họ cần một ứng dụng có thể biến những bức ảnh kém nổi bật trở nên lung linh và sắc nét hơn

Bởi vậy trước nhu cầu và lợi thế đó, em quyết định nghiên cứu và xây dựng

ứng dụng: “Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android.”

Trang 10

mà người sử dụng cần đến

Trang 11

Được xây dựng trên một nền tảng mở, và một bộ thư viện đa năng, mạnh

mẽ với nguyên lý mở, Android đã nhanh chóng được cộng đồng lập trình viên di động hưởng ứng mạnh mẽ Nền tảng Android tích hợp nhiều tính năng nổi bật:

 Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với các phần cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết bị di động

 Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần riêng lẻ

 Máy ảo Dalvik được tối ưu cho các thiết bị di động, chạy các ứng dụng lập trình trên ngôn ngữ Java

 Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite, WebKit, OpenGL và trình quản lý đa phương tiện

 Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM, Bluetooth EDGE, 3G và Wifi

 Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc…

 Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi, tích hợp với Eclipse SDK

Trang 12

Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1 của hệ điều hành này.Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng 4 năm 2009, cùng với một số tính năng khác Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng,

và các live folder

 Các phiên bản HĐH Android

Android đã trải qua một số các cấp nhật kể từ lần đầu phát hành Những cập nhật này nhìn chung có nhiệm vụ vá các lỗ hổng và thêm các tính năng mới vào hệ điều hành

Hình 1.2: Logo các phiên bản hệ điều hành Android

Trang 13

Android những thế hệ đầu tiên 1.0 ( 9/2008) và 1.1 ( 2/2009) chưa có tên gọi chính thức Từ thế hệ tiếp theo, mỗi bản nâng cấp đều được đặt với những mã tên riêng dựa theo các món ăn hấp dẫn theo thứ tự bảng chữ cái từ “C-D-E-F-G-H-I” Hiện tại các phiên bản chính của Android bao gồm:

Android 1.5 (Cupcake): Ra mắt tháng 4/2009: Phiên bản này có một số

tính năng đáng chú ý như: khả năng ghi lại và xem video thông qua chế độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn phím ảo với khả năng đoán trước văn bản, tự động kết nối với một thiết bị Bluetooth trong một khoảng cách nhấtđịnh, các widget và thư mục mới có thể cài đặt linh động trên màn hình chủ

Android 1.6 (Donut): Ra mắt tháng 9/2009: Phiên bản này giúp nâng cao

trải nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy biến cho phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu

hỗ trợ màn hình độ phân giải WVGA

Android 2.0/2.1 (Eclair): Ra mắt tháng 10/2009: Phiên bản này có sự cải

thiện rõ rệt trong giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ chuẩn HTML5, Exchange ActiveSync 2.5, nâng cấp Google Maps 3.1.2, camera zoom kĩ thuật số tích hợp đèn flash, nâng cấp bàn phím ảo và kết nối Bluetooth 2.1

Android 2.2 (Froyo): Ra mắt tháng 5/2010: Phiên bản này chú trọng nâng

cấp tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1, thêm tính năng tạo điểm truy cập Wi-Fi Một tính năng đáng chú ý khác hỗ trợ

Trang 14

nâng cấp đáng kể giao diện người dùng, cải thiện bàn phím ảo, thêm tính năng copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video WebM và nâng cao tính năng copy–paste Cùng với phiên bản Gingerbread, Google cũng ra mắt điện thoại đầu tiên của hãng sử dụng nền tảng này là Google Nexus S.

Android 3.2 (Honeycomb): Ra mắt tháng 2/2011: Đây là phiên bản hệ điều

hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet,

từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail ) Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ nhiều màn hình home khác nhau, cho phép người d ng dễ dàng t y biến giao diện nếu muốn

Android 4.0 (Ice-cream sandwich): Ra mắt tháng 10/2011, là sự kết hợp

giữa Gingerbread và Honeycomb và sẽ chạy trên tất cả các thiết bị như điện thoại, máy tính bảng, máy tính xách tay…

Android 4.1 (Jelly Bean): Ra mắt 9-7-2012: Máy tính bảng Nexus 7, sản

phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả "ông lớn" Windows

Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và linh hoạt Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt web mặc định trong Android được thay thế bởi đại diện tên tuổi: Chrome, với khả năng đồng bộ dữ liệu theo tài khoản với bản Chrome trên máy tính

Trang 15

Hình 1.3: Biểu tượng Robot Android

Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành cho Android, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình, tìm kiếm thông tin, xác định vị trí Rất đa năng và được xem như lời đáp trả của Google với "phụ tá ảo" Apple Siri trong iOS

Android 4.2 (vẫn là Jelly Bean): Ra mắt tháng 11-2012: Chỉ sau gần năm

tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho Android với phiên bản 4.2 và vẫn mang tên mã Jelly Bean

Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng lướt chọn từ rất hay trong bàn phím ảo Chức năng "bom tấn" hỗ trợ nhiều tài khoản người dùng (multi-user profile) lần đầu tiên được áp dụng trong Android 4.2 nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này

Trang 16

chán” với 3 phiên bản khách nhau của Android Jelly Bean KitKat được coi là phiên bản Android “dễ tính” nhất từ trước đến nay khi nó được thiết kế cho tất cả các thiết bị có bộ nhớ RAM 512MB trở lên

di động hoàn hảo

 Tính ngang hàng của các ứng dụng

Với Android, không có sự khác nhau giữa các ứng dụng điện thoại cơ bản với ứng dụng của bên thứ ba Chúng được xây dựng để truy cập như nhau tới một loạt các ứng dụng và dịch vụ của điện thoại Với các thiết bị được xây dựng trên nền tảng Android, người dùng có thể đáp ứng đầy đủ các nhu cầu mà họ thích Chúng ta có thể đổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào Chúng ta thậm chí có thể hướng dẫn điện thoại chỉ xem những ảnh mình thích

 Dễ xây dựng ứng dụng

Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các công cụ để viết các ứng dụng phức tạp Ví dụ, Android có thể cho phép người phát triển biết được vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau để có thể tạo nên mạng xã hội chia sẻ ngang hàng rộng khắp

So sánh với các hệ điều hành cùng loại khác:

Trang 17

Bảng 1.1 So Sánh Các Hệ Điều Hành Điện Thoại Thông Minh

Android Google Android là nền tảng mở, cho

phép người dùng có thể tùy biến nền tảng theo ý thích, hơn nữa lại có một Liên minh thiết bị cầm tay mở hậu thuẫn, Google Android đang là đối thủ xứng tầm của iPhone của Apple

Google đang tích cực mở rộng cộng đồng phát triển các ứng dụng cho Android Bộ công cụ phát triển phần mềm (SDK) đầy đủ, hỗ trợ đa nền (Linux, Windows hay Mac OS) do chạy trên máy ảo Java Thư viện ngày càng hoàn thiện, dễ dàng cho người lập trình

Hệ điều hành phân mảnh, không thống nhất trên các thiết bị, giới hạn về độ 'mở' và nhiều

lỗ hổng bảo mật là những yếu điểm của Android OS

Windows

Phone

Có thư viện API khá giống với API trên Win32, các công cụ hỗ trợ lập trình đầy đủ với Visual Studio, điều này làm cho những người phát triển trên Win32 không mất công tìm hiểu lại các API và các công cụ lập trình

Sự có mặt của iPhone

và Android là hai trở ngại lớn với Windows Mobile Hai nền tảng này đang hoàn thiện và được người dùng rất ưa

Trang 18

iOS Màn hình cảm ứng đa điểm: iPhone

sử dụng hoàn toàn bằng cảm ứng và không sử dụng các nút Với iPhone ta

có thể điều khiển trên màn hình kể cả việc trượt của các ngón tay Ta có thể phóng to ảnh bằng cách trượt hai ngón tay ra xa và thu nhỏ bằng cách ngược lại

Bộ cảm nhận gia tốc: Những phản

ứng nhanh chóng của bộ cảm nhận gia tốc thay đổi độ phân giải màn hình từ dọc sang ngang tự động khi ta đặt điện thoại nằm ngang Điều này làm sinh động thêm cho các trò chơi Âm thanh, hình ảnh hoàn hảo

Việc lập trình trên cho iPhone phải thực hiện trên hệ điều hành Mac,

do đó không phải ai cũng có thể lập trình cho iPhone Hơn thế, nếu muốn đưa chương trình ra máy thật người lập trình phải trả một khoản phí lập trình, điều này làm giảm tính cạnh tranh so với các đối thủ khác



 1.1.4 Kiến trúc tổng quát của hệ điều hành Android

Mô hình sau thể hiện môt cách tổng quát các thành phần của hệ điều hành Android

Trang 20

Hình 1.6: Application Framework

Kiến trúc của Android khuyến khích khái niệm thành phần sử dụng lại, cho phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với quyền truy cập được quản lý bởi khai báo

Trang 21

 android.content: Các giao tiếp lập trình nội dung được dùng để quản lý truy cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài nguyên, Content Provider, và các gói.

 android.view: View là lớp giao diện người dùng cơ bản nhất Tất cả giao diện người dùng được tạo ra đều phải sử dụng một tập các View để cung cấp cho các thành phần tương tác người dùng

 android.widget: Xây dựng dựa trên gói View Những lớp widget những thành phần giao diện được tạo sẵn được sử dụng để tạo nên giao diện người dùng

 com.google.android.maps: Bộ API mức cao cung cấp truy cập đến điều khiển bản đồ sẵn trong Android từ ứng dụng được xây dựng Bao gồm cả lớp MapView cũng như Overlay và MapController để tương tác với bản đồ bên trong ứng dụng

 android.provider: Để tạo thuận lợi cho người phát triển truy cập đến các Content Provider tiêu chuẩn (như là dữ liệu danh bạ), gói cung cấp (Provider) bao gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong tất cả các bản phân phối Android

 android.telephony: Các API điện đàm cung cấp khả năng tương tác trực tiếp với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuộc gọi, tình trạng các cuộc gọi và tin nhắn SMS

 android.webkit: Gói WebKit cung cấp các API để làm việc với các nội dung Web-based bao gồm một lơp WebView để tạo ra giao diện web, nhúng trong ứng dụng và một trình quản lý cookie

1.1.4.4 Android Runtime

Trang 22

Hình 1.8: Android Runtime

Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java

có thể hoạt động Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường Thứ nhất là các thư viện lỗi (Core Library), chứa các lớp như JAVA

IO, Collections, File Access Thứ hai là một máy ảo java(Dalvik Virtual Machine)

1.1.4.5 Linux Kernel

Android sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống như bảo mật, quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp mạng và trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây, v.v…) Nhân Linux này cũng có vai trò như một lớp trừu tượng giữa phần cứng và phần mềm

Trang 23

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

 USB Driver : Điều khiển bàn phím

 Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi

 Audio Driver : Điều khiển các bộ thu phí phát âm thanh, giải mã các tính hiệu dạng audio thành tín hiệu số và ngược lại

 Power Management : Giám sát việc tiêu thụ điện năng

 M-system Driver : Quản lý việc đọc ghi… lên các thiết bị nhớ như thẻ SD, flash

 Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện



Trang 24

 Chu kỳ ứng dụng android

 Chu kỳ sống thành phần

Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt đầu khởi tạo và đến thời điểm kết thúc Giữa đó, đôi lúc chúng có thể là active hoặc inactive, hoặc là trong trường hợp activies nó có thể visible hoặc invisible

Hình 1.10: Chu kỳ sống thành phần.

Các trạng thái của chu kỳ sống

Hình 1.11: Chu kỳ sống của Activity

Một Activity chủ yếu có 3 chu kỳ chính sau:

 Active hoặc running: Khi Activity là được chạy trên màn hình Activity

Trang 25

này tập trung vào những thao tác của người dùng trên ứng dụng

 Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người dùng vẫn trông thấy

 Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác Nó vẫn còn trạng thái và thông tin thành viên trong nó



Trang 26

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

Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều có một chu trình sống riêng Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần trong ứng dụng kết thúc Activity là một thành phần cho phép người dùng giao tiếp với ứng dụng Tuy nhiên, khi tất cả các Activity kết thúc và người dùng không còn giao tiếp được với ứng dụng nữa nhưng không có nghĩa là ứng dụng đã kết thúc Bởi vì ngoài Activity là thành phần có khả năng tương tác người dùng thì còn có các thành phần không có khả năng tương tác với người dùng như là Service, Broadcast receiver

1.1.5.3 Thời gian sống của ứng dụng

Bảy phương thức chuyển tiếp định nghĩa trong chu kỳ sống của một Activity Thời gian sống của một Activity diễn ra giữa lần đầu tiên gọi onCreate() đến trạng thái cuối cùng gọi onDestroy() Một Activity khởi tạo toàn bộ trạng thái toàn cục trong onCreate(), và giải phóng các tài nguyên đang tồn tại trong onDestroy()

1.1.5.4 Thời gian hiển thị của Activity

Visible lifetime của một activity diễn ra giữa lần gọi một onStart() cho đến khi gọi onStop() Trong suốt khoảng thời gian này người dùng có thể thấy activity trên màn hình, có nghĩa là nó không bị foreground hoặc đang tương tác với người dùng Giữa 2 phương thức người dùng có thể duy trì tài nguyên để hiển thị activity đến người dùng

 1.2 Các thành phần giao diện trong android

Trang 27

ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính

là các widget Layout được dùng để bố trí các đối tượng khác trong một screen Có một số loại ViewGroup như sau

Trang 28

tỷ lệ khoảng cách giữa các đối tượng

 1.2.6 RetaliveLayout

Layout này cho phép bố trí các widget theo một trục đối xứng ngang hoặc dọc Để đặt được đúng vị trí thì các widget cần được xác định một mối ràng buộc nào đó với các widget khác Các ràng buộc này là các ràng buộc trái, phải, trên, dưới so với một widget hoặc so với layout parent

Hình 1.13: Bố trí widget trong RetaliveLayout

 TableLayout

Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần

bố trí các widget theo các row và column Chẳng hạn như, giao diện của một chiếc máy tính đơn giản hoặc một danh sách dữ liệu

Trang 29

Hình 1.14: Bố trí widget trong TableLayout

Trang 30

kỳ một cấu trúc dữ liệu kiểu danh sách nào.

 Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data

Source vào đúng vị trí hiển thị trong ListView Chẳng hạn, trong Data Source có một trường name và trong ListView cũng có một TextView để thể hiện trường name này Tuy nhiên, ListView sẽ không thể hiển thị dữ liệu trong Data Source lên được nếu như Adapter không gán dữ liệu vào cho đối tượng hiển thị

 ListView là đối tượng để hiển thị các thông tin trong Data Source ra

một cách trực quan và người dùng có thể thao tác trực tiếp trên đó



Trang 31

 android:singleLine = “true” EditText của bạn sẽ trở thành một TextField, ngược lại sẽ là TextBox.

 MenuOptions

Có 2 cách tạo một MenuOptions:

 Tạo bằng code:

Trang 32

Hình 1.16: Minh hoạ option menu

 Tính liên lạc giữa 2 activity

Khi chuyển sang một Activity khác ta có thể gửi kèm dữ liệu trong intend đó như sau:

Trang 33

 Task

Android là một hệ điều hành đa tiến trình Khi lập trình trên nền tảng Android thì tiến trình là một vấn đề cần phải được chú ý nhiều nhất Mặc dù Android hỗ trợ đa tiến trình nhưng trên một thiết bị di động với cấu hình thấp mà chúng ta quá lạm dụng tiến trình thì sẽ rất tốn bộ xử lý điều này cũng đồng nghĩa với việc bạn đang biến ứng dụng của bạn trở thành một thứ phần mềm tiêu thụ điện năng

 1.3.2 Intent

 Khái niệm Intend:

 Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity

 Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng như truyền các dữ liệu cần thiết tới một Activity khác Điều này cũng giống như việc di chuyển qua lại giữa các Forms trong lập trình Windows Form

Hình 1.17: Truyền dữ liệu giữa 2 Activity

Trang 34

Hình 1.18: Các thuộc tính của Intend

Các Action được định nghĩa sẵn:

Dưới đây là những hằng String đã được định nghĩa sẵn trong lớp Intent Đi kèm với nó là các Activity hay Application được xây dựng sẵn sẽ được triệu gọi mỗi khi Intent tương ứng được gửi

Trang 35

Hình 1.19: Các Action đã được định nghĩa sẵn trong Intend

1.4 Bitmap trong Android.

Lớp Bitmap là lớp thể hiện một bức ảnh trong hệ điều hành Android, chứa các thông tin và các phương thức cơ bản để có thể làm việc được với bức ảnh như đọc, ghi các điểm ảnh, lấy thông tin kích thước, … Được tạo thành từ sự sắp xếp các điểm ảnh, gọi là pixels, theo kiểu lát gạch hay ô lưới

Chất lượng ảnh Bitmap phụ thuộc vào độ phân giải của hình (đơn vị là ppi=pixels per inch), độ phân giải càng cao thì hình càng mịn và sắt nét nhưng sẽ nặng file và tốn tài nguyên máy Khi tăng giảm kích thước ảnh bitmap sẽ gây ra hiện tượng "bể" hình: các cạnh bị răng cưa và màu sắc bị phân mảng ô vuông

Đọc ảnh vào đối tượng Bitmap, cách đơn giản nhất là sử dụng lớp

Trang 36

3264 x 2448 pixel Nếu Bitmap sử dụng cấu hình ARGB_8888 sau khi được đọc vào bộ nhớ có thể chiếm đến 30MB (3264*2448*4 bytes) bộ nhớ trong.

Điều đó sẽ gây nên exception java.lang.OutofMemoryError: bitmap size exceeds VM budget

Một điều nữa là việc xử lý bitmap có kích thước lớn sẽ cần nhiều thời gian tính toán hơn bitmap có kích thước nhỏ Chính vì vậy ta cần một số thủ thuật để có thể làm việc với bitmap hiệu quả

 1.5 Màu sắc trong Android

Trong hệ điều hành Android, lớp Color là lớp thể hiện một màu sắc, lớp này

có các thuộc tính và phương thức để làm việc với màu sắc Tuy vậy, màu sắc cũng được thể

hiện là một số nguyên 4 bytes, vậy có tổng cộng 2^32 ≈ 16.7 triệu màu Mỗi màu 4 bytes tương ứng với 4 kênh Alpha – Red – Green – Blue, mỗi kênh sẽ chiếm 1 byte

Để đọc giá trị của một kênh có thể dùng các toán tử thao tác với bit để cho tốc độ thực thi nhanh

 1.6 Thao tác với điểm ảnh trong bitmap

Mỗi một điểm ảnh trên Bitmap là một số nguyên đại diện cho một màu mang giá trị của 4 kênh màu cơ bản Alpha, Red, Green, Blue Chúng ta sẽ đọc các điểm ảnh vào một mảng kiểu nguyên có kích thước bằng với số pixels của ảnh Các thuật toán xử lý ảnh sẽ xử lý trên mảng số nguyên đó sau đó lưu mảng kết quả trở lại Bitmap

Lớp Bitmap cung cấp hai phương thức:

Phương thức trên dùng để đọc toàn bộ điểm ảnh của một ảnh vào mảng số nguyên

Trang 37

Phương thức trên dùng để đặt lại giá trị màu các điểm ảnh từ một mảng số nguyên là mảng giá trị sau khi xử lý.

Như vậy ta có thể viết một hàm xủ lý ảnh như sau với đầu vào là một Bitmap, đầu ra là một Bitmap khác đã qua xủ lý:

1.7 Một số thuật toán xử lý ảnh trong android

Trang 38

Hình 1.20: Công thức xử lý ảnh ma trận nhân chập

Trang 39

Công thức tính nhân chập:

Hình 1.21 Công thức ma trận nhân chập

 1.7.2 Neon

Trang 40

tô màu xanh lá của đèn neon cho nó còn lại nền là màu đen, như vậy ảnh thu được

sẽ có hiệu ứng đèn neon ở các biên của ảnh

Toán tử Sobel là 2 nhân chập có ma trận hệ số như sau:

Trong đó:

Hx dùng để phát hiện biên theo hướng ngang

Hy dùng để phát hiện biên theo hướng dọc

Ngày đăng: 23/04/2017, 16:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Dawn Griffiths & David Griffiths - Head First Android Development (2015) [2] Ian F.Darwin - Oreilly.Android.Cookbook.Apr, (2012) Sách, tạp chí
Tiêu đề: Head First Android Development (2015)" [2] Ian F.Darwin -
[3] Grant Allen - Beginning Android 4, ( 2012) Sách, tạp chí
Tiêu đề: Beginning Android 4
Tác giả: Grant Allen
Năm: 2012
[5] Phạm Thế Bảo - Biến hình và xử lý ảnh , Đại học khoa học tự nhiên- ĐHQG Tp Hồ Chí Minh (2013) Sách, tạp chí
Tiêu đề: Biến hình và xử lý ảnh
Tác giả: Phạm Thế Bảo
Nhà XB: Đại học khoa học tự nhiên- ĐHQG Tp Hồ Chí Minh
Năm: 2013
[6] Wei-Meng Lee - Beginning Android Application Development,(2012) Sách, tạp chí
Tiêu đề: Beginning Android Application Development
Tác giả: Wei-Meng Lee
Năm: 2012
[4] Rafael C. Gonzalez, Richard E. Woods - Digital Image Processing (3rd Edition),(2012) Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.19: Các Action đã được định nghĩa sẵn trong Intend - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 1.19 Các Action đã được định nghĩa sẵn trong Intend (Trang 35)
Hình 1.23 Mô tả ảnh Emboss - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 1.23 Mô tả ảnh Emboss (Trang 41)
Hình 2.2: Biểu đồ use case edit - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.2 Biểu đồ use case edit (Trang 59)
Hình 2.3: Biểu đồ use case Styles - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.3 Biểu đồ use case Styles (Trang 61)
Hình 2.5: Biểu đồ use case text - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.5 Biểu đồ use case text (Trang 65)
Hình 2.6: Biểu đồ trình tự chức năng load ảnh - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.6 Biểu đồ trình tự chức năng load ảnh (Trang 67)
Hình 2.7: Biểu đồ trình tự chức năng xử lý ảnh - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.7 Biểu đồ trình tự chức năng xử lý ảnh (Trang 68)
Hình 2.8: Biểu đồ hoạt động cho chức năng load ảnh - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.8 Biểu đồ hoạt động cho chức năng load ảnh (Trang 69)
Hình 2.9: Biểu đồ hoạt động cho chức năng xử lý ảnh. - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.9 Biểu đồ hoạt động cho chức năng xử lý ảnh (Trang 70)
Hình 2.10: Biểu đồ class LoadImage - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.10 Biểu đồ class LoadImage (Trang 71)
Hình 2.11: Biểu đồ class Xử lý ảnh - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.11 Biểu đồ class Xử lý ảnh (Trang 72)
Hình 2.13: Biểu đồ class Text - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.13 Biểu đồ class Text (Trang 74)
Hình 2.14 Biểu đồ class Sticker - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.14 Biểu đồ class Sticker (Trang 75)
Hình 2.15 Biểu đồ class Style - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 2.15 Biểu đồ class Style (Trang 76)
Hình 3.11-12: Share và save ảnh - Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android
Hình 3.11 12: Share và save ảnh (Trang 83)

TỪ KHÓA LIÊN QUAN

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