Do đó việc xây dựng các ứng dụng cho điện thoại di động đang là một ngành công nghiệp mới đầy tiêm năng và hứa hẹn nhiêu sự phát triển vượt bậc của ngành khoa học kỹ thuật.. Ngày nay, vớ
QUAN VỀ HỆ ĐIỀU HÀNH ANDROID
Lịch sử phát triển
Tổng công ty Android, Inc được thành lập tại Palo Alto, California, vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập Danger), Rich Miner (đồng sáng lập Wildfire), Nick Sears (từng là Phó giám đốc tại T-Mobile) và Chris White (trưởng thiết kế và giao diện tại WebTV) nhằm phát triển, theo Rubin, "các thiết bị di động thông minh hơn có thể biết được vị trí và sở thích của người dùng" Dù các nhà sáng lập và nhân viên đều có tiếng tăm, Android hoạt động âm thầm và chỉ công bố rằng họ đang phát triển phần mềm cho điện thoại di động Trong năm đó, Rubin hết kinh phí; Steve Perlman, bạn thân của Rubin, đã cho ông 10.000 USD tiền mặt nhưng từ chối tham gia vào công ty.
Vào ngày 17 tháng 8 năm 2005, Google mua lại Android Inc., đưa nó thành một bộ phận của Google Các nhân sự chủ chốt như Rubin, Miner và White ở lại làm việc sau thương vụ Lúc đó không có nhiều thông tin về Android, nhưng nhiều người đồn đoán Google có tham vọng tham gia thị trường điện thoại di động Tại Google, nhóm do Rubin dẫn đầu đã phát triển một nền tảng di động dựa trên kernel Linux Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và các nhà mạng với cam kết cung cấp một hệ điều hành di động linh hoạt và có khả năng nâng cấp Google cũng liên hệ với nhiều hãng phần cứng và đối tác phần mềm, cho biết sẵn sàng hợp tác với các nhà mạng ở nhiều cấp độ khác nhau.
Ngày càng nhiều suy đoán cho thấy Google sẽ tham gia thị trường điện thoại di động, với BBC và Wall Street Journal cho rằng Google muốn mang công nghệ tìm kiếm và các ứng dụng của mình vào điện thoại di động và đang nỗ lực thực hiện điều này Các phương tiện truyền thông truyền thống lẫn online cũng đưa tin về tin đồn Google đang phát triển một thiết bị cầm tay mang thương hiệu Google Một số báo cho rằng trong khi Google vẫn hoàn thiện các mô tả kỹ thuật chi tiết, họ đã trình diễn mẫu sản phẩm cho các nhà sản xuất điện thoại di động và nhà mạng Tháng 9 năm 2007, InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset
Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology,
TIEU LUAN MOI download : skknchat123@gmail.com
Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động
Trong cùng ngày ra mắt các chuẩn mở cho thiết bị di động, Android được giới thiệu như nền tảng di động đầu tiên của Liên minh Open Handset Alliance, xây dựng trên nhân Linux 2.6 Điện thoại chạy Android đầu tiên, HTC Dream, đã được bán ra vào ngày 22 tháng 10 năm 2008 Biểu tượng của hệ điều hành Android là một con rô-bốt màu xanh lá cây, do Irina Blok thiết kế tại California.
Từ năm 2008, Android đã trải qua nhiều lần cập nhật nhằm cải thiện hệ điều hành, bổ sung tính năng mới và sửa lỗi ở các phiên bản trước Mỗi bản nâng cấp được đặt tên theo thứ tự bảng chữ cái và gắn với một món tráng miệng, ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối 1.6 Donut (bánh vòng) Phiên bản mới nhất hiện nay là 9.0 mang tên Android Pie.
Vào năm 2010, Google ra mắt dòng thiết bị Nexus, gồm điện thoại thông minh và máy tính bảng chạy hệ điều hành Android do các đối tác phần cứng sản xuất HTC đã hợp tác với Google để cho ra Nexus One, chiếc điện thoại thông minh đầu tiên của dòng Nexus Từ đó, nhiều thiết bị mới gia nhập dòng sản phẩm này, như Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung sản xuất Google xem Nexus là các điện thoại và máy tính bảng Android chủ lực của mình, được trang bị những tính năng phần cứng và phần mềm mới nhất của Android.
Ứng dụng Android
Android hiện có số lượng ứng dụng của bên thứ ba ngày càng lớn, được tuyển chọn và phân phối qua các cửa hàng ứng dụng như Google Play hoặc Amazon Appstore để người dùng tải về, hoặc người dùng có thể tải xuống và cài đặt tệp APK từ các trang web khác Các ứng dụng trên Google Play cho phép người dùng duyệt, tải về và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành, và cửa hàng này được cài sẵn trên các thiết bị đáp ứng yêu cầu tương thích của Google Ứng dụng sẽ tự động lọc danh sách các ứng dụng tương thích với thiết bị của người dùng, trong khi các nhà phát triển có thể giới hạn ứng dụng của họ cho một số nhà mạng hoặc quốc gia nhất định vì lý do kinh doanh Nếu người dùng mua một ứng dụng và thấy không ưng ý, họ sẽ được hoàn tiền sau 15 phút kể từ khi tải xuống, và một số nhà mạng còn có thể mua giúp các ứng dụng trên Google Play, sau đó tính vào hóa đơn sử dụng hàng tháng.
Đến tháng 9 năm 2012, hệ sinh thái ứng dụng Android đã phát triển lên hơn 675.000 ứng dụng, trong khi tổng số lượt tải xuống từ Google Play ước tính đạt 25 tỷ Những con số này cho thấy sự tăng trưởng nhanh chóng của thị trường ứng dụng di động và sự phổ biến ngày càng rộng của nền tảng Android trên người dùng toàn cầu.
Các ứng dụng Android được phát triển bằng ngôn ngữ Java và sử dụng Android SDK, một bộ công cụ đầy đủ cho quá trình phát triển gồm công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên QEMU, tài liệu hướng dẫn, mã nguồn mẫu và hướng dẫn chi tiết từng bước Môi trường phát triển tích hợp (IDE) được hỗ trợ chính thức là Eclipse với bổ sung Android Development Tools (ADT); ngoài ra còn có các công cụ phát triển khác như Bộ phát triển gốc (NDK) dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google App Inventor cho người mới bắt đầu, cùng với nhiều nền tảng phát triển web di động đa nền tảng phong phú.
Quản lý bộ nhớ Android
Android được thiết kế để quản lý RAM nhằm tối ưu hóa tiêu thụ điện năng, khác với hệ điều hành máy tính vốn tin rằng nguồn điện là vô hạn Khi một ứng dụng Android không còn được dùng, hệ thống sẽ tự động đình chỉ nó trong RAM và dù ở mức kỹ thuật vẫn được xem là “mở”, nhưng các ứng dụng này sẽ không tiêu thụ nguồn pin hay tài nguyên xử lý cho đến khi người dùng cần đến Cách làm này mang lại lợi ích kép: tăng tốc độ phản hồi của thiết bị nhờ không phải đóng và mở lại ứng dụng từ đầu, đồng thời đảm bảo các ứng dụng nền không tiêu hao điện năng một cách lãng phí.
Hệ điều hành Android quản lý bộ nhớ RAM tự động bằng cách kết thúc các ứng dụng và tiến trình không còn hoạt động sau một khoảng thời gian, theo nguyên tắc LRU (ít sử dụng nhất bị đóng trước) Quá trình này được thiết kế ẩn với người dùng để họ không phải quản lý bộ nhớ hay tự tay đóng ứng dụng Tuy nhiên, sự ẩn danh của cơ chế quản lý bộ nhớ Android đã dẫn tới sự phổ biến của các ứng dụng quản lý tác vụ bên thứ ba trên Google Play; các ứng dụng này được cho là có hại nhiều hơn có lợi.
Những đặc trưng của hệ điều hành Android
Application framework: cho phép sử dụng lại và thay thế các thành phần trong lập trình ứng dụng.
Dalvik virtual machine: tối ưu hóa cho thiết bị di động.
TIEU LUAN MOI download : skknchat123@gmail.com
Intergrated browser: trình duyệt tích hợp, dựa trên cơ chế WebKit mã nguồn mở.
SQLite: cơ sở dữ liệu trong môi trường di động.
Media support: hỗ trợ các định dạng audio, video và hình ảnh thông dụng.
GSM Telephony: mạng điện thoại di động (phụ thuộc vào phần cứng).
Bluetooth, EDGE, 3G, 4G và WiFi : các chuẩn kết nối dữ liệu (phụ thuộc vào phần cứng).
Camera, GPS, la bàn, và gia tốc kế: (phụ thuộc vào phần cứng).
Lịch nâng cấp
Google đẩy mạnh các bản nâng cấp lớn cho Android theo chu kỳ khoảng 6–9 tháng, và hầu hết thiết bị có thể nhận được thông qua OTA (truyền tải qua sóng không dây) Bản nâng cấp lớn mới nhất là Android 6.0 Marshmallow.
So với iOS, các bản cập nhật Android thường đến muộn hơn trên nhiều thiết bị do sự đa dạng về phần cứng Đối với những thiết bị ngoài dòng Nexus, người dùng thường phải chờ vài tháng kể từ khi bản cập nhật chính thức được phát hành Nguyên nhân một phần là mã nguồn của Google chỉ tối ưu cho các thiết bị Nexus chủ lực, khiến các nhà sản xuất phải điều chỉnh cập nhật cho từng mẫu máy để đảm bảo tương thích Việc đưa Android lên từng cấu hình phần cứng cụ thể là một quy trình tốn thời gian và công sức, trong đó các nhà sản xuất thường ưu tiên các thiết bị mới nhất và dễ bỏ rơi các mẫu cũ.
Đối với các smartphone cũ, nhiều hãng quyết định không phát hành bản cập nhật hệ điều hành dù thiết bị vẫn có thể chạy, vì họ cho rằng bỏ công sức cho một bản cập nhật là không đáng Vấn đề càng nghiêm trọng khi các nhà sản xuất tinh chỉnh Android để đưa giao diện và ứng dụng riêng của họ vào, khiến mỗi bản cập nhật phải được tối ưu hóa lại để tương thích với hệ thống mới Thời gian ra mắt bản cập nhật còn bị kéo dài bởi nhà mạng: sau khi nhận bản cập nhật từ nhà sản xuất, họ chỉnh sửa thêm cho phù hợp với mạng của mình và tiến hành thử nghiệm kỹ lưỡng trước khi phân phối đến người dùng.
Việc thiếu hỗ trợ hậu mãi từ các nhà sản xuất và nhà mạng đã bị nhiều nhóm người dùng và các trang tin công nghệ chỉ trích gay gắt Nhiều bài viết cho rằng giới công nghiệp do lợi ích tài chính đã cố tình không nâng cấp thiết bị, vì nếu thiết bị hiện tại không được cập nhật sẽ thúc đẩy việc mua thiết bị mới, một thái độ được coi là "xúc phạm" The Guardian đã than phiền rằng phương cách này thiếu minh bạch và gây bất bình cho người dùng trước tình trạng thiếu sự bảo vệ hậu mãi.
Việc phân phối bản cập nhật Android trở nên phức tạp do sự can thiệp của các nhà sản xuất và nhà mạng Năm 2011, Google đã hợp tác với một số hãng công nghiệp để thành lập Liên minh Nâng cấp Android, hứa hẹn sẽ cung cấp cập nhật thường xuyên cho các thiết bị trong vòng 18 tháng kể từ ngày ra mắt Mục tiêu của liên minh là đảm bảo cập nhật an toàn, cải thiện hiệu suất và kéo dài tuổi thọ thiết bị, tuy nhiên thực tế vẫn cho thấy khoảng cách giữa cam kết và thực thi, khiến nhiều người dùng gặp phải việc cập nhật chậm hoặc thậm chí không được cập nhật.
2012, người ta không còn nghe nhắc đến liên minh này nữa.
Kiến trúc trong hệ điều hành Android
1.7.1 Nhân Linux Kernel Ở dưới cùng của các lớp là Linux-Linux 2.6 Nhân Linux cung cấp chức năng cơ bản như hệ thống quản lý 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ị, vv
Phần đầu của nhân Linux tích hợp một tập hợp thư viện phong phú, bao gồm cả mã nguồn mở WebKit cho trình duyệt, các thư viện phổ biến và cơ sở dữ liệu SQLite được coi như kho lưu trữ hữu ích cho việc lưu trữ và chia sẻ dữ liệu ứng dụng Ngoài ra còn có các thư viện để chạy các ứng dụng như ghi âm và phát video, cùng với SSL library đảm nhiệm vai trò bảo mật Internet, giúp tăng cường an ninh và tin cậy cho hệ thống.
1.7.3 Thực thi ứng dụng Android Đây là phần thứ ba của kiến trúc và có sẵn trên lớp thứ hai từ dưới lên Phần này cung cấp một thành phần quan trọng được gọi là Dalvik (có thể đã thay đổi theo phiên bản) còn được gọi là máy ảo Máy ảo là một loại máy Java được thiết kế đặc biệt và tối ưu hóa cho Android.
Máy ảo Dalvik tận 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, được tích hợp sâu trong môi trường Java để thực thi mã Nhờ thiết kế này, Dalvik cho phép mọi ứng dụng Android chạy trong tiến trình riêng của mình và được cô lập với các máy ảo Dalvik khác, tăng tính an toàn và ổn định cho hệ điều hành Với mô hình chạy theo từng tiến trình, Android tối ưu hóa tài nguyên và đảm bảo sự cô lập của từng ứng dụng thông qua máy ảo Dalvik.
Android Runtime (ART) cung cấp một tập hợp thư viện lõi quan trọng cho phép các nhà phát triển viết ứng dụng Android bằng ngôn ngữ Java thông qua các API Java Những thư viện này cung cấp các API cơ bản cho xử lý dữ liệu, mạng và tương tác với hệ thống, giúp bạn xây dựng ứng dụng Android nhanh chóng và hiệu quả Việc tận dụng các thư viện lõi của ART còn tăng tính tương thích, tối ưu hiệu suất và hỗ trợ bảo trì mã nguồn dễ dàng cho quá trình phát triển ứng dụng di động.
Khung ứng dụng cung cấp nhiều dịch vụ cấp cao cho các ứng dụng dưới dạng các lớp Java, cho phép nhà phát triển ứng dụng tích hợp và sử dụng dễ dàng các dịch vụ này trong ứng dụng của họ Việc tiếp cận dịch vụ ở dạng lớp Java giúp tối ưu hóa hiệu suất, tăng khả năng mở rộng và cải thiện quá trình phát triển ứng dụng.
Người dùng có thể tìm thấy tất cả các ứng dụng Android ở lớp giao diện phía trên cùng của hệ thống Các nhà phát triển sẽ viết các ứng dụng và các ứng dụng đó phải được cài đặt trên lớp này để đảm bảo hoạt động đúng chức năng và tối ưu trải nghiệm người dùng.
TIEU LUAN MOI download : skknchat123@gmail.com
Sơ lược về Android Studio
Google cung cấp Android Studio, công cụ phát triển ứng dụng Android dựa trên nền tảng IntelliJ IDEA và được giới thiệu trên trang web chính thức Nhờ sự tích hợp của IntelliJ IDEA, Android Studio là một IDE hàng đầu cho Java hiện nay, nên nó được xem là môi trường phát triển tối ưu cho các ứng dụng Android.
Thiết lập môi trường
Để lập trình Android, hai thành phần cơ bản và cần thiết là Java Development Kit (JDK) và Android Software Development Kit (SDK) JDK cung cấp môi trường thực thi và các công cụ cần thiết cho quá trình phát triển, trong khi Android SDK chứa các phiên bản Android, các API quan trọng, mã nguồn mẫu và các công cụ hỗ trợ lập trình Mỗi khi Google ra phiên bản Android mới, SDK tương ứng được cập nhật để bạn có thể xây dựng và thử nghiệm ứng dụng trên nền tảng mới.
Để cài đặt Java và JDK (Java Development Kit), hãy truy cập trang Oracle JDK và tải xuống phiên bản mới nhất Việc cập nhật lên phiên bản mới giúp tăng tính ổn định và tận dụng tối đa các tính năng hỗ trợ của JDK Chọn đúng phiên bản phù hợp với hệ điều hành và cấu hình máy tính để quá trình cài đặt diễn ra suôn sẻ và mang lại hiệu quả làm việc cao.
TIEU LUAN MOI download : skknchat123@gmail.com
1.9.1 Cài Đặt Android Studio a) Yêu cầu phần cứng máy tính
400 MB hard disk space và ít nhất 1 GB cho Android SDK, emulator system images và caches
Độ phân giải tối thiểu 1280 x 800
Java Development Kit b) Phần mền android studio
Vào đường dẫn: https://developer.android.com/sdk/index.html
Để dowload bản mới nhất và tiến hành cài đặt click như hình:
Hình 1.1: Giao diện trang tải ứng dụng android studio
TIEU LUAN MOI download : skknchat123@gmail.com
Khi cài đặt nhớ chú ý chọn cả SDK và trình giả lập thiết bị android ảo như hình:
Hình 1.2: Giao diện cài đặt android studio
Tiếp tục chọn Next và Agree cho đến khi hoàn tất.
TIEU LUAN MOI download : skknchat123@gmail.com
Hình 1.3: Giao diện hoàn tất cài đặt android studio
Màn hình khởi động Android Studio
Hình 1.4: Giao diện khởi động android studio
Chúng ta có thể chạy chương trình thực nghiệm bằng hai cách phổ biến: sử dụng máy ảo Android tích hợp trong Android Studio hoặc kết nối trực tiếp với một thiết bị điện thoại có hệ điều hành Android để chạy mã trên thiết bị thật.
Cấu trúc dự án Android Studio
Chọn Empty Activity rồi nhấn next
TIEU LUAN MOI download : skknchat123@gmail.com
Hình 1.5: Giao diện chọn template cho project
Đặt tên cho project rồi nhấn finish
Hình 1.6: Giao diện configure cho project
Màn hình làm việc Android Studio
TIEU LUAN MOI download : skknchat123@gmail.com
Hình 1.7: Giao diện làm việc với android studio
1.10.2 Các thành phần trong một ứng dụng Android
Thành phần ứng dụng là các khối cơ bản để xây dựng một ứng dụng Android Các thành phần này được liên kết với ứng dụng thông qua tập tin AndroidManifest.xml, trong đó mô tả chi tiết các thành phần của ứng dụng và cách chúng tương tác với nhau.
Có 7 thành phần chính có thể được sử dụng trong một ứng dụng android:
Activities Gọi giao diện ngươi dùng và xử lý các tương tác người dùng với màn hình điện thoại
Services Xử lý nền kết hợp với một ứng dụng
BroadcastReceiver là thành phần trong Android chịu trách nhiệm nhận và xử lý các thông tin liên lạc giữa hệ điều hành Android và các ứng dụng, cho phép phản hồi nhanh với các sự kiện như thay đổi trạng thái hoặc thông báo từ hệ thống Content Provider xử lý dữ liệu và quản lý cơ sở dữ liệu, đồng thời chia sẻ dữ liệu an toàn giữa các ứng dụng thông qua một cơ chế kiểm soát quyền truy cập Cả hai thành phần này đóng vai trò sống còn trong kiến trúc Android, tối ưu hóa giao tiếp giữa hệ điều hành và ứng dụng, hỗ trợ quản lý dữ liệu hiệu quả và tăng cường bảo mật thông tin.
Intent Cung cấp khả năng giao tiếp giữa các màn hình với nhau Tập tin Khai báo (Mainfest File) Khai báo các thành phần của ứng dụng
View Nơi hiển thị giao diện người dùng
TIEU LUAN MOI download : skknchat123@gmail.com a) Activities
Một Activities đại diện cho một màn hình duy nhất với một giao diện người dùng.
Ví dụ về cấu trúc hoạt động của một ứng dụng email cho thấy nó có các hoạt động chính như hiển thị danh sách email mới, soạn email và đọc email; khi ứng dụng có nhiều hoạt động, một trong số chúng được đánh dấu là hoạt động hiển thị mặc định để xuất hiện khi ứng dụng khởi chạy, giúp người dùng thấy nội dung quan trọng ngay từ lần mở đầu.
Một Activities được thực hiện như một lớp con của lớp Activity như sau: public class MainActivity extends Activity {…}
Với mỗi Activity thường vòng đời có 3 trạng thái sau:
Stopped (dùng- không phải Destroyed)
TIEU LUAN MOI download : skknchat123@gmail.com
Hình 1.8: Vòng đời của ứng dụng Android
1 Running (đang kích hoạt): Khi màn hình là Foreground( Activity nằm trên cùng ứng dụng và cho phép người sử dụng tương tác).
2 Paused (tạm dừng) : Activity bị mất focus nhưng mà vẫn nhìn thấy được
Khi bạn mở một Activity mới dưới dạng Dialog, đây vẫn là một Activity bình thường thuộc vòng đời của ứng dụng và chịu sự quản lý của hệ điều hành Android; dù hiển thị dưới dạng Dialog, Activity này có thể bị hệ thống tự động Destroy khi bộ nhớ thiết bị quá thấp hoặc tài nguyên bị đứt quãng Vì vậy, khi thiết kế và tối ưu giao diện, cần cân nhắc quản lý vòng đời và bộ nhớ một cách bài bản, tránh giữ tham chiếu không cần thiết và xử lý đúng các sự kiện lifecycle như onPause, onStop và onDestroy để đảm bảo ứng dụng có thể phục hồi và hoạt động ổn định khi hệ thống thu hồi bộ nhớ.
3 Stopped (dùng - không phải Destroyed): Activity mất focus và không nhìn thấy được (ví dụ bạn mở một Activity mới lên mả Full màn hình chẳng hạn) Trong trường hợp này nó có thể bị hệ thống Destroy trong bất kỳ tình huống nào.
Như vậy cả Paused hay Stopped đều có khả năng bị Destroyed (hủy) khi bộ nhớ cần cho việc khác ưu tiên hơn.
TIEU LUAN MOI download : skknchat123@gmail.com b) Services
Service Android là một thành phần chạy nền nhằm thực hiện các hoạt động lâu dài mà không làm gián đoạn giao diện người dùng Ví dụ, một dịch vụ nền có thể phát nhạc ở chế độ nền khi người dùng đang ở một ứng dụng khác hoặc có thể lấy dữ liệu qua mạng mà không ngăn người dùng tương tác với ứng dụng Một Service được triển khai như một lớp con của lớp Service, ví dụ: class MyService : Service { … }, c) Broadcast Receivers.
Broadcast Receivers là các thành phần trong Android, phản hồi các tín hiệu broadcast từ các ứng dụng khác hoặc từ hệ thống Chúng hoạt động như một cơ chế nghe và kích hoạt xử lý khi nhận được các tín hiệu phát đi trên thiết bị Ví dụ, một ứng dụng có thể gửi tín hiệu broadcast để cho các ứng dụng khác biết rằng một tập dữ liệu đã được tải về điện thoại và sẵn sàng cho họ sử dụng.
Trong Android, một máy thu phát tín hiệu được thực hiện như một lớp con của BroadcastReceiver và mỗi tín hiệu được phát đi dưới dạng một đối tượng Intent Ví dụ: class MyReceiver : BroadcastReceiver.
Content Providers cung cấp nội dung dữ liệu từ một ứng dụng khác theo yêu cầu Yêu cầu đó được xử lý bằng các phương thức (methods) của lớp
ContentResolver Dữ liệu có thể được lưu trữ trong hệ thống tập tin, cơ sở dữ liệu (database) hoặc ở một nơi hoàn toàn khác.
Một ContentProvider được triển khai như một lớp con của ContentProvider và phải tuân thủ một bộ tiêu chuẩn API để cho phép các ứng dụng khác thực hiện các giao dịch và truy cập dữ liệu một cách an toàn Ví dụ, lớp MyContentProvider mở rộng ContentProvider và triển khai đầy đủ các phương thức API cần thiết nhằm chia sẻ dữ liệu giữa các ứng dụng một cách hiệu quả và bảo mật.
Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tượng View và ViewGroup Có nhiều loại View và ViewGroup khác nhau, mỗi loại là một con của lớp View, và tất cả các kiểu này được gọi chung là các Widget, đóng vai trò là các thành phần giao diện để hiển thị và xử lý tương tác người dùng trong ứng dụng Android.
Trong hệ thống widget, mọi widget đều có chung các thuộc tính cơ bản như vị trí trình bày, màu nền (background), kích thước và lề Những thuộc tính này tạo sự nhất quán cho cách hiển thị của các widget Tất cả thuộc tính chung đó đều được thể hiện đầy đủ trong đối tượng View, nơi quản lý bố cục và giao diện người dùng.
TIEU LUAN MOI download : skknchat123@gmail.com
Trên Android Platform, các screen được bố trí theo cấu trúc phân cấp gồm các Layout và các widget được sắp xếp có thứ tự Một màn hình là tập hợp các thành phần giao diện (UI) được tổ chức thành các Layout con và widget, tạo thành một bố cục thống nhất Để hiển thị một màn hình trong Activity, trong hàm onCreate ta gọi setContentView(R.layout.main); lệnh này nạp giao diện từ file XML và khởi tạo các thành phần để hiển thị trên thiết bị.
Hình 1.9: Mô hình ViewGroup f) Intent
Content Provider được kích hoạt khi được gọi từ ContentResolver, trong khi ba thành phần khác—Activity, Service và bộ nhận quảng bá (BroadcastReceiver)—được kích hoạt bởi các thông điệp không đồng bộ từ các Intent Một Intent là một đối tượng có kiểu Intent chứa nội dung của thông điệp Với Activity và Service, nó mang theo tên hành động được yêu cầu và xác định URI của dữ liệu tác động tới ở giữa Ví dụ, nó có thể truyền tải một yêu cầu cho một Activity hiển thị một ảnh cho người dùng hoặc cho phép người dùng sửa văn bản Với bộ nhận quảng bá, đối tượng Intent gọi tên của hành động được thông báo Ví dụ, bộ nhận quảng bá có thể thông báo các phần nó quan tâm là nút chụp ảnh đã được bấm.
Có vài phương thức cho việc kích hoạt mỗi thành phần:
Một hoạt động (Activity) được khởi động thông qua một đối tượng Intent bằng cách gọi startActivity hoặc startActivityForResult từ Context hoặc từ chính Activity Hoạt động được khởi động có thể theo dõi Intent được tạo ra bằng cách gọi getIntent() và có thể được cập nhật bằng cách gọi setIntent(Intent) Khi một Intent mới được gửi tới một Activity đã tồn tại, Android sẽ gọi phương thức onNewIntent() để xử lý Intent mới, cho phép cập nhật hoặc bỏ qua các Intent trước đó.
TIEU LUAN MOI download : skknchat123@gmail.com
Một hoạt động thường bắt đầu một hoạt động khác Nếu nó muốn trả lại kết quả cho hoạt động đã được khởi chạy, nó sẽ gọi phương thức startActivityForResult thay cho startActivity Ví dụ, nếu nó khởi chạy một hoạt động cho phép người dùng chọn một ảnh, nó có thể muốn nhận được kết quả của ảnh đã chọn Kết quả được trả về trong một đối tượng Intent và được xử lý trong phương thức onActivityResult().
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Đặc tả bài toán
Nghe nhạc trên điện thoại là nhu cầu giải trí phổ biến giúp thư giãn và tăng hiệu quả làm việc trên smartphone Chương trình nghe nhạc tích hợp sẵn thường chỉ phát các bài hát lưu trữ cục bộ, khiến bạn bị giới hạn bởi kho nhạc và tốn dung lượng bộ nhớ Việc lưu trữ nhạc cục bộ có thể khiến các bài hát nhanh chóng trở nên cũ và không còn phù hợp với sở thích Vì vậy, xây dựng ứng dụng nghe nhạc online/trực tuyến sẽ cho phép người dùng nghe nhạc mới liên tục mà không lo về không gian lưu trữ, mang lại trải nghiệm nghe nhạc linh hoạt và tối ưu.
Đặc tả chức năng
Chức năng này là chức năng chính của ứng dụng, tất cả các bài hát chọn để phát đều thực hiện bằng chức năng này.
1 Người dùng chọn 1 trong các mục nhạc.
2 Người dùng chọn ra 1 bài hát dược đề xuất hoặc chọn button play để chọn tất cả bài hát.
3 Chức năng phát nhạc được thực hiện.
2.2.2 Chức năng trộn bài hát
Khi phát nhạc, người dùng có thể chọn chế độ phát ngẫu nhiên để các bài hát được chuyển tiếp một cách ngẫu nhiên, không theo thứ tự trên danh sách phát Chức năng này sẽ phát bài hát ngẫu nhiên, mang đến trải nghiệm nghe nhạc đa dạng và thú vị cho người dùng.
1 Phát một danh sách bài hát tùy thích để mở đến giao diện phát nhạc.
2 Nhấn nút trộn bài hát trên giao diện phát nhạc.
Nếu chức năng trộn bài hát đang mở mà người dùng muốn tắt đi thì chỉ cần nhấn lại button trộn bài hát.
2.2.3 Chức năng lặp bài hát
Trong trải nghiệm nghe nhạc, người dùng mong muốn chỉ phát một bài hát duy nhất và tự động phát lại bài hát đó khi kết thúc Để đáp ứng nhu cầu này, nền tảng nên cung cấp tùy chọn bật chế độ lặp lại cho một bài hát duy nhất, giúp người nghe thưởng thức lại bài hát yêu thích một cách liên tục mà không cần thao tác tắt hoặc bắt đầu lại.
TIEU LUAN MOI download : skknchat123@gmail.com
1 Phát một danh sách bài hát tùy thích để mở đến giao diện phát nhạc.
2 Nhấn nút lặp bài hát trên giao diện phát nhạc.
Nếu chức năng lặp bài hát đang mở mà người dùng muốn tắt đi thì chỉ cần nhấn lại button lặp bài hát.
2.2.4 Chức năng chuyển bài hát tiếp theo
Khi phát nhạc, người dùng muốn dừng bài hát hiện tại và chuyển đến bài hát tiếp theo thì có thể chọn chức năng này.
1 Phát một danh sách bài hát tùy thích để mở đến giao diện phát nhạc.
2 Nhấn nút chuyển tiếp bài hát để phát bài hát kế tiếp trong danh sách.
2.2.5 Chức năng chuyển bài hát trước đó
Khi phát nhạc, người dùng muốn dừng bài hát hiện tại và chuyển đến bài hát trước đó thì có thể chọn chức năng này.
1 Phát một danh sách bài hát tùy thích để mở đến giao diện phát nhạc.
2 Nhấn nút chuyển lại bài hát để phát bài hát kế tiếp trong danh sách.
2.2.5 Chức năng dừng bài hát
Khi phát nhạc, người dùng muốn dừng bài hát lại thì có thể chọn chức năng này.
3 Phát một danh sách bài hát tùy thích để mở đến giao diện phát nhạc.
4 Nhấn nút dừng bài hát để dừng bài hát lại.
Nếu chức năng dừng bài hát đang mở mà người dùng muốn tắt đi thì có thể nhấn lại button dừng bài hát để tiếp tục phát bài hát.
2.2.6 Chức năng điều khiển thời gian bài hát
Trong khi phát nhạc, người dùng có thể kéo thanh seekbar để chọn đúng thời điểm bắt đầu bài hát, từ đó điều chỉnh thời điểm phát theo ý muốn một cách nhanh chóng và chính xác Việc này giúp cải thiện trải nghiệm nghe nhạc bằng cách cho phép người dùng kiểm soát thời gian phát và bắt đầu từ mọi vị trí trên trình phát.
1 Phát một danh sách bài hát tùy thích để mở đến giao diện phát nhạc 27
TIEU LUAN MOI download : skknchat123@gmail.com
2 Kéo thanh seekbar để điều chỉnh thời điểm phát bài hát.
2.2.7 Chức năng tìm kiếm bài hát
Chức năng này cho phép người dùng tìm kiếm bài hát mình muốn nghe thông qua tên bài hát.
1 Người dùng mở giao diện tìm kiếm.
2 Người dùng chọn button tìm kiếm.
3 Người dùng nhập tên bài hát vào ô nhập
4 Danh sách các bài hát liên quan đến từ khóa người dùng vừa nhập sẽ được hiện lên.
Mô hình UseCase dưới đây thể hiện cho số lượng chức năng của hệ thống mà người dùng có thể tương tác trước tiếp.
TIEU LUAN MOI download : skknchat123@gmail.com
TIEU LUAN MOI download : skknchat123@gmail.com
Biểu đồ lớp cho ca sử dụng “ phát bài hát “
Hinh 2.2: Biểu đồ lớp cho ca sử dụng “ phát bài hát “
TIEU LUAN MOI download : skknchat123@gmail.com
Biểu đồ lớp cho ca sử dụng “ tìm kiếm bài hát “
Hinh 2.3: Biểu đồ lớp cho ca sử dụng “ tìm kiếm bài hát “
Biểu đồ trình tự cho chức năng “ phát bài hát “
Hinnh 2.4: Biểu đồ trình tự cho chức năng “ phát bài hát “
TIEU LUAN MOI download : skknchat123@gmail.com
TIEU LUAN MOI download : skknchat123@gmail.com
Biểu đồ trình tự cho chức năng “ tìm kiếm bài hát “
Hình 2.5: Biểu đồ trình tự cho chức năng “ tìm kiếm bài hát “
Biểu đồ hoạt động tổng quan của app nhạc
Hình 2.6: Biểu đồ hoạt động tổng quan của app nhạc
TIEU LUAN MOI download : skknchat123@gmail.com
Biểu đồ hoạt động cho chức năng “ phát bài hát “
Hinh 2.7: Biểu đồ hoạt động cho chức năng “ phát bài hát “
Biểu đồ hoạt động cho chức năng “ tìm kiếm bài hát “
Hinh 2.8: Biểu đồ hoạt động cho chức năng “ tìm kiếm bài hát “
TIEU LUAN MOI download : skknchat123@gmail.com
Hình 2.9: Biểu đồ thành phần app nghe nhạc
TIEU LUAN MOI download : skknchat123@gmail.com
CHƯƠNG TRÌNH DEMO
Giao diện khởi động ứng dụng
Hình 3.1: Giao diện khởi động ứng dụng nghe nhạc
TIEU LUAN MOI download : skknchat123@gmail.com
Giao diện trang chủ ứng dụng nghe nhạc
Hình 3.2: Giao diện trang chủ ứng dụng nghe nhạc
TIEU LUAN MOI download : skknchat123@gmail.com
3.3 Giao diện album và tìm kiếm
Hinh 3.3:Giao diện thư viện album và tìm kiếm
TIEU LUAN MOI download : skknchat123@gmail.com
3.4.Giao diện bài hát yêu thích và thêm album
Hình 3.4: Giao diện thêm album
TIEU LUAN MOI download : skknchat123@gmail.com