Tìm hiểu và xây dựng kho ứng dụng Android: Ứng dụng học tiếng Anh (Quách Văn Hà - ĐH Hòa Bình)

Hướng dẫn xây dựng ứng dụng Android chi tiết từng bước cho người mới. Tìm hiểu lập trình, thiết kế giao diện và cách phát hành app lên Google Play.

Trường đại học

Trường Đại Học Hòa Bình

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Khóa luận
87
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. TỔNG QUAN VỀ ĐỀ TÀI

1.1. Mục tiêu và nhiệm vụ nghiên cứu

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

1.1. Lịch sử android

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Hướng dẫn bắt đầu xây dựng ứng dụng Android cho người mới

Bắt đầu hành trình xây dựng ứng dụng Android đòi hỏi một nền tảng kiến thức vững chắc và sự hiểu biết về các công cụ cần thiết. Hệ điều hành Android, được phát triển bởi Google và dựa trên nền tảng Linux, là một hệ sinh thái mở và mạnh mẽ. Nó cung cấp một môi trường phát triển linh hoạt, cho phép các nhà phát triển tạo ra những ứng dụng sáng tạo và phong phú. Ngôn ngữ lập trình chính được sử dụng là lập trình Java, kết hợp với bộ thư viện và API do Android cung cấp. Việc hiểu rõ lịch sử phát triển của Android, từ những phiên bản đầu tiên đến các bản cập nhật hiện đại, giúp nhận thức được sự tiến hóa và hoàn thiện của nền tảng. Mỗi phiên bản mới đều mang đến những cải tiến về hiệu năng, bảo mật và tính năng. Để bắt đầu, lập trình viên cần trang bị các công cụ phát triển tích hợp (IDE) như Android Studio. Đây là môi trường chính thức, cung cấp trình giả lập (Emulator), trình gỡ lỗi (debugger) và bộ công cụ phát triển phần mềm (Android SDK). Trình giả lập cho phép kiểm thử ứng dụng trên nhiều cấu hình thiết bị ảo mà không cần máy thật, mô phỏng hầu hết các tính năng phần cứng. Tuy nhiên, một số chức năng như USB, camera có thể bị giới hạn. Việc thiết lập một mục tiêu rõ ràng cho dự án là bước đầu tiên và quan trọng nhất. Theo tài liệu nghiên cứu, mục tiêu phải cụ thể, ví dụ như "xây dựng ứng dụng học tiếng Anh", bao gồm các nhiệm vụ chi tiết như nghiên cứu tài liệu, tìm hiểu ngôn ngữ và thư viện, sau đó mới tiến hành viết mã và hoàn thiện sản phẩm.

1.1. Lịch sử và tầm quan trọng của hệ điều hành Android

Android ban đầu được phát triển bởi Android Inc. và sau đó được Google mua lại. Dựa trên nền tảng Linux, hệ điều hành Android cung cấp một kiến trúc phần mềm vững chắc bao gồm hệ điều hành, middleware và các ứng dụng cốt lõi. Sự ra đời của Liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance) vào năm 2007 đã đánh dấu một bước ngoặt, thúc đẩy Android trở thành một nền tảng mở, khuyến khích sự đổi mới từ các nhà sản xuất, nhà mạng và lập trình viên. Phiên bản Android SDK đầu tiên được phát hành vào tháng 11 năm 2007. Kể từ đó, Android đã trải qua nhiều phiên bản, liên tục được cải tiến để đáp ứng nhu cầu ngày càng cao của người tiêu dùng và trở thành hệ điều hành di động phổ biến nhất thế giới.

1.2. Các công cụ cần thiết để bắt đầu lập trình Android

Để bắt đầu xây dựng ứng dụng Android, lập trình viên cần các công cụ cơ bản. Môi trường phát triển tích hợp (IDE) như Android Studio là công cụ không thể thiếu. Nó tích hợp trình soạn thảo mã, trình gỡ lỗi, và trình giả lập Android Emulator. Android Emulator, dựa trên công nghệ QEMU, cho phép chạy và thử nghiệm ứng dụng trên một thiết bị ảo. Bên cạnh đó, Android SDK (Software Development Kit) cung cấp các thư viện API và công cụ cần thiết để biên dịch, kiểm thử và đóng gói ứng dụng. Mặc dù có thể sử dụng dòng lệnh để biên dịch, việc dùng IDE sẽ tối ưu hóa quy trình làm việc một cách hiệu quả.

II. Thách thức cốt lõi khi bắt đầu lập trình ứng dụng Android

Việc xây dựng ứng dụng Android mang lại nhiều cơ hội nhưng cũng đi kèm với không ít thách thức, đặc biệt đối với người mới bắt đầu. Một trong những khó khăn lớn nhất là phải nắm vững kiến trúc phức tạp của nền tảng. Kiến trúc Android được phân thành nhiều tầng lớp, từ tầng nhân Linux xử lý các tác vụ cấp thấp như quản lý bộ nhớ và tiến trình, đến tầng Application Framework cung cấp các API cấp cao. Hiểu rõ mối quan hệ và sự tương tác giữa các tầng này là điều kiện tiên quyết để phát triển ứng dụng một cách hiệu quả. Một thách thức quan trọng khác là quản lý chu kỳ sống của Activity. Mỗi màn hình trong ứng dụng Android là một Activity, và nó có một vòng đời phức tạp với nhiều trạng thái khác nhau (Running, Paused, Stopped). Hệ thống có thể hủy và tái tạo Activity bất cứ lúc nào để giải phóng tài nguyên. Lập trình viên phải xử lý cẩn thận các sự kiện trong chu kỳ sống, như lưu và khôi phục trạng thái trong các phương thức onCreate(), onPause(), onResume() để đảm bảo trải nghiệm người dùng liền mạch và tránh mất dữ liệu. Việc không quản lý tốt chu kỳ sống có thể dẫn đến các lỗi khó lường và làm giảm hiệu năng của ứng dụng. Đây là một khái niệm trừu tượng và đòi hỏi thực hành nhiều để có thể làm chủ.

2.1. Nắm vững kiến trúc phức tạp của nền tảng Android

Hệ thống Android có cấu trúc stack nhiều lớp. Dưới cùng là Linux kernel, chịu trách nhiệm quản lý driver, bộ nhớ, tiến trình và bảo mật. Phía trên là các thư viện C/C++ (Libraries) và Android Runtime chứa máy ảo Dalvik (hoặc ART sau này) và các thư viện lõi Java. Tiếp theo là Application Framework, nơi cung cấp các API cho lập trình viên để truy cập các dịch vụ hệ thống như Activity Manager hay Notification Manager. Cuối cùng là tầng ứng dụng (Applications), nơi chứa các ứng dụng hệ thống và ứng dụng do người dùng cài đặt. Việc hiểu rõ từng thành phần và chức năng của kiến trúc Android giúp tối ưu hóa ứng dụng và gỡ lỗi hiệu quả hơn.

2.2. Quản lý chu kỳ sống của Activity và các trạng thái

Chu kỳ sống của Activity là một khái niệm nền tảng trong lập trình Android. Một Activity có ba trạng thái chính: Running (đang hoạt động và hiển thị trên màn hình), Paused (bị che một phần nhưng vẫn thấy được), và Stopped (bị che hoàn toàn). Hệ thống quản lý các Activity thông qua một ngăn xếp gọi là Activity Stack. Khi một Activity mới khởi động, nó được đẩy lên đỉnh stack. Khi người dùng nhấn nút Back, Activity hiện tại bị hủy và Activity trước đó được đưa lên. Lập trình viên phải ghi đè các phương thức như onCreate(), onStart(), onPause(), onStop(), và onDestroy() để xử lý việc khởi tạo, giải phóng tài nguyên và lưu trữ trạng thái một cách chính xác.

III. Hướng dẫn nắm vững các thành phần cốt lõi trong Android

Để xây dựng ứng dụng Android một cách chuyên nghiệp, việc nắm vững các thành phần cơ bản là tối quan trọng. Mọi dự án Android đều bắt đầu với tệp tin AndroidManifest.xml. Đây là tệp tin khai báo trung tâm, nơi định nghĩa các thành phần của ứng dụng như Activities, Services, Broadcast Receivers, và Content Providers. Nó cũng chứa các thông tin quan trọng khác như quyền truy cập (permission) mà ứng dụng yêu cầu, phiên bản SDK tối thiểu, và Activity sẽ khởi chạy đầu tiên. Một cấu hình sai trong file manifest có thể khiến ứng dụng không hoạt động đúng cách. Bên cạnh đó, ActivityIntent là hai khái niệm không thể tách rời. Activity đại diện cho một màn hình giao diện người dùng, trong khi Intent là một đối tượng thông điệp được sử dụng để yêu cầu hành động từ một thành phần khác. Intent được dùng để khởi động một Activity mới, gửi dữ liệu giữa các Activity, hoặc kích hoạt một dịch vụ hệ thống. Hiểu rõ cách sử dụng Intent tường minh (chỉ định rõ class đích) và không tường minh (chỉ định hành động và dữ liệu) là chìa khóa để tạo ra luồng điều hướng linh hoạt trong ứng dụng. Cuối cùng, tệp R.java là một tệp được sinh ra tự động, đóng vai trò quản lý tài nguyên. Nó tạo ra các định danh duy nhất cho tất cả tài nguyên trong thư mục res (layout, drawable, string,...), cho phép truy cập chúng một cách an toàn và dễ dàng từ mã Java.

3.1. Phân tích file AndroidManifest.xml Tệp tin khai báo

Tệp AndroidManifest.xml là trái tim của một ứng dụng Android. Nó phải khai báo mọi thành phần của ứng dụng trước khi hệ thống có thể chạy chúng. Thẻ <application> chứa các thuộc tính chung cho ứng dụng như icon, label và theme. Bên trong nó, mỗi <activity> sẽ định nghĩa một màn hình. Quan trọng không kém là thẻ <uses-permission>, dùng để yêu cầu các quyền cần thiết như truy cập Internet, đọc danh bạ, hay ghi vào bộ nhớ ngoài. Thẻ <uses-sdk> xác định phiên bản Android SDK tối thiểu và phiên bản mục tiêu, đảm bảo ứng dụng tương thích với các phiên bản hệ điều hành khác nhau.

3.2. Khái niệm về Activity và Intent Luồng điều hướng chính

Activity là thành phần cung cấp giao diện để người dùng tương tác. Intent là cơ chế giao tiếp chính giữa các thành phần. Để chuyển từ Activity A sang Activity B, một Intent sẽ được tạo ra và truyền vào phương thức startActivity(). Dữ liệu có thể được đính kèm vào Intent thông qua đối tượng Bundle, cho phép truyền các cặp key-value. Cơ chế này không chỉ giúp điều hướng trong ứng dụng mà còn cho phép tương tác với các ứng dụng khác, ví dụ như mở một trình duyệt web để hiển thị một URL bằng cách sử dụng một Intent với action là ACTION_VIEW.

IV. Phương pháp thiết kế giao diện và quản lý dữ liệu hiệu quả

Thiết kế giao diện người dùng (UI) và quản lý dữ liệu là hai trụ cột chính trong quá trình xây dựng ứng dụng Android. Giao diện người dùng được xây dựng từ các đối tượng ViewViewGroup. View là các thành phần cơ bản như Button, TextView, EditText. ViewGroup là các đối tượng chứa, có nhiệm vụ sắp xếp các View con theo một trật tự nhất định, còn được gọi là Layout. Android cung cấp nhiều loại Layout khác nhau như LinearLayout (sắp xếp theo hàng ngang hoặc dọc), RelativeLayout (sắp xếp dựa trên quan hệ tương đối giữa các phần tử), và TableLayout (sắp xếp theo dạng bảng). Việc lựa chọn và kết hợp các Layout một cách hợp lý giúp tạo ra giao diện linh hoạt và tương thích với nhiều kích thước màn hình. Đối với việc quản lý dữ liệu, SQLite là một giải pháp cơ sở dữ liệu quan hệ gọn nhẹ và hiệu quả được tích hợp sẵn trong Android. Nó cho phép lưu trữ dữ liệu có cấu trúc một cách bền vững ngay trên thiết bị. SQLite không yêu cầu máy chủ riêng, và toàn bộ cơ sở dữ liệu được lưu trong một file duy nhất. Điều này làm cho nó trở thành lựa chọn lý tưởng cho các ứng dụng cần lưu trữ dữ liệu cục bộ. Ngoài ra, khi ứng dụng cần tương tác với dữ liệu từ xa, việc sử dụng WebService là một phương pháp phổ biến. WebService cho phép các ứng dụng giao tiếp với máy chủ thông qua giao thức HTTP, thường sử dụng định dạng XML hoặc JSON để trao đổi dữ liệu. Giao thức SOAP (Simple Object Access Protocol) là một chuẩn để định dạng các thông điệp XML, giúp các ứng dụng viết bằng các ngôn ngữ khác nhau có thể tương tác với nhau một cách dễ dàng.

4.1. Sử dụng View và ViewGroup để xây dựng giao diện người dùng

Giao diện trong Android được tổ chức theo cấu trúc phân cấp. Mỗi màn hình là một cây gồm các đối tượng ViewViewGroup. Các Widget phổ biến bao gồm Button, ImageButton, TextView, EditText, ListViewCheckBox. Việc thiết kế giao diện thường được thực hiện thông qua các tệp XML trong thư mục res/layout. Cách tiếp cận này giúp tách biệt logic giao diện khỏi logic nghiệp vụ, làm cho mã nguồn dễ đọc và bảo trì hơn. Hàm setContentView() trong Activity được dùng để liên kết tệp XML layout với màn hình tương ứng.

4.2. Lưu trữ dữ liệu với SQLite Giải pháp CSDL gọn nhẹ

SQLite là một hệ quản trị cơ sở dữ liệu gọn nhẹ, không cần cấu hình và được tích hợp sẵn. Nó phù hợp để lưu trữ dữ liệu có cấu trúc của ứng dụng như thông tin người dùng, cài đặt, hoặc nội dung offline. Android cung cấp các lớp trợ giúp như SQLiteOpenHelper để quản lý việc tạo và cập nhật phiên bản cơ sở dữ liệu. Mặc dù các truy vấn SQL thô có thể được sử dụng, việc sử dụng các API như query(), insert(), update() giúp thao tác với dữ liệu một cách an toàn và có tổ chức hơn.

4.3. Tương tác với WebService để lấy dữ liệu từ xa

Để lấy dữ liệu từ máy chủ, ứng dụng Android thường gọi đến các WebService. Sử dụng giao thức SOAP trên nền HTTP, ứng dụng có thể gửi yêu cầu và nhận phản hồi dưới dạng XML. Thư viện như XStream có thể được sử dụng để chuyển đổi các đối tượng Java thành chuỗi XML và ngược lại một cách tự động. Điều này đơn giản hóa quá trình xử lý dữ liệu từ xa, cho phép ứng dụng hiển thị thông tin động và luôn được cập nhật mà không cần lưu trữ tất cả dữ liệu trên thiết bị.

V. Cách triển khai các Module chức năng nâng cao trong Android

Sau khi nắm vững các kiến thức cơ bản, việc xây dựng ứng dụng Android có thể tiến xa hơn bằng cách triển khai các module chức năng nâng cao. Một trong những thành phần quan trọng là Background Service. Service là một thành phần ứng dụng có thể thực hiện các hoạt động chạy ngầm trong thời gian dài mà không cần giao diện người dùng. Nó rất hữu ích cho các tác vụ như phát nhạc, tải xuống tệp tin, hoặc đồng bộ hóa dữ liệu. Một Service có thể được khởi động bằng startService() và sẽ chạy vô thời hạn cho đến khi nó tự dừng hoặc bị dừng bởi một thành phần khác. Nó cũng có chu kỳ sống riêng với các phương thức như onCreate(), onStartCommand(), và onDestroy(). Việc sử dụng Service một cách hợp lý giúp cải thiện trải nghiệm người dùng, cho phép ứng dụng tiếp tục hoạt động ngay cả khi người dùng chuyển sang ứng dụng khác. Một thành phần nâng cao khác là Content Provider. Đây là một cơ chế chuẩn để quản lý và chia sẻ dữ liệu ứng dụng một cách an toàn. Content Provider đóng vai trò như một lớp trừu tượng giữa dữ liệu và các ứng dụng khác, cho phép truy vấn, thêm, sửa, xóa dữ liệu mà không cần biết chi tiết về cách dữ liệu được lưu trữ (ví dụ như trong cơ sở dữ liệu SQLite). Hệ thống Android sử dụng Content Provider để quản lý các dữ liệu chung như danh bạ, tin nhắn, và lịch. Việc xây dựng một Content Provider cho ứng dụng của mình cho phép các ứng dụng khác truy cập dữ liệu một cách có kiểm soát và an toàn.

5.1. Triển khai Background Service cho các tác vụ chạy ngầm

Một Background Service chạy trong tiến trình chính của ứng dụng nhưng trên một luồng riêng (nếu được thiết kế đúng) để không làm ảnh hưởng đến giao diện người dùng. Service có hai chế độ hoạt động chính: started (khởi động và chạy độc lập) và bound (liên kết với một thành phần khác). Trong tài liệu gốc, ví dụ về việc sử dụng Timer bên trong onCreate() của Service để thực hiện một tác vụ lặp lại định kỳ là một cách triển khai phổ biến. Việc quản lý cẩn thận chu kỳ sống của Service là cần thiết để tránh tiêu thụ tài nguyên không cần thiết và gây tốn pin cho thiết bị.

5.2. Tích hợp Content Provider để chia sẻ dữ liệu an toàn

Content Provider quản lý quyền truy cập vào một kho dữ liệu trung tâm. Dữ liệu được truy cập thông qua một đối tượng ContentResolver và một địa chỉ Uri (Uniform Resource Identifier) duy nhất. Uri xác định nhà cung cấp (provider), bảng dữ liệu, và đôi khi là một bản ghi cụ thể. Ví dụ, Uri content://com.contacts/contacts chỉ đến dữ liệu danh bạ. Việc sử dụng Content Provider không chỉ giúp chia sẻ dữ liệu giữa các ứng dụng mà còn đảm bảo tính toàn vẹn và bảo mật, vì mọi hoạt động truy cập đều phải thông qua một giao diện được kiểm soát.

VI. Kết luận và định hướng phát triển cho ứng dụng Android

Quá trình xây dựng ứng dụng Android là một chuỗi các bước logic, từ việc hình thành ý tưởng, thiết lập môi trường, nắm vững kiến trúc, triển khai các thành phần cơ bản và nâng cao, cho đến kiểm thử và phát hành. Một quy trình hoàn chỉnh bắt đầu bằng việc phân tích yêu cầu và thiết kế hệ thống. Sau đó là giai đoạn xây dựng chương trình, bao gồm việc thiết kế giao diện người dùng với ViewViewGroup, xử lý logic nghiệp vụ trong các Activity, quản lý điều hướng bằng Intent, và lưu trữ dữ liệu với SQLite. Các chức năng nâng cao như Background ServiceContent Provider được tích hợp để cải thiện trải nghiệm và khả năng tương tác của ứng dụng. Cuối cùng, ứng dụng cần được triển khai và chạy thử trên cả máy ảo và thiết bị thật để đảm bảo tính ổn định và hiệu suất. Hệ sinh thái Android không ngừng phát triển, với các phiên bản hệ điều hành mới và các công nghệ mới ra đời liên tục. Các lập trình viên cần không ngừng học hỏi và cập nhật kiến thức về các xu hướng mới như ngôn ngữ lập trình Kotlin, kiến trúc Jetpack Compose cho giao diện người dùng, và các mô hình kiến trúc hiện đại như MVVM. Việc áp dụng những công nghệ này không chỉ giúp nâng cao chất lượng sản phẩm mà còn tối ưu hóa quy trình phát triển, tạo ra các ứng dụng mạnh mẽ, hiệu quả và dễ bảo trì hơn trong tương lai.

6.1. Tóm tắt quy trình xây dựng một ứng dụng Android

Quy trình tiêu chuẩn để xây dựng ứng dụng Android bao gồm: (1) Nghiên cứu và xác định mục tiêu. (2) Thiết lập môi trường phát triển với Android SDK và IDE. (3) Thiết kế giao diện và luồng người dùng. (4) Lập trình các thành phần cốt lõi như Activity, Service sử dụng lập trình Java hoặc Kotlin. (5) Tích hợp lưu trữ dữ liệu cục bộ (SQLite) hoặc từ xa (WebService). (6) Kiểm thử trên nhiều thiết bị và phiên bản Android. (7) Đóng gói và phát hành lên cửa hàng ứng dụng. Việc tuân thủ quy trình này giúp đảm bảo sản phẩm cuối cùng đạt chất lượng cao.

6.2. Xu hướng và tương lai của việc phát triển ứng dụng

Tương lai của việc xây dựng ứng dụng Android đang hướng đến sự đơn giản hóa và hiệu quả. Các công nghệ như Kotlin đã trở thành ngôn ngữ được ưu tiên nhờ cú pháp ngắn gọn và an toàn. Bộ công cụ Jetpack của Google cung cấp các thư viện và hướng dẫn để giải quyết các vấn đề phổ biến, giúp lập trình viên tập trung vào logic kinh doanh thay vì các chi tiết kỹ thuật phức tạp. Trí tuệ nhân tạo (AI) và học máy (Machine Learning) cũng đang được tích hợp ngày càng sâu rộng, mở ra những khả năng mới cho các ứng dụng di động thông minh hơn.

22/09/2025

Trích đoạn nội dung tài liệu

CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.1 Lịch sử android Android là hệ điều hành cho các thiết bị dị động như: điện thoại di động, máy tính bảng. Android được phát triển bởi Google và dựa trên nền tảng Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như security, memory management, process management, network stack, and driver model. Android có một cộng đồng những nhà phát triển lớn viết các ứng dụng cho hệ điều hành của mình. Hiện tại có khoảng 200.000 ứng dụng android os và 100.000 ứng dụng đã được đệ trình, điều này khiến cho android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2.

Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache. Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.1 triệu dòng mã Java và 1.2 Lịch Sử Android Ban đầu, Android là hệ điều hành dành cho các thiết bị di động cầm tay dựa trên nền tảng Linux do công ty Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White. Và sau tiếp , vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã nguồn mở(Open Handset Alliance) gồm các thành viên nổi bật trong nghành viễn thông và thiết bị càm tay như: Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola… Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đàu tiên của nó chính là nền tảng Android.

Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất, các nhà khai thác và các nhà lập trình viên thiết bị cầm tay. Android là hệ thống nền tảng phần mềm dành cho điện thoại di động bao gồm hệ điều hành, các phần tử giao tiếp trung gian(midleware) và các ứng dụng chính (key application). Phiên bản SDK (Software Development Kit) lần đàu tiên phát hành vào tháng 11- 2007, hang T-Mobile cũng công bố chiếc điện thoại Android đàu tiên đó là chiếc T- Monile G1, chiếc Smartphone đàu tiên dựa trên nền tảng Android, một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate Sinh viên: Quách Văn Hà 3 Lớp: 510CNT 1. Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android Platform.

Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ được áp dụng cho các dịch vụ mà còn được áp dụng cho các thành phần dữ liệu và giao diện người dùng. 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 co phát hành một phiên bản và lỗi 1.1 của hệ điều hành này. Ở cả hai phiên bản 1.1 Android chưa hỗ trợ bàn phím ảo mà đòi hỏi các thiết biị 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. Đến nay, Android đã trải qua nhiều phiên bản khác nhau như Android 1.2 và mới đây nhất là Android 4.3 với các tính năng ngày càng đầy đủ và hoàn thiện hơn.3 Kiến trúc của Android Mô hình thể hiện tổng quan về các thành phần của hệ điều hành Android.

Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây. Sinh viên: Quách Văn Hà 4 Lớp: 510CNT Hình 1-1 Cấu trúc stack hệ thống android 1.1 Tầng ứng dụng Android được tích hợp sẵn một ứng dụng cần thiết cơ bản như: Contacts, browser, camera, phone… tất cả các ứng dụng chạy trên đệ điều hành android điều được viết bằng Java.2 Application framework Android cung cấp một nền tảng phát triển mở, giúp cho các nhà phát triển khả năng xây dựng các ứng dụng cực kì phong phú và sang tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động… Nhà phát triển có thể truy cập vào các API (Appication programing Interface) cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế đơn giản hóa việc sử dụngcá thành phần; bất kỳ ứng dựng có thể xuất bản khả năng của mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng(có thể hạn chế bảo mật được thực thi bởi khuôn khổ).

Cơ chế này cho phép các thành phần tương tự sẽ được thay thế bởi người sử dụng. Sinh viên: Quách Văn Hà 5 Lớp: 510CNT Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm: • Một tập hợp các View có khả năng kế thùa lẫn nhau dụng để thiết kế phàn giao diện ứng dụng như: gridview, tableview, linearlayout… • Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ ứng dụng khác(chẳng hạn như Contacts) hoặc chia sẽ dữ liệu giữa các ứng dụng đó. • Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là mã nguồn, chẳng hạn như: localized strings, graphics, and layout files. • Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom alerts trong status bar.

Activity manager được dụng để quản lý chu trình sống của ứng dụng và điều hướng các activity.3 Library Android bao gồm một tập các thư viện C/C++ được sử dụng bởi các thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua thông qua nền tảng ứng dụng Android.4 Android Runtime Android bao gồm một tập cá dữ liệu cơ bản mà cung cấp hâu hết cá chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Tất cả các ứng dụng Android điều chạy trong tiến trình riêng. Máy ảo Dalvik đã được viết để cho một thiết bị có thể chạy nhiều máy ảo(Virtual Machine-VM) hiệu quả.

Các VM-Dalvik thực thi các tập tin thực thi dalvik(dex). Định dạng tối ưu hóa cho bộ nhớ tối thiểu. VM là dựa trên register-based, và chạy các lớp đã được biên dịch Java để chuyển đổi thành các định dạng dex. Các VM dalvik dựa vào nhân Linux cho chức năng có bản như luồng và quản lý bộ nhớ thấp.5 Linux kernel Android dựa trên nhân Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như security, memory management, process management, network stack, and driver mode.

Kernel Linux hoạt động như một lớp trừu tượng giữa phần cứng và phần còn lại của phần mềm Stack. Sinh viên: Quách Văn Hà 6 Lớp: 510CNT 1. Các lập trình viên Android sẽ cần phải sử dụng công cụ IDE (Integrated Development Enveronment) này để phát triển, debugging – gỡ lỗi và thử nghiệm cho ứng dụng. Tuy nhiên, các lập trình viên cũng có thể không cần phải sử dụng IDE mà thay vào đó là sử dụng dòng lệnh (command line) để biên dịch và tất nhiên là vẫn có Emulator như thường.

Android Amulator được trang bị đầy đủ hầu hết các tính năng của một thiết bị thật. Tuy nhiên, một số đã bị giới hạn như là kết nối cổng USB, Camera và video, nghe phone, nguồn điện giả lập và Bluetooth. Android Emulator thực hiện các công việc thông qua một bộ xử lý mã nguồn mở, công nghệ này được gọi là QEMU (http://bellard.org/qemu/) được phát triển bởi Fabrice Bellard.5 Các thành phần Android 1.xml Trong bất kì một Project Android nào khi tạ ra một file AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các Permission cũng như các Theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như activity sẽ chạy đầu tiên.

Sinh viên: Quách Văn Hà 7 Lớp: 510CNT File này được tự động sinh ra khi tạo một Android Project. Trong file manifest bao giờ cũng có 3 thành phần chính đó là: application, permission và version. Ví dụ về một file AndroidManifest.0"encoding="utf-8"?> <manifestxmlns:android="http://schemas.com/apk/res/android" package="dictionary.ev" android:versionCode="2" android:versionName="1.1"> <uses-sdkandroid:minSdkVersion="7"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <activity android:name=".main" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.MAIN"/> <categoryandroid:name="android.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".Detail"> <intent-filter> <actionandroid:name="android.DETAIL"/> <categoryandroid:name="android.DEFAULT"/> Sinh viên: Quách Văn Hà 8 Lớp: 510CNT </intent-filter> </activity> </application> <uses- permissionandroid:name="android.WRITE_EXTERNAL_STORAGE"> </uses-permission> <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true"> </supports-screens> </manifest> 1.1 Application Thẻ <application> bên trong thể này chứa các thuộc tính được định nghĩa cho ứng dụng Android như: • Android icon=” drawable resource”: ở đây đường dẫn đến file icon của ứng dụng khi cài đặt. VD: android:icon=”@drawable/icon”.

• Android:name=”string”: thuộc tính này dùng để đặt tên cho ứng dụng Android. Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng. • Android:theme=”drawable them”: thuộc tính này dùng để đặt them cho ứng dụng. Các theme là cách để hiển thị giao diện ứng dụng.

Ngoài ra còn nhiều thuộc tính khác.2 Permission Bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của ứng dụng. Khi cần sử dụng một nguồn tài nguyên nào đó thì trong file manifest của ứng dụng cần phải khai báo quyền truy xuất. + Quyền đọc danh bạ: Sinh viên: Quách Văn Hà 9 Lớp: 510CNT <uses-permission android:name="android.READ_PHONE_STATE"/> Quyền quản lý tài khoản: <uses-permission android:name="android.ACCOUNT_MANAGER"/> + quyền cho phép thực hiện cuộc gọi: <uses-permission android:name="android.3 SDK version Thẻ xác định phiên bản SDK được khai báo như sau. <use-sdk android:minSdkVerssion=”7”> 1.java là file được tự động sinh ra ngay khi tạo ứng dụng, file này được sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng và tài nguyên hình ảnh.java được tự động sinh ra khi có bất kì một sự kiện nào sảy ra làm thay đổi các thuộc tính trong ứng dụng.

Chẳng hạn như, bạn kéo thả một file hình ảnh từ bên ngoài vào Project thì ngay lập tức thuộc tính đường dẫn đến file đó sẽ được hình thành trong file R.java hoạc xóa một file hình ảnh đường dẫn tướng ứng đến hình ảnh đó cũng tự động bị xóa.java hoàn toàn không phải đụng chạm gì đến trong quá trình xây dựng ứng dụng. Ví dụ một file R.java /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found.

It * should not be modified by hand.com; Sinh viên: Quách Văn Hà 10 Lớp: 510CNT public final class R { public static final class array { public static final int teo=0x7f060000; } public static final class attr { } public static final class dimen { /** Default screen margins, per the Android Design guidelines. Customize dimensions originally defined in res/values/dimens.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ