Báo cáo lập trình trên thiết bị di động

43 2 0
Báo cáo lập trình 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

Thiết kế, xây dựng App mở Camera và chụp ảnh trên hệ điều hành Android Công nghệ thông tin là một ngành sử dụng hệ thống các thiết bị và máy tính, bao gồm phần cứng, phần mềm, để cung cấp giải pháp xử lý thông tin trên nền công nghệ cho các cá nhân, tổ chức có yêu cầu.

Trang 1

TRƯỜNG ĐẠI HỌC TÂN TRÀOKHOA KHOA HỌC CƠ BẢN

BỘ MÔN TIN HỌC

BÀI TẬP LỚN

Môn học: Lập trình trên thiết bị di động

Đề tài: Thiết kế, xây dựng App mở Camera và chụp ảnh trên hệđiều hành Android

Nhóm thực hiện:

Giáo viên hướng dẫn:

Tuyên Quang, tháng 08 năm 2022

Trang 2

CHƯƠNG II THIẾT KẾ, XÂY DỰNG APP MỞ CAMERA VÀ 14

CHỤP ẢNH TRÊN HỆ ĐIỀU HÀNH ANDROID 14

2.1 Cài đặt môi trường lập trình Android 14

2.2 Thiết kế giao diện App mở camera và chụp ảnh trên hệ điều hành Android 31

2.3 Xây dựng các chức năng 33

CHƯƠNG III DEMO APP MỞ CAMERA VÀ CHỤP ẢNH 36

TRÊN HỆ ĐIỀU HÀNH ANDROID 36

3.1 Chạy chức năng mở Camera 36

3.2 Chạy chức năng chụp, xem trước 37

3.3 Chạy chức năng lưu ảnh 37

CHƯƠNG IV KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 38

4.1 Kết luận 38

4.2 Hướng phát triển 38

Trang 3

3 CSS Viết tắt của cụm từ Cascading Style Sheets là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ

4 XML Viết tắt của Extensible Markup Language là ngôn ngữ đánh dấu mở rộng

5 JSON Viết tắt của JavaScript Object Notation-là một tiêu chuẩn mở để trao đổi dữ liệu trên web

8 GPS định vị toàn cầu do Mỹ phát triển và vận hànhViết tắt của cụm từ “Global Positioning System”- là hệ thống

9 3G nghệ truyền thông thế hệ thứ baViết tắt của third-generation technology) - là công

10 OHA Viết tắt của Open Handset Allianc – là Liên minh thiết bị cầm tay mở

11 CDMA Code Division Multiple Access nghĩa là Đa truy nhập (đa người dùng) phân chia theo mã

12 CPU Viết tắt của chữ Central Processing Unit - là bộ xử lý trung tâm

13 RSS Viết tắt của Really Simple Syndication - là đồng bộ hóa đơn giản.

Viết tắt Android Virtual Device - là một thiết bị cấu hình Viết tắt Random Access Memory - là một loại bộ nhớ

Trang 4

CHƯƠNG I MỞ ĐẦU1.1 Tính cấp thiết

Công nghệ thông tin là một ngành sử dụng hệ thống các thiết bị và máy tính, bao gồm phần cứng, phần mềm, để cung cấp giải pháp xử lý thông tin trên nền công nghệ cho các cá nhân, tổ chức có yêu cầu.

Ngày nay, với sự bùng nổ dân số, cùng với sự phát triển công nghệ thông tin như vũ bão, máy tính hay laptop dần được con người thu nhỏ lại nhưng vẫn đảm bảo có đầy đủ các chức năng như một máy tính cá nhân Vì vậy, các dòng điện thoại smartphone lần lượt ra đời, có thể kể đến một số thiết bị di động nổi tiếng như IPhone 5S xài hệ điều hành iOS của hãng Apple, Samsung Galaxy S4 xài hệ điều hành Android của hãng Samsung, Nokia Lumia 930 xài hệ điều hành Windows Phone của Microsoft,… Và để tăng số lượng người sử dụng smartphone, download ứng dụng từ AppStore thì các hãng thiết bị di động nổi tiếng trên vô Công nghệ thông tin cùng khuyến khích các nhà lập trình viên lên ý tưởng và làm ra một ứng dụng dựa trên ý tưởng của mình Từ đó, môn học lập trình trên thiết bị di động (TBDĐ) ra đời để các nhà lập trình viên tạo ra được nhiều ứng dụng đa dạng đáp ứng được nhu cầu của nhiều tầng lớp người sử dụng

Các đặc điểm của lập trình di động: Dễ tiếp cận, dễ tìm hiểu và dễ học; giúp lập trình viên tạo ra ứng dụng cho người sử dụng; giúp hiện thực hóa ý tưởng của lập trình viên; giúp lập trình viên tạo ra ứng dụng là cầu nối giao tiếp với mọi người trên thế giới qua số lượng người download và sử dụng ứng dụng của mình.

Có rất nhiều cách cho các lập trình viên có thể phát triển các ứng dụng trên di động, từ việc thiết kế các website tối ưu cho di động (web app), phát triển ứng dụng lại dựa trên HTML (hybrid app) cho đến viết các ứng dụng gốc cho

Trang 5

nền tảng (native app) Mặc dù có nhiều phương pháp để phát triển một ứng dụng cho di động nhưng chúng đều có một điểm chung đó là chạy trên mã gốc của một nền tảng nhất định Do đó, khi một tổ chức muốn phát triển ứng dụng chạy trên một nền tảng nào đó, họ sẽ thường tuyển dụng các ứng viên có kiến thức chuyên sâu về nền tảng được yêu cầu, hiểu rõ các lớp, các thành phần của nền tảng dù cho ứng dụng có được phát triển theo kỹ thuật nào đi chăng nữa Nói về quy trình phát triển phần mềm, thuật ngữ này không hẳn chỉ dành cho các quản lý dự án như nhiều người vẫn nghĩ Một lập trình viên cũng cần phải hiểu được quá trình phát triển của một phần mềm như thế nào, theo dõi các tác vụ, tiến độ ra sao, làm việc với các lập trình viên khác như thế nào thì hiệu quả… Kể cả khi một lập trình viên "chiến" một mình một dự án thì cũng cần hiểu rõ về vấn đề này Agile là một process giúp cho việc phát triển phần mềm được nhanh gọn và linh hoạt hơn do đó, nếu như các developer nắm bắt được process này và áp dụng một cách hiệu quả, quá trình phát triển phần mềm sẽ được rút ngắn và tinh gọn đi rất nhiều Quy trình phát triển phần mềm nhanh gọn (agile) có rất nhiều phương pháp khác nhau như Scrum, Kanban, XP…và các lập trình viên cần chọn cho dự án của mình một phương pháp phù hợp dựa trên các tiêu chí đánh giá về dự án Các bộ công cụ được cung cấp để có thể phát triển theo hướng agile một cách hiệu quả cũng rất nhiều, có thể kể đến như Pivotal hay Trello, giúp cho việc phát triển phần mềm được rõ ràng, nhanh gọn hơn so với các phương pháp truyền thống

Cơ hội phát triển của lập trình di động Rất nhiều công ty ứng dụng di động đang mọc lên, trong số đó rất nhiều doanh nghiệp là do các lập trình viên tự thành lập để phục vụ những dự án của mình.Việt Nam - miền đất hứa cho lập trình viên ứng dụng di động Các lập trình viên nói chung luôn dựa vào nhu cầu sử dụng của khách hàng để phát triển những ứng dụng di động phù hợp và định hình xu hướng cho thị trường Tại Việt Nam, các lập trình viên không chỉ tham khảo xu hướng chung của thế giới, mà còn đào sâu tìm hiểu người dùng trong nước

Trang 6

Việt Nam hiện đang là một vùng đất màu mỡ với dân số trẻ và tốc độ phát triển công nghệ nhanh, do vậy rất có tiềm năng phát triển đối với ngành ứng dụng di động Người dùng Việt rất “nhạy” quảng cáo Đi kèm với tốc độ phát triển của ngành di động, hoạt động quảng cáo trên thiết bị này cũng rầm rộ không kém Thị trường quảng cáo trên điện thoại di động đang được khai thác tối đa, mở ra một hướng đi hấp dẫn cho digital marketing (tiếp thị số).

Tuy nhiên không dễ để truyền tải thông điệp quảng cáo một cách tế nhị và hiệu quả Người Việt ngày càng “nhạy” hơn với quảng cáo “Nhạy” ở đây bao gồm cả nhận biết và nhạy cảm Họ hiểu quảng cáo là nguồn thu của lập trình viên, nuôi sống ứng dụng nhưng họ sẽ cảm thấy bị làm phiền khi quảng cáo xuất hiện quá nhiều Ứng dụng Việt hoàn toàn đủ sức vươn ra thế giới Số lượng smartphone gia tăng chóng mặt tại Việt Nam đã tạo nên một thị trường béo bở cho ngành lập trình ứng dụng Sau thành công bất ngờ của Flappy Bird, nhiều chuyên gia cho rằng, thị trường này sẽ ngày càng sôi động và sẽ có nhiều cú hích lớn, đẩy quy mô ngành sang tầm thế giới Hiện nay nhu cầu nhân lực trong ngành lập trình ứng dụng di động cao hơn hẳn nhu cầu chung của ngành công nghệ thông tin Không chỉ các công ty phần mềm Việt Nam mà công ty nước ngoài tại Việt Nam cũng tuyển dụng lập trình viên cho các dự án trong và ngoài nước Rất nhiều công ty ứng dụng di động đang mọc lên, trong số đó rất nhiều doanh nghiệp là do các lập trình viên tự thành lập để phục vụ những dự án của mình

Cơ hội nghề nghiệp về lập trình di động đây là câu trả lời là bất kỳ nơi nào bạn muốn, trong các công ty, xí nghiệp, trường học, bệnh viện, các tổ chức, hiệp hội Thậm chí, bạn có thể là một chuyên gia Công nghệ thông tin tự do, hình mẫu ngày càng được ưa thích, làm việc độc lập, không phụ thuộc vào bất kỳ cơ quan, tổ chức nào Bạn cũng có thể cùng một số đồng nghiệp khác lập ra một nhóm hay một công ty của riêng mình Tóm lại, công nghệ thông tin là một ngành nghề phát huy tối đa khả năng sáng tạo và tự chủ của bạn Các công ty phần mềm: Các công ty này nghiên cứu, xây dựng, phát triển và cung cấp các phần mềm, các ứng dụng, xây dựng website, games cho thị trường Hiện nay,

Trang 7

phát triển phần mềm là lĩnh vực Công nghệ thông tin mạnh nhất ở Việt Nam và thu hút lực lượng nhân lực tham gia đông đảo nhất Vì vậy, bạn có thể dễ dàng tìm kiếm và phát triển khả năng của mình trong lĩnh vực phần mềm Các công ty sản xuất, lắp ráp, sửa chữa trang thiết bị phần cứng: Tuy chưa đạt được ưu thế như những công ty phần mềm, nhưng sẽ là sai lầm nếu bạn hoàn toàn thờ ơ với các công ty sản xuất, lắp ráp và sửa chữa thiết bị phần cứng Nó thực sự hứa hẹn cả một nền công nghiệp hùng mạnh trong tương lai Ngay bây giờ, không ít chuyên gia Công nghệ thông tin trong chúng ta đang nỗ lực cho ra đời và ngày một hoàn thiện những chiếc máy tính mang thương hiệu Việt Nam Các công ty cung cấp giải pháp tích hợp Các công ty này chuyên thiết kế, triển khai các giải pháp tích hợp về phần cứng và phần mềm Đây tất nhiên cũng sẽ là một lĩnh vực mới hứa hẹn đầy thách thức và cả thành công trong tương lai Cùng với sự phát triển mạnh mẽ của Công nghệ thông tin tại Việt Nam, chúng ta đang ngày càng làm chủ tốt hơn lĩnh vực này Vì vậy có rất nhiều cơ sở để bạn ngay từ bây giờ bắt tay vào tìm hiểu về các công ty cung cấp giải pháp tích hợp Các công ty cung cấp giải pháp về mạng và an ninh mạng: Với sự phát triển “thần tốc” của Internet tại Việt Nam và cả những vấn đề về an ninh mạng như virus, hacker lĩnh vực này đầy tiềm năng phát triển và đang mở ra những cơ hội lớn cho sự nghiệp của bạn Những phẩm chất và kỹ năng cần thiết của một người làm trong lĩnh vực công nghệ thông tin:

- Thông minh và sáng tạo

- Khả năng phân tích, suy luận, xâu chuỗi các sự kiện để xác định nguyên nhân

- Kiên trì và nhẫn nại, có khả năng làm việc dưới áp lực lớn - Tính chính xác trong công việc

- Ham học hỏi, trau dồi kiến thức - Có vốn ngoại ngữ chuyên ngành

- Yêu thích khoa học và các bộ môn trí tuệ

- Và quan trọng nhất làm niềm đam mê công nghệ thông tin - Xác định mục tiêu và mục đích của lập trình di động

Trang 8

- Xây dựng các ứng dụng, hiểu và đăng ký các tài khoản để xây dựng các ứng dụng

- Các quy trình triển khai ứng dụng cho người dùng trên Google Play Store, Apple Store hay WP Store

- Tùy chỉnh các điều khiển trên giao diện ứng dụng

- Xây dựng các ứng dụng đa chạm (Gesture Recognition)

- Thao tác với các loại dữ liệu như XML, JSON, thao tác CSDL cục bộ SQLite, SharedPreference,

- Tương tác với Webservice, tương tác với Google Cloud

Xây dựng ứng dụng liên quan đến bản đồ (GPS, Internet Connection -Wifi, 3G)

- Viết ứng dụng đa nhiệm (AsyncTask, Thread, Handler), viết ứng dụng đa phương tiện (Camera, Media, Gallery)

- Gửi thông báo trên thiết bị, thông báo từ máy chủ Server

- Cách thức sử dụng các thư viện mở trên Internet, viết ứng dụng tích hợp điện thoại, dịch vụ tin nhắn

- Tìm hiểu các bộ cảm biến trên Android, iOS, WP.

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 được nhữ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ên smartphone 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à độc đảo Trong đó phải kể tới ứng dụng chụp ảnh và tạo hiệu đẹp rất được ưa chuộng hiện nay đó là ứng dụng Camera 360 trên nền tảng hệ điều hành Android, cho phép ngườ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

Trang 9

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.

1.2 Một số kiến thức về lập trình Android

1.2.1 Khái niệm lập trì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ụng trê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à 75 triệu dòng C++.

Ban đầu nền tảng này được phát triển bởi Android Inc (sau đó được Google mua lại) và gần đây nó trở thành một trong những phần mềm đứng đầu của liên minh OHA (Open Handset Alliance - với khoảng 78 thành viên bao gồm cả nhà sản xuất, nhà phát triển ứng dụng cho thiết bị di độ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ác nhu IOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Samsung (Bada), WebOS (Palm) Tinh đến thời điểm này, Android đã trở thành nề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, sau khi được mua lại bởi Google nhóm kĩ sư do Rubin đứng đầu đã phát triển nó dựa trê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ào việ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, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, 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áng 5/2011.

Trang 10

1.2.2 Kiến trúc cơ bản của 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:

* 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 USB Driver: Quản lý hoạt động cổng giao tiếp USB.

Keypad Driver: Điều khiển bản phim.

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

Trang 11

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.

* 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

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ành phần quan trọng được gọi là Dalvik Virtual Machine - một loại máy ảo Java được thiế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 Linus 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 VN cho phép tấ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ình Java (J2SE).

* 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 sống 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.

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.

Trang 12

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à Google Maps.

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 đó.

* Applications:

Các ứng dụng khi viết sẽ đượ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, Calendar, Email-client, Map v v các chương nà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ựng lên để phục vụ nó Nó có thể là một Active Program- chương trình có giao diện với ngườ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ột thờ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ụng củ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 được phép sử dụng quá 5-10% công suất CPU, điều này để nhằm tránh tính độc quyền về CPU

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áy tí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 ứng dụng Android không còn được sử

Trang 13

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êu thụ 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ột cá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ời gian 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ải quả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ắt chươ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.

1.2.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ầm

tay, 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ối mạ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ành Android 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ệc phá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 danh sách với hàng trăm thiết bị có sử dụng hệ điều hành này, lý do

Trang 14

đó là nó được phân phối tự do, với kho ứng dụng Android Market với hơn 380.000 ứng dụng trong khi IOS 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 Android chạy trên tablet 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 Android được xây dựng trên nền nhân củ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 và Microsoft đều áp dụng chiến lược “valler 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ằng IOS hay Windows phone Đề tài các ứng dụng chưa được phê duyệt, người dùng phả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 Google Maps Navigation, tích hợp Voice Command hoàn toàn miễn phí Android được phát triể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 ra

Android 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 phim mặc định người dùng có thể lựa chọn cài đặt các loại bản phim khác như Swype Slide it, Swiftkey, hoặc Sopen Hơn nữa, khi kết nối với máy tính, Android sẽ kết nối như một ổ đĩa USB Flash và cho phép bạn xem tất cả các file 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ều lợi thế cho người dùng hơn.

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

* 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, Mozila, 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.

* ImageJ:

Trang 15

ImageJ là một chương trình xử lý hình ảnh Java phạm vi công cộng lấy cảm hứng từ hình ảnh NTH 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.

* Fiji:

Fiji là một gói phần mềm xử lý hình ảnh Nó có thể được mô tả như là một bản phân phối của ImageJ (và ImageJ2) cùng với Java, Java3D và rất nhiều plug-in tổ chức thành một cấu trúc menu mạch lạc Fiji so với ImageJ như Ubuntu so với Linux.

* 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 nhanh chóng của thông tin hình ảnh (kích thước, màu sắc không gian) và dữ liệu meta.

* 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àm mé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ụng hiệu ứng đặc biệt khác nhau, hoặc vẽ văn bản đường, đa giác, hình elip và đường cong Bezier.

* Endrov:

Endrov là một chương trình phân tích hình ảnh đa năng Nó được viết một cá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ềm miễn phí và nhiều phần mềm thương mại.

* LeadTools:

LeadTools cung cấp hơn 200 chức năng xử lý hình ảnh trong một số loại tài liệ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ảm tiếng ồn, phát hiện cạnh và nhiều hơn nữa.

* OpenCV:

Trang 16

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ính toá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.

1.2.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ôn ngữ 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ới XML của Java đều được hỗ trợ đầy đủ trên Android Ví dụ: Simple API của Java cho XML (SAX), và Document Object Model hiện đều có sẵn trên Android Nhiều nă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 XMI 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.

* Rss:

RSS là một định dạng tập tin trong XVI 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ển Android phổ biến Androidster và phân tách nó thành một danh sách các đối tượng Java đơn giản mà bạn có thể sử dụng để quay lại Android ListView.

* Sax:

Trong môi trường Java có thể thường xuyên sử dụng SAX API khi muố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ớ.

Trang 17

Đ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ên Android.

CHƯƠNG II THIẾT KẾ, XÂY DỰNG APP MỞ CAMERA VÀ CHỤP ẢNH TRÊN HỆ ĐIỀU HÀNH ANDROID

2.1 Cài đặt môi trường lập trình Android

Để có bắt đầu lập trình ứng dụng Android, cần cài đặt 3 ứng dụng sau:

2.1.1 Java JDK

Bước 1: Truy cập trang download JDK và chọn JDK download.

Trang 18

Chọn JDK download

Bước 2: Chọn phiên bản JDK phù hợp với hệ điều hành sử dụng

Chọn phiên bản JDK phù hợp với hệ điều hành sử dụng (Windows)

Bước 3: Bạn tick vào I reviewed and accept the Oracle TechnologyNetwork License Agreement for Oracle Java SE rồi nhấn Download.

Trang 20

Nhấn chọn Next

Bước 6: Tiếp theo bạn có thể lựa chọn nơi lưu thư mục, nếu khôngsẽ mặc định lưu ở ổ đĩa C Sau đó bạn nhấn Next để tiếp tục

Tiếp tục Nhấn Next

Bước 7: Lúc này chỉ cần nhấn vào Close là đã hoàn thành việc càiđặt JDK.

2.1.2 Android Studio

* Download Android Studio

- Truy cập trang https://developer.android.com

Trang 21

- Chọn Download android studio

- Chọn lựa chọn như hình

Ngày đăng: 09/04/2024, 08:21

Từ khóa liên quan

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

Tài liệu liên quan