Trang 4 1.1.2 Đặc tính mở của Android: Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứng dụng di động hấp dẫn, tận dụng tất cả tính năng một chiếc điện thoại đã cung
LỜI CẢM ƠN Sau tháng tìm hiểu đề tài “Tìm hiểu Android xây dựng ứng dụng chỉnh sửa ảnh”, em hoàn thành tiến độ dự kiến Để đạt kết này, em nỗ lực thực đồng thời nhận nhiều giúp đỡ, quan tâm, ủng hộ thầy cô bạn bè Em xin chân thành cảm ơn giáo viên hướng dẫn: thầy Phạm Thế Quế – Giảng dạy khoa Cơng nghệ thơng tin - trường Đại học Hịa Bình tận tình giúp đỡ em hồn thành thực tập chuyên ngành Em xin chân thành cảm ơn thầy cô ban lãnh đạo trường Đại học Hịa Bình nhiệt tình giảng dạy truyền đạt kiến thức quý báu bổ ích suốt trình em học tập trường Em xin chân thành cảm ơn thầy, cô giáo thuộc môn Công nghệ phần mềm trang bị cho em kiến thức chun ngành hữu ích để em hồn thành đề tài phục vụ cho công việc em sau Vì thời gian có hạn nên khơng thể tránh khỏi thiếu sót, em mong đóng góp ý kiến từ thầy bạn Em xin chân thành cảm ơn! LỜI NÓI ĐẦU Mạng điện thoại di động xuất Việt Nam từ đầu năm 1990 theo thời gian số lượng thuê bao nhà cung cấp dịch vụ động Việt Nam ngày tăng Do nhu cầu trao đổi thông tin ngày tăng nhu cầu sử dụng sản phẩm công nghệ cao nhiều tính năng, cấu hình cao, chất lượng tốt, kiểu dáng mẫu mà đẹp, phong phú nên nhà cung cấp phải luôn cải thiện, nâng cao sản phẩm Do việc xây dựng ứng dụng cho điện thoại di động ngành công nghiệp đầy tiềm hứa hẹn nhiều phát triển vượt bậc ngành khoa học kĩ thuật Cùng với phát triển thị trường điện thoại di động phát triển mạnh mẽ xu hướng lập trình phần mềm ứng dụng cho thiết bị di động Phần mềm, ứng dụng cho điện thoại di động đa dạng phong phú hệ điều hành di động phát triển mạnh mẽ thay đổi từ ngày Các hệ điều hành J2ME, Android, IOS, Hybrid, Web based Mobile Application có phát triển thị trường truyền thơng di động Trong vài năm trở lại đây, hệ điều hành Android đời với kế thừa ưu việt hệ điều hành đời trước kết hợp nhiều công nghệ tiên tiến nay, nhà phát triển công nghệ tiếng Google Android nhanh chóng đối thủ cạnh tranh mạnh mẽ với hệ điều hành trước hệ điều hành di động tương lai nhiều người ưa chuộng Ngày nay, với phát triển nhanh chóng xã hội, nhu cầu chỉnh sửa ảnh lúc nơi cần thiết, em chọn đề tài “Tìm hiểu Android xây dựng ứng dụng chỉnh sửa ảnh” với mục đích nghiên cứu, tìm hiểu hệ điều hành Android xây dựng ứng dụng chỉnh sửa ảnh để đáp ứng nhu cầu cập nhật tin tức xã hội cách nhanh chóng tiện lợi Chương GIỚI THIỆU ANDROID Như biết, có nửa nhân loại sử dụng máy di động để thoại giao tiếp qua mạng không dây Con số tỉ người tăng lên máy di động ngày "thông minh" với nhiều chức dịch vụ hấp dẫn, thị trường máy di động thông minh vượt xa máy vi tính tương lai gần Vì việc lập trình thiết bị di động ngày phổ biến phát triển mạnh mẽ Từ tảng mã nguồn mở, Google cho mắt Android chạy thiết bị di động Android có nhiều cơng cụ dụng cụ miễn phí để nghiên cứu phát triển phần mềm tảng Tài liệu giúp tìm hiểu Android cách viết ứng dụng tảng 1.1 KHÁI NIỆM VỀ ANDROID: Trước hết Android tảng phần mềm dựa mã nguồn mở Linux OS (Kernel 2.6) cho máy di động phần mềm trung gian (middleware) để hổ trợ ứng dụng mà người sử dụng cần đến Một cách định nghĩa khơng q chun mơn coi Android tên tảng mở cho thiết bị di động Google (gồm hệ điều hành, middleware số ứng dụng bản) Android đương đầu với số hệ điều hành (viết tắt HDH) dành cho thiết bị di dộng khác hâm nóng thị trường Windows Mobile, Symbian dĩ nhiên OS X (iPhone) Có thể nói cách nôm na Android HDH chạy thiết bị di động, giống Windows, Linux hay Mac chạy máy vi tính 1.1.1 Android khác với hệ điều hành chạy thiết bị di động khác Android thu hút ý giới cơng nghệ khắp tồn cầu đứa Google sử dụng giấy phép mã nguồn mở Đó sản phẩm kết tinh từ ý tưởng Khối Liên minh thiết bị cầm tay mở Google dẫn đầu, gồm 34 thành viên với công ty hàng đầu cơng nghệ di động tồn cầu Qualcomm, Intel, Motorola, Texas Instruments LG Electronics, nhà mạng TMobile, Sprint Nextel, NTT DoCoMo China Mobile Các nhà phát triển sử dụng miễn phí Kit Android Software Development để xây dựng ứng dụng 1.1.2 Đặc tính mở Android: Android xây dựng phép nhà phát triển để tạo ứng dụng di động hấp dẫn, tận dụng tất tính điện thoại cung cấp Nó xây dựng để thực mở Ví dụ, ứng dụng gọi chức lõi điện thoại thực gọi, gửi tin nhắn văn bản, cách sử dụng máy ảnh, cho phép nhà phát triển để tạo nhiều ứng dụng phong phú cho người dùng (điều chưa có Windows Phone7 Microsoft) Android xây dựng mã nguồn mở Linux Kernel Hơn nữa, sử dụng máy ảo tuỳ chỉnh thiết kế để tối ưu hóa nhớ tài nguyên phần cứng môi trường di động Android không phân biệt ứng dụng lõi điện thoại ứng dụng bên thứ ba Tất xây dựng để truy cập khả thiết bị di động cung cấp cho người sử dụng với dải rộng ứng dụng dịch vụ Với thiết bị xây dựng Android, người dùng hồn tồn thích ứng với điện thoại đến lợi ích họ Với Android, nhà phát triển xây dựng ứng dụng cho phép người dùng xem vị trí bạn bè họ cảnh báo họ có vùng phụ cận cho họ hội để kết nối Android cung cấp truy cập đến loạt thư viện cơng cụ hữu ích sử dụng để xây dựng ứng dụng phong phú Ví dụ, Android cho phép thiết bị giao tiếp với tạo điều kiện cho đồng đẳng rich-to-peer ứng dụng xã hội Ngoài ra, Android bao gồm tập hợp đầy đủ công cụ xây dựng công phu, với việc cung cấp tảng phát triển, với suất cao nhìn sâu vào ứng dụng 1.2 KIẾN TRÚC CỦA ANDROID: "Understanding Android" cách mà ta tiếp cận lập trình Android thấu hiểu kiến trúc hệ thống Chúng ta không cần hiểu rõ cấu trúc HDH Chúng ta lập trình ứng dụng HDH đó, điều mà nhà sản xuất muốn release SDK với framework có sẵn họ Như biết điều có mặt tốt xấu Framework tầng cao cấp dành cho lập trình viên, có giới hạn nó, có thể lập trình ứng dụng phổ biến khơng nên tiến tới ứng dụng cao cấp sâu vào hệ thống HDH Theo cách mình, trước bắt đầu học Android, nên nghiên cứu qua thân HDH Android, không cần phải hiểu rõ thể nào, mục đích quan trọng có nhìn chung tồn diện Android 1.2.1 Android Platform: Bao gồm HDH Android đầy đủ tính năng, ứng dụng tầng trung gian để developer mở rộng, tùy chỉnh thêm vào component họ Có tầng HDH Android: Application Framework, Android Runtime, Native Libraries, Linux Kernel Mỗi tầng làm việc nhờ giúp đỡ tầng bên 1.2.2 Tầng Linux Kernel: Đây nhân HDH Android, xử lý hệ thống phải thông qua tầng Linux Kernel cung cấp trình điều khiển thiết bị phần cứng (driver) như: camera, USB, Wifi, Bluetooth, Display, Power Management Android dựa Linux phiên 2.6 lựa chọn tính cốt lõi bảo mật, quản lý nhớ, quản lý tiến trình, mạng stack trình điều khiển phần cứng Kernel hoạt động lớp trừu tượng phần cứng phần mềm lại hệ thống 1.2.3 Native Libraries: • • • • • • • • System C library - có nguồn gốc từ hệ thống thư viện chuẩn C (libc), điều chỉnh thiết bị nhúng Linux Media Libraries - mở rộng từ PacketVideo's OpenCORE; thư viện hỗ trợ playback recording nhiều định dạng video image phổ biến: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG Surface Manager - quản lý việc hiển thị kết hợp đồ họa 2D 3D LibWebCore - Android dùng lại webkit engine cho việc render trình duyệt mặc định HDH Android browser cho dạng web nhúng (như HTML nhúng) SGL - 2D engine 3D libraries - Thư viện 3D dựa OpenGL ES 1.0 API, có nâng cấp tang tốc "hardware 3D acceleration" FreeType - render bitmap vector font SQLite - quản lý database ứng dụng 1.2.4 Tầng Runtime: Mỗi ứng dụng Android chạy proccess riêng Dalvik VM (máy ảo) Dalvik viết để chạy nhiều máy ảo lúc cách hiệuquả thiết bị Máy ảo Dalvik thực thi file mang định dạng dex (Dalvik Excutable), định dạng định dạng tối ưu hóa để chiếm vùng nhớ vừa đủ xài nhỏ VM chạy class (đã compile trước 1trình biên dịch ngơn ngữ Java), VM chạy class nhờ chương trình DX tool convert class sang định dạng dex 1.2.5 Tầng Application Framework: Đây tầng mà Google xây dựng cho developer để phát triển ứng dụng họ Android, cách gọi API có sẵn mà Google viết để sử dụng tính phần cứng mà khơng cần hiểu cấu trúc bên Bằng cách cung cấp tảng phát triển mở, Android cho nhà phát triển khả xây dựng ứng dụng phong phú sáng tạo Nhà phát triển tự tận dụng thiết bị phần cứng, thông tin địa điểm truy cập, dịch vụ chạy nền, thiết lập hệ thống báo thức, thêm thông báo để trạng thái, nhiều, nhiều Tất ứng dụng thường gồm dịch vụ hệ thống sau: • View UI dùng để xây dựng layout ứng dụng bao gồm: list view, text field, button, dialog, form • Content Providers cho phép ứng dụng truy cập liệu từ ứng dụng khác (như ứng dụng ta lấy thơng tin Contacts điện thoại Android), để chia sẻ liệu riêng ứng dụng • Resource Manager cung cấp cách thức truy cập đến non-code resources asset, graphic, image, music, video • Notification Manager cho phép tất ứng dụng hiển thị thong báo HDH • Activity Manager quản lý vịng đời ứng dụng Ở góc nhìn người dùng ta có thêm tầng application (là ứng dụng viết), sau sơ đồ tổng quát hình 1.1: 1-1 Kiến trúc Android Chương MÔI TRƯỜNG LẬP TRÌNH 2.1 GIỚI THIỆU: Trong chương giới thiệu cơng cụ lập trình cho Android (Android Development Tools) Chúng ta dần làm quen với Android Studio Android Development Tool plug-in, thông qua Android SDK công cụ nó, chạy ứng dụng Android Emulator(tạm dịch trình giả lập giao diện Android PC) Với kĩ tay, tìm hiểu gói Java packages cung cấp SDK giúp nâng cao khả lập trình Android 2-1 Mơi trường lập trình Android 2.2 ANDROID SDK: Android SDK, viết tắt Android Software Development Kit, gọi “cơng cụ phát triển phần mềm” mà cụ thể phát triển ứng dụng cho AndroidOS Đến hiểu đơn giản Google Adroid SDK công cụ Google xây dựng phát hành miễn phí đến giới Developer để họ dễ dàng xây dựng phát triển ứng dụng chạy Android OS Android SDK có đặc tính sau: • Được phát triển cung cấp miễn phí • Truy cập đến phần cứng Wi-Fi • GSM, EDGE tính mạng 3G cho phép việc chuyển liệu, gọi điện hay gửi tin SMS mạng di động • Gói API tồn diện cho dịch vụ tảng ví dụ GPS • Truy cập tồn phần cứng điều khiển đa phương tiện chơi nhạc, ghi âm hay sử dụng microphone camera • Chia sẻ liệu kho liệu • Tích hợp trình duyệt dựa WebKit (mã nguồn mở) • P2P hổ trợ sử dung Google Talk • Hỗ trợ tốt đồ họa 3D nhờ sử dụng OpenGL ES Android SDK cần phải cài đặt để xây dựng ứng dụng Android Android SDK bao gồm tài liệu tích hợp HTML_base lõi Javadoc để thể gói lớp Java 2.3 MÁY ẢO DALVIK: Một thành phần quan trọng Android máy ảo Dalvik Thay sử dụng máy ảo Java trước Android sử dùng máy ảo riêng thiết kế để bảo đảm đa ứng dụng chạy mượt mà thiết bị di động Máy ảo Dalvik sử dụng lõi Linux để xử lý chức mức thấp bao gồm bảo mật, tiến trình, luồng quản lý vùng nhớ Nó viết ứng dụng C/C++ để chạy trực tiếp lên lõi Linux bên Giữa phần cứng dịch vụ hệ thống quản lý máy ảo Dalvik, thành phần Bằng cách sử dụng máy ảo để chạy ứng dụng, nhà phát triển hồn tồn khơng phải bận tâm phần cứng bên Khi máy ảo chạy tạo tập tin có dex, tập tin SDK tạo chuyển đổi từ lớp biên dịch ngơn ngữ Java 2.4 CÁC GĨI JAVA CẦN THIẾT: • java.lang —gói chứa lớp lõi Java • java.io —xuất nhập • java.net —kết nối mạng • java.util _ chứa lớp tiện ích Bao gồm: Log thường dùng đề viết LogCat • java.text —tiện ích sử lý văn • java.math —các lớp tốn học • • • • • javax.net —các lớp mạng javax.security —Security-related classes javax.xml —các lớp liên quan đến DOM-based XML org.apache.* — lớp liên quan đến HTTP-related org.xml —các lớp liên quan đến SAX-based XML Các gói dùng cho lập trình Android: • Android.app—Android application model access • Android.content—truy xuất liệu Android • Android.net—bao gồm Uri class dùng cho việc truy xuất nội dung khác • Android.graphics—đồ họa • Android.opengl—các lớp OpenGL • Android.os—truy cập mức độ hệ thơng đến mơi trường Android • Android.provider—các lớp liên quan đến ContentProvider • Android.telephony—khả truy cập Telephony • Android.text—Text layout • Android.util—tập tiện thao tác văn bản,bao gồm XML • Android.view—thành phần UI (giao diện người dùng) • Android.webkit—Browser functionality • Android.widget—thành phần UI mức độ cao Trong gói gần lõi ứng dụng Android Android.app, Android.view Android.content 2.5 THÀNH PHẦN CHÍNH CỦA ANDROID STUDIO KHI TẠO ỨNG DỤNG TRÊN ANDROID: • Mơi trường phát triển Rich Java bao gồm trình biên dịch, class autocompletion, tích hợp Javadoc • Bẫy lỗi code • Quản lý chạy Android Emulator profile • The Dalvik Debug Monitoring Service (DDMS) • Khung nhìn tiến trình (Thread and heap views) • Quản lý Hệ thống tập tin giao diện (Emulator filesystem management) • Điều khiển liệu hội thoại (Data and voice network control) • Điều khiển giao diện (Emulator control)