Android Bài 5: Dạo Quanh Một Chút Về Ứng Dụng Android

Posted by

baner5.png

Được chỉnh sửa ngày 29/12/2016.

Chào mừng các bạn quay trở lại với bài học số 5 trong chương trình học Android của Yellow Code Books.

Bài này chúng ta cùng tìm hiểu xem một ứng dụng Android thực chất được hình thành như thế nào, các thành phần chính để tạo nên ứng dụng bao gồm những gì nhé.

Tóm Tắt Quá Trình Tạo Một Ứng Dụng Android

settings-gears

Chúng ta đều đã biết các ứng dụng Android được viết trên ngôn ngữ lập trình Java (mặc dù tới bài này chúng ta vẫn chưa đụng đến đoạn code Java nào). Sau khi viết ra một ứng dụng hoàn chỉnh bằng Java thông qua Android Studio, công cụ này sẽ dùng Android SDK để biên dịch mã code Java đó, cùng với vài dữ liệu khác, và đóng gói các resource kèm theo để tạo thành một file cài đặt, gọi là file .APK. Giống như file thực thi .EXE trên Windows, file .APK này chứa tất cả các thông tin cần thiết để có thể mang đi cài đặt lên các thiết bị khác, hoặc dùng để xuất bản lên Google Play. Quá trình tóm tắt để tạo ra một ứng dụng Android như vậy, phần chi tiết hơn thì mình sẽ nói sau khi bạn “lành nghề” hơn với lập trình ứng dụng cho hệ điều hành này.

Vậy ngôn ngữ Java, các dữ liệu khác, hay các resource kèm theo được nhắc đến ở trên là gì? Chúng kết hợp lại với nhau như thế nào để Android SDK có thể hiểu và biên dịch ra file .APK? Chúng ta sẽ hiểu phần nào ở mục sau đây (còn hiểu sâu hơn thì cần theo dõi tiếp bài sau để tiến hành xây dựng một ứng dụng nhé).

Các Thành Phần Của Một Ứng Dụng

settings-gears

Để dễ hình dung, mình sẽ ví dụ cho bạn thấy rằng việc xây dựng Ứng Dụng cũng giống như việc sản xuất ra một Xe Hơi vậy. Xe Hơi hay Ứng Dụng đều có những Thành Phần cơ bản không thể thiếu. Chẳng hạn nhé, Xe Hơi cần phải có động cơ; Xe Hơi cần phải có bộ khung hay các trang trí khác để tạo thành bộ “giao diện”; Xe Hơi cần phải có hệ thống điện – điện tử để giải trí hay giám sát; Xe Hơi cần phải có hệ thống thu phát tín hiệu,… tất cả các thành phần đó tạo thành một thành phẩm Xe Hơi. Một điều lưu ý là thành phẩm Xe Hơi đó có thể có tất cả các thành phần cơ bản, khi đó tính năng của xe hơi sẽ tốt và giá thành thì rất cao. Hoặc cũng có những Xe Hơi chỉ cần một vài thành phần thôi cũng đáp ứng nhu cầu của bộ phận khách hàng nào đó.

Quay lại nói về một Ứng Dụng, chúng ta cũng có khái niệm các Thành Phần cơ bản, cũng có khái niệm Ứng Dụng có hết tất cả các Thành Phần, hoặc chỉ cần một hay một vài Thành Phần là đủ. Chúng ta cùng điểm qua các thành phần đó của Ứng Dụng.

Activities

Bạn sử dụng Activity để tạo nên một giao diện màn hình. Mình giả sử bạn đang muốn xây dựng một ứng dụng email, vậy bạn phải suy nghĩ ra các màn hình liên quan cho nó, bạn cần có một màn hình để hiển thị danh sách các email mới nhất. Và cũng cần một màn hình để hiển thị nội dung email. Và một màn hình khác giúp người dùng soạn thảo email mới. Và một màn hình khác…. Và…. Tất cả các “và” như vậy tạo thành một ứng dụng với nhiều màn hình, mỗi màn hình là một Activity. Mỗi Activity như vậy tuy độc lập nhưng lại có thể kết nối với nhau tạo thành một trải nghiệm của người dùng trong ứng dụng email của bạn.

Bạn đã hiểu sơ về khái niệm thành phần đầu tiên của một ứng dụng Android rồi đúng không nào. Chúng ta sẽ được học kỹ hơn về Activity ở bài tiếp theo, học cách làm sao để quản lý chu kỳ sống của một Activity, hay cách thức từ Activity này chuyển qua Activity khác, hay đóng một Activity,…

Services

Khác với Activity được dùng để hiển thị giao diện lên màn hình cho người dùng, Service lại được dùng cho các tác vụ chạy nền, tức là các tác vụ mà người dùng không hề trông thấy. Chẳng hạn như với một ứng dụng nghe nhạc, Activity sẽ hiển thị giao diện các bài nhạc cho người dùng chọn để chơi, còn khi người dùng đã chọn một bài thì thực chất công việc chơi nhạc là của Service. Bằng chứng là khi bạn chuyển qua ứng dụng khác, hay tắt màn hình điện thoại, tuy người dùng không còn nhìn thấy các Activity (các màn hình của ứng dụng) nữa nhưng Service vẫn đang hoạt động ở nền và luôn chơi bản nhạc đó, hay tự chuyển qua bản nhạc khác một cách tự động.

Content Providers

Một Content Provider sẽ lo việc chia sẻ dữ liệu của một ứng dụng. Dù cho ứng dụng của bạn có lưu dữ liệu ở file hệ thống, hay ở cơ sở dữ liệu SQLite, hay ở trên Web, hay bất cứ đâu mà nó có thể truy xuất được. Thì với Content Provider, ứng dụng khác cũng hoàn toàn có thể truy xuất vào dữ liệu của bạn, chỉnh sửa nó (nếu Content Provider cho phép). Một ví dụ điển hình là ứng dụng Quản Lý Danh Bạ của Android, ứng dụng này chứa đựng thông tin số điện thoại và các thông tin khác trên Danh Bạ người dùng, tuy vậy ứng dụng của bạn với khai báo các permission (các quyền cho phép) cần thiết vẫn có thể đọc hay chỉnh sửa thông tin đó.

Broadcast Receivers

Một Broadcasr Receiver là một thành phần có khả năng thu nhận các thông báo của hệ thống. Bạn hãy tưởng tượng Broadcast Receiver giống như một cột ăng-ten thu sóng, và nguồn phát sóng chính là từ hệ thống. Hệ thống sẽ phát các tín hiệu như là, màn hình tắt, pin yếu, hay là vừa chụp một hình ảnh,… Tùy vào bạn dựng lên cột ăng-ten muốn lắng nghe loại sóng nào. Broadcast Receiver cũng giống như Service ở chỗ không hiển thị giao diện cho người dùng. Nhưng Broadcast Receiver có thể tạo một thông báo trên thanh Notification của thiết bị.

Một khía cạnh độc đáo khác của Android là việc cho phép một ứng dụng nào đó có thể khởi động một thành phần của một ứng dụng nào đó khác. Một minh chứng cho khía cạnh này là, ví dụ bạn đang xây dựng một ứng dụng mà trong đó có chức năng chụp ảnh dựa trên máy ảnh của thiết bị, thì thay vì bạn phải mày mò xây dựng chức năng này, ứng dụng của bạn hoàn toàn có thể gọi một dứng dụng có sẵn chức năng chụp ảnh để giúp bạn làm việc đó một cách dễ dàng nhanh chóng, bằng cách gọi thẳng đến Activity của ứng dụng chụp ảnh đó, ứng dụng chụp ảnh sẽ điều khiển máy ảnh, chụp ảnh và lưu ảnh lại, ứng dụng của bạn chỉ cần lấy ảnh vừa lưu lại mang ra sử dụng, điều này diễn ra một cách nhịp nhàng và người dùng hoàn toàn bị đánh lừa rằng chỉ có ứng dụng của bạn đang làm tất cả mọi chuyện.

Kích Hoạt Các Thành Phần

settings-gears

Chúng ta vừa dạo qua các Thành Phần tạo nên một ứng dụng Android ở trên. Giờ chúng ta nói đến việc làm sao để kích hoạt, hay làm cách nào để các thành phần đó hoạt động.

Vậy thì bạn nên nhớ là (hoặc ghi chú lại sau này mình nhắc lại sẽ nhớ rõ), ba trong bốn Thành Phần kể trên bao gồm Activity, Service và Broadcast Receiver được kích hoạt bởi một Thông Điệp Bất Đồng Bộ (Asynchronous Message) có tên là Intent. Intent thì lại có hai dạng là Tường MinhNgầm Hiểu. Vậy thôi, bạn sẽ được biết cách sử dụng Intent một cách cụ thể ở các bài học sau.

File Manifest

settings-gears

Wow, chúng ta đã xem qua một ứng dụng Android có các Thành Phần gì, chúng ta cũng đã xem qua cách để kích hoạt các thành phần đó. Điều quan trọng cuối cùng trong một ứng dụng Android, đó là để sử dụng các thành phần mà chúng ta mong muốn, trước khi kích hoạt chúng, chúng ta cần phải Khai Báo chúng. Tất cả các khai báo đó đều được để trong một file, đó là file Manifest.

Ngoài việc giúp khai báo các thành phần sẽ được sử dụng trong ứng dụng, file Manifest còn là nơi bạn khai báo các mục đích khác như:

  • Đăng ký các user permission, tạm hiểu là các quyền hạn mà ứng dụng xin phép người dùng để sử dụng các tính năng của hệ thống, như là quyền được truy cập interner, được đọc danh bạ (contacts), được ghi file ra thẻ nhớ ngoài,…
  • Chỉ định Minimum Required SDK, là chỉ định thông số hệ điều hành thấp nhất của Android mà ứng dụng của bạn hỗ trợ, ngoài việc khai báo giá trị này trong file Manifest, chúng ta còn có thể khai báo trong file build.gradle mà mình sẽ nói ở các bài sau.
  • Chỉ định các tính năng phần cứng và phần mềm mà ứng dụng của ta muốn sử dụng đến, như camera, bluetooth, hay ngay cả tính năng multitouch.
  • Một số các thư viện bên ngoài (bên ngoài ở đây có thể hiểu là các thư viện không có sẵn trong các API Framework của Android) mà ứng dụng của bạn có sử dụng đến, như thư viện Google Maps, Google Play,… Và phần này cũng có thễ được khai báo trong file build.gradle mà chúng ta cũng sẽ tìm hiểu sau.

Mình nghĩ bài học thứ 5 nên kết thúc ở đây, với bài học này bạn có một cái nhìn tổng quát về cấu tạo của một ứng dụng. Bạn sẽ học cách sử dụng từng thành được nói ở trên, cách sử dụng Intent để kích hoạt các thành phần này, hay cách sử dụng file Manifest cũng như file build.gradle để khai báo các nhu cầu cần thiết cho ứng dụng của bạn ở các bài tiếp theo.

Cảm ơn bạn đã đọc các bài viết của Yellow Code Books. Bạn hãy đánh giá 5 sao nếu thấy thích bài viết, hãy comment bên dưới nếu có thắc mắc, hãy để lại địa chỉ email của bạn để nhận được thông báo mới nhất khi có bài viết mới, và nhớ chia sẻ các bài viết của Yellow Code Books đến nhiều người khác nữa nhé.

Bài Kế Tiếp

Bạn sẽ được biết ứng dụng TourNote là gì. Bạn sẽ xem qua các cách hiệu quả nhất để debug một ứng dụng.

Advertisements
Rating: 5.0/5. From 10 votes.
Please wait...

3 comments

Gửi phản hồi