TỔNG QUAN VỀ LẬP TRÌNH ANDROID – CÀI ĐẶT ANDROID STUDIO
Hệ điều hành Android
- Năm 2003, Android Inc được thành lập bởi Andy Rubin, Rich Miner, Nick Sears và Chris White tại California
- Năm 2005, Google mua lại Android Inc và bắt đầu nuôi ý tưởng tự sản xuất điện thoại di động
Năm 2007, tổ chức OHA (Open Handset Alliance) được thành lập với sự tham gia của hơn 80 công ty trong lĩnh vực kỹ thuật điện tử, bao gồm các công ty phần cứng, phân phối thiết bị di động, phần mềm và sản xuất chất bán dẫn.
Có thể kể đến một số công ty nổi tiếng như Samsung, Motorola, LG, HTC, T- Mobile, Vodafone, ARM và Qualcomm…
- Năm 2008, Google ra mắt chiếc di động đầu tiên đồng thời open source bản SDK (Software Development Kit) phiên bản 1.0
- Năm 2010, Google khởi đầu dòng thiết bị Nexus với thiết bị đầu tiên của HTC là Nexus One
- Năm 2013, ra mắt loạt thiết bị phiên bản GPE
- Năm 2014, Google công báo Android Wear, hệđiều hành dành cho các thiết bị đeo được
- Các phiên bản của hệ điều hành Android:
Hình 1.1 Các phiên bản hệđiều hành Android
Phiên bản API Thời gian phát hành Đặc điểm nổi bật
Thanh thông báo kéo từ trên xuống, màn hình chính phong phú, tích hợp chặt chẽ với Gmail, giao diện đơn giản nhưng khá đẹp mắt thời bấy giờ
Tải và cài đặt bản cập nhật ngay trên thiết bị, không cần kết nối với máy tính (phương thức Over The Air)
Android phiên bản đầu tiên được Google đặt tên theo các món đồ ăn theo thứ tự chữ cái, mang đến nhiều tính năng nổi bật như bàn phím ảo, khả năng mở rộng cho widget, cải tiến clipboard, tính năng quay phim, và cho phép tải ảnh, video lên YouTube cũng như truy cập danh bạ trong Google Talk.
Một vài điểm trong giao diện được cải thiện, hỗ trợ mạng CDMA, hỗ trợ các thành phần đồ họa độc lập với độ phân giải, tính năng Quick
Hộp tìm kiếm cho phép người dùng tìm kiếm mọi thứ chỉ trong một chỗ, trong khi Android Market cung cấp danh sách các ứng dụng miễn phí và trả phí hàng đầu Bên cạnh đó, camera được cải thiện với tính năng tích hợp trình xem ảnh tốt hơn.
Hỗ trợ nhiều tài khoản người dùng, tính năng
Quick Contact đã cải tiến bàn phím ảo, mang đến trải nghiệm người dùng tốt hơn Trình duyệt mới hỗ trợ HTML5 và cho phép phát video ở chế độ toàn màn hình Hộp địa chỉ được kết hợp với thanh tìm kiếm, giúp người dùng dễ dàng phóng to, thu nhỏ chỉ bằng cách chạm vào màn hình Giao diện hiện nay đẹp, sang trọng và gọn gàng hơn trước, nâng cao tính thẩm mỹ và sự tiện lợi.
Eclair 7 01/2010 Hỗ trợ Live Wallpaper, chuyển giọng nói thành văn bản và một màn hình khóa mới
Từ 3 màn hình chính, giờ đây người dùng có thể nâng cấp lên 5 màn hình Dãy nút kích hoạt nhanh cho chế độ gọi điện, duyệt web và App Drawer đã được bổ sung Hệ thống hỗ trợ hiển thị hình ảnh 3D và tính năng trạm phát Wifi cũng đã xuất hiện, cùng với khả năng duyệt web hỗ trợ Flash.
Tính năng di chuyển một phần ứng dụng từ bộ nhớ máy sang thẻ nhớ
Trong phiên bản mới, có hai thanh chặn hỗ trợ khi chọn văn bản, cùng với bàn phím được cải thiện về tính thẩm mỹ và tính năng sử dụng Ngoài ra, xuất hiện công cụ quản lý pin và ứng dụng, hỗ trợ máy ảnh trước, cung cấp nhiều tính năng mới, đặc biệt chú trọng vào phát triển game, đa phương tiện và các phương thức truyền thông hiện đại.
Phiên bản này dành riêng cho máy tính bảng
Sử dụng màu đen và màu xanh dương làm tông màu chủ đạo Homescreen và widget được thiết kế lại Không còn nút nhấn vật lý
Cải thiện đa nhiệm – xuất hiện nút Recent Apps giúp chuyển đổi ứng dụng dễ dàng và nhanh chóng Thanh Action Bar xuất hiện
Phiên bản Android 3.1 và 3.2 sửa lỗi và thêm vài tính năng mới như thay đổi kích thước widget ngay trên homescreen, hỗ trợ thẻ SD,
Hỗ trợ bộ font Roboto Hệ thống thông báo
Noitification đã được làm mới hoàn toàn, mang lại vẻ đẹp và sự tiện lợi hơn Bàn phím cũng được cải tiến để nâng cao trải nghiệm người dùng Hệ điều hành cho smartphone và máy tính bảng đã được hợp nhất, giúp duyệt web nhanh hơn và tối ưu hóa hiệu suất hoạt động của thiết bị, đồng thời kéo dài thời gian sử dụng pin.
Màn hình Lockscreen - vòng trượt mở khóa dùng kích hoạt 3 tính năng khác nhau : mở khóa máy, sử dụng camera, kích hoạch Google Now (Android
4.0 có 2 tính năng: mở khóa máy, sử dụng camera) Khả năng tìm kiếm bằng giọng nói, kết quả trả về được thiết kế theo dạng thẻ đồ họa, thông minh hơn, trực quan hơn Project butter giúp mang lại độ mượt mà chưa từng có cho Android
Miracast hỗ trợ chia sẻ nội dung qua kết nối Wi-Fi, cho phép người dùng truyền tải hình ảnh và video một cách dễ dàng Bàn phím có tính năng nhập liệu bằng cách vẽ các đường nét giữa các ký tự, mang lại trải nghiệm sử dụng thuận tiện Ngoài ra, chế độ chụp ảnh toàn cảnh Photo Sphere giúp người dùng ghi lại những khoảnh khắc rộng lớn Đặc biệt, thiết bị còn hỗ trợ nhiều tài khoản người dùng trên máy tính bảng, đáp ứng nhu cầu sử dụng đa dạng.
Android 4.3 18 07/2013 Hỗ trợ kết nối Bluetooth Smart, bộ API
Jelly Bean ES 3.0 introduces Wi-Fi positioning capabilities, allowing users to determine their location even when the connection is disabled It also features Restricted Profile support and Notification Access, enhancing user control and privacy.
Hiệu suất của RAM 512 MB được cải thiện, cho phép chạy KitKat với hiệu năng cao gấp 1,6 lần so với phiên bản trước Giao diện được làm phẳng hơn, kết hợp với dịch vụ tìm kiếm Google Search giúp dò và tự động liên kết các danh bạ từ internet vào số điện thoại mới Ngoài ra, Text Messages và Hangouts được gộp chung, cùng với việc bổ sung các biểu tượng mới.
Emoji vào bàn phím mặc định Tính năng Screen Recording cho phép ghi các hoạt động diễn ra trên màn hình thành các đoạn video MP4
Hình ảnh trên thiết bị giờ đây phẳng hơn và đa dạng màu sắc hơn, đi kèm với chức năng “T action” cho phép người dùng thực hiện các thao tác cụ thể bằng cách lắc máy Tính năng tự động trả lời cuộc gọi khi đưa máy lên tai và giảm âm lượng chuông khi nhấc máy khỏi bàn mang lại sự tiện lợi Người dùng có thể dễ dàng nhận và phản hồi thông báo như email, tin nhắn và cuộc gọi nhỡ ngay trên màn hình khóa Thêm vào đó, thiết bị cũng tiết kiệm pin và nâng cao tính bảo mật.
(Chưa có tên chính thức)
Thiết kế lại quyền hạn của các ứng dụng
Chrome Custom Tabs là tính năng mới trên trình duyệt Chrome, cho phép các nhà phát triển tích hợp nội dung trang web đầy đủ vào ứng dụng của họ Tính năng này cho phép mở nội dung trực tiếp bằng các ứng dụng liên quan, đồng thời hỗ trợ hệ thống thanh toán di động mới mang tên Android.
Pay Cải thiện độ ổn định, hiệu suất cũng như khả năng tiết kiệm pin Hỗ trợ cổng kết nối USB TypeC thế hệ mới
B ả ng 1-1 Các phiên b ả n h ệ điề u hành Android
1.1.1 Xu th ế phát tri ể n công ngh ệ di độ ng
Theo các chuyên gia công nghệ hàng đầu từ Microsoft, Google, IBM, hiện nay có ba xu hướng toàn cầu nổi bật: Mạng xã hội và bảo mật, công nghệ di động, và phân tích Big Data.
(phân tích dữ liệu lớn), Cloud (Điện toán đám mây)
Vào tháng 01/2014, báo cáo “Bối cảnh dữ liệu toàn cầu” của WeAreSocial đã tiết lộ những chỉ số phát triển ấn tượng của Thế Giới Số, cho thấy sự tăng trưởng mạnh mẽ trong lĩnh vực này.
Sốlượng đăng kí sử dụng di động đang hoạt động vào khoảng 93% của dân số thế giới
Tỉ lệ người kết nối Internet toàn cầu đạt 35%, tương đương 2,5 tỉ người
Các kênh Mạng xã hội tiếp tục phát triển mạnh mẽ trong 12 tháng qua, khi đạt tỉ lệ thâm nhập người dùng là 26%
Hơn 4 tỉngười trên khắp thế giới hiện đang sở hữu ít nhất một chiếc điện thoại di động
Hình 1.2 Bối cảnh dữ liệu toàn cầu - Nguồn: WeAreSocial - Tại Việt Nam:
Môi trường phát triển ứng dụng Android
Android SDK (Software Development Kit) và JDK (Java Development Kit) là hai công cụ thiết yếu để lập trình ứng dụng Android Để nâng cao trải nghiệm lập trình, việc sử dụng một IDE (Integrated Development Environment) sẽ rất hữu ích Eclipse được coi là một trong những công cụ hỗ trợ tốt nhất cho việc phát triển ứng dụng Android.
- Android SDK, JDK và Eclipse đều có mặt trên một số phiên bản hệ điều hành
Windows, Mac OS và Linux cho phép lập trình viên làm việc trên hệ điều hành mà họ quen thuộc Hơn nữa, việc phát triển ứng dụng trên Android diễn ra trên máy ảo Dalvik, vì vậy quá trình phát triển là tương tự trên cả ba môi trường này.
Android Studio, công cụ lập trình chính thức của Google, lần đầu tiên được phát hành vào tháng 5/2013 với phiên bản 0.1 Đến tháng 5/2015, phiên bản 1.2.1 đã ra mắt, và phiên bản 1.3 được công bố tại sự kiện Google I/O 2015.
IntelliJ cung cấp nhiều tính năng vượt trội hơn so với ADT, bao gồm hỗ trợ xây dựng dự án Gradle, sửa lỗi nhanh và tái sử dụng cấu trúc phương thức Nó cũng cung cấp công cụ kiểm tra tính khả dụng, khả năng hoạt động của ứng dụng và tương thích nền tảng Bên cạnh đó, IntelliJ hỗ trợ bảo mật mã nguồn và đóng gói ứng dụng, cùng với trình biên tập giao diện giúp người dùng có cái nhìn tổng quan về ứng dụng và các thành phần, cho phép tùy chỉnh trên nhiều cấu hình khác nhau Cuối cùng, IntelliJ cho phép tương tác dễ dàng với nền tảng Google Cloud.
Android Studio, với mục tiêu tạo ra môi trường phát triển toàn diện, liên tục cho ra mắt các phiên bản cải tiến nhằm mang đến trải nghiệm nhanh chóng và mượt mà hơn so với các IDE khác.
Cài đặt Android Studio
Ứng dụng Android được thực thi trên máy ảo Dalvik, cho phép lập trình trên nhiều phiên bản hệ điều hành khác nhau Để phát triển ứng dụng, cần sử dụng Microsoft® Windows® 8/7/Vista/2003 (32 hoặc 64-bit), với yêu cầu tối thiểu là 2 GB RAM và dung lượng ổ đĩa trống ít nhất 400 MB Ngoài ra, cần ít nhất 1 GB cho Android SDK, emulator system images và caches, cùng với độ phân giải tối thiểu 1280 x 800 Yêu cầu cũng bao gồm Java Development Kit (JDK) 7 trở lên, và nếu sử dụng trình giả lập tăng tốc, cần hỗ trợ bộ xử lý Intel® với các phiên bản như Intel® VT-x, Intel® EM64T (Intel® 64) và tính năng Execute Disable (XD) Bit.
To begin developing applications with Android Studio, you need to download and install two essential software packages: the Java JDK, which should be installed first and it's recommended to choose the latest version, and Android Studio itself The Android Studio package includes several components: the Android Studio IDE, Android SDK tools, the Android 5.0 (Lollipop) platform, and the Android 5.0 emulator system image with Google APIs.
- Sau khi tải bộ cài Android Studio thành công, chúng ta chạy tập tin android – studio – bundle để tiến hành cài đặt Android Studio → màn hình Welcome to
Android Studio Setup xuất hiện → Next:
- Nếu hệ thống không phát hiện ra JDK trong máy tính của bạn, một hộp thoại yêu cầu chỉ rõ đường dẫn hoặc cài đặt JDK xuất hiện:
Nếu bạn đã cài đặt JDK, hãy tìm đường dẫn đến thư mục cài đặt Sau đó, nhấn Next để tiếp tục Một hộp thoại sẽ xuất hiện để bạn lựa chọn cấu hình cài đặt; hãy đảm bảo chọn đủ các thành phần cần thiết như hình minh họa bên dưới.
- Xuất hiện hộp loại thông báo các điều khoản và một sốlưu ý khi sử dụng Android Studio → chọn I Agree:
- Xuất hiện hộp thoại yêu cầu chọn nơi cài đặt Android Studio và Android SDK như sau:
Afterward, click Next to proceed with the installation process The Start Menu selection dialog will appear; choose Android Studio and click Install to continue the installation.
- Khi quá trình cài đặt hoàn tất, nhấn Next để tiếp tục:
- Hộp thoại cuối cùng của quá trình cài dặt xuất hiện, chọn Finish để kết thúc quá trình cài đặt:
Hình 1.15 Ở lần khởi động đầu tiên, một hộp thoại “import” bản Android Studio cũ xuất hiện, nếu bạn cài đặt mới thì chọn như hình dưới → chọn OK:
- Vì là lần đầu tiên khởi động nên Android Studio phải cập nhật một vài thứ cho quá trình làm việc sau này:
- Khi hoàn tất quá trình cập nhật, nhấn Finish để kết thúc và hoàn thành quá trình cài đặt
Tạo danh sách các phiên bản hệ điều hành Android từ phiên bản 5 đến nay
Cài đặt Android Studio với bộ SDK để từ phiên bản 5 trở lên Loại bỏ các phiên bản cũ hơn
Những trọng tâm cần chú ý trong bài:
- Hiểu được các khái niệm về hệ điều hành Android
- Hiểu được kiến trúc của hệ điều hành Android
- Biết được các môi trường phát triển ứng dụng của hệ điều hành Android
- Thực hiện cài đặt thành công Android Studio trên hệ thống máy vi tính
Yêu cầu vềđánh giá kết quả học tập:
+ Về kiến thức: Trình bày được các khái niệm về hệ điều hành Android, kiến trúc của hệ điều hành Android
+ Về kỹ năng:cài đặt thành công Android Studio trên hệ thống máy vi tính
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
Kiến thức được đánh giá qua các hình thức kiểm tra viết, trắc nghiệm và phỏng vấn Kỹ năng được thể hiện qua khả năng cài đặt thành công Android Studio trên hệ thống máy tính.
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc.
CÁC THÀNH PHẦN GIAO DIỆN TRÊN ANDROID STUDIO
Khởi tạo dự án
Khởi chạy Android Studio, xuất hiện màn hình “Welcome to Android Studio”
→ chọn Start a new Android Studio project để tạo dự án Android Studio (Android Studio project) mới như sau:
Hộp thoại tiếp theo xuất hiện yêu cầu đặt tên cho ứng dụng và tên domain như hình sau:
Application name: là tên của ứng dụng
Tên miền công ty là sự kết hợp giữa tên công ty và tên ứng dụng, tạo thành một package cần thiết để đưa ứng dụng của bạn lên Google Play Store.
Pakage name: Tên của gói ứng dụng của bạn Dùng để phân biệt với các gói khác trên Google Play Store
Project location: Nơi lưu trữứng dụng của bạn
Sau khi nhập đầy đủ thông tin như tên ứng dụng, domain và vị trí lưu dự án, bạn hãy nhấn "Next" để tiếp tục Tiếp theo, một hộp thoại sẽ hiện ra cho phép bạn chọn thiết bị mà bạn muốn phát triển ứng dụng.
Chọn như hình trên nếu muốn phát triển ứng dụng trên điện thoại (phone) và tablet Sau đó nhấn, Next để tiếp tục
Chú ý rằng Minimum SDK là phiên bản thấp nhất yêu cầu để ứng dụng có thể hoạt động, và một số phương thức API sẽ được bổ sung thông qua thư viện hỗ trợ.
Chọn Blank Activity và nhấn Next Hộp thoại nhập thông tin của Activity xuất hiện như sau:
Tên lớp lưu giữ mã nguồn là yếu tố quan trọng trong việc phát triển ứng dụng Tên tập tin XML đóng vai trò là giao diện cho lớp hoạt động, giúp tạo ra trải nghiệm người dùng mượt mà Tiêu đề hiển thị khi kích hoạt activity trên thiết bị cũng cần được đặt tên hợp lý để thu hút sự chú ý của người dùng.
Menu Resource Name: Tên tập tin xml để tạo menu cho phần mềm
Sau khi nhập đầy đủ thông tin, nhấn Finish để kết thúc Chờ “building” dự án xong là hoàn tất việc tạo dự án.
Cấu trúc dự án
Sau khi hoàn tất việc tạo dự án, bước tiếp theo là mở dự án đó để kiểm tra cấu trúc của nó Màn hình hiển thị sẽ tương tự như hình ảnh dưới đây.
Màn hình làm việc được chia thành 7 phần, mỗi phần có chức năng riêng biệt để người dùng dễ dàng tương tác Phần 1 là thanh công cụ tiện lợi, hỗ trợ các tác vụ cần thiết trong quá trình làm việc.
Nó giúp chúng ta thao tác nhanh các chức năng thường dùng khi lập trình, chi tiết như sau:
Biểu tượng dùng để mở một tập tin (file) hay một dự án (Project)
Biểu tượng dùng dể lưu lại tất cả các tập tin trong dự án (Save All)
Chúng ta cũng có thểdùng phím Ctrl + S để thực hiện chức năng này thay vì chọn biểu tượng
Biểu tượng đồng bộ hóa tập tin giúp tìm kiếm và tải lại tất cả các tập tin đã thay đổi từ bên ngoài từ ổ đĩa cứng.
Chúng ta có thể dùng phím Ctrl + All +Y để thực hiện chức năng này thay vì chọn biểu tượng này
Biểu tượng Undo và Redo cho phép người dùng quay lại các hành động đã thực hiện trước đó hoặc tiến hành các hành động đã bị hủy Ngoài việc sử dụng các biểu tượng này, người dùng còn có thể áp dụng phím tắt Ctrl + Z để hoàn tác và Ctrl + Shift + Z để làm lại hành động.
Biểu tượng để “cut” tập tin hoặc hình ảnh đến Clipboad Có thể sử dụng phím Ctrl + X để thực hiện chức năng này thay vì chọn biểu tượng này
Biểu tượng sao chép cho phép người dùng nhanh chóng chuyển tập tin hoặc hình ảnh vào Clipboard Ngoài việc nhấn vào biểu tượng, bạn cũng có thể sử dụng phím tắt Ctrl + C để thực hiện chức năng này một cách tiện lợi.
Biểu tượng dán cho phép người dùng dán tập tin hoặc hình ảnh từ Clipboard vào tài liệu hoặc trang web đang mở Thao tác này cũng có thể được thực hiện bằng cách sử dụng tổ hợp phím tắt Ctrl + V, giúp tăng tốc độ và hiệu suất làm việc.
Biểu tượng để chạy (run) ứng dụng Chúng ta cũng có thể dùng phím Shift + F10 thay vì chọn biểu tượng này
Biểu tượng để “debug” ứng dụng Chúng ta cũng có thể dùng phím Shift + F9 thay vì chọn biểu tượng này
Biểu tượng là Android Virtual Device Manager (AVD Manager) cho phép tạo và quản lý các thiết bị ảo
Biểu tượng SDK Manager là công cụ quản lý phiên bản Android, cung cấp các biểu tượng quan trọng cho lập trình viên Ngoài các biểu tượng thường sử dụng, còn có nhiều biểu tượng khác mà bạn có thể khám phá thêm Phần 2 của bài viết tập trung vào cấu trúc hệ thống của ứng dụng.
Chúng ta cũng có thểthay đổi cách hiển thị(thường đặt mặc định là Android)
Cấu trúc dự án có thể chia thành phần sau:
Thư mục src chứa các file mã nguồn java cho dự án, trong khi thư mục gen chứa file R.java, một file được trình biên dịch sinh ra để tham chiếu tới tất cả tài nguyên trong dự án, không nên chỉnh sửa Thư mục bin chứa các file *.apk được build bởi ADT Thư mục res/drawable-hdpi chứa các đối tượng drawable thiết kế cho màn hình có độ phân giải cao, còn thư mục res/layout lưu trữ các file layout cho thiết kế giao diện Cuối cùng, thư mục res/values dành cho các file XML chứa tập hợp tài nguyên như định nghĩa về strings và colors.
AndroidManifest.xml: chứa thông tin cài đặt ứng dụng
Thư mục assets chứa tất cả các tập tin không biên dịch như âm thanh, hình ảnh và tập tin CSDL của ứng dụng Phần 3 là rất quan trọng cho những người mới bắt đầu lập trình, vì đây là nơi hiển thị các điều khiển mà Android hỗ trợ, cho phép bạn kéo thả trực tiếp vào phần 4 (Giao diện thiết bị) để thiết kế.
Chú ý ở góc trái có 2 phần là Design và Text, với:
Phần “Design”: cho phép thiết kế giao diện bằng cách kéo thả o Phần “Text”: phép chúng ta thiết kế giao diện bằng cách viết thẻ XML
34 o Phần 4: là vùng giao diện thiết bị
Cho phép kéo thả các điều khiển vào đây, với tùy chọn hiển thị theo chiều ngang hoặc dọc, cùng khả năng phóng to, thu nhỏ và căn chỉnh điều khiển Ngoài ra, bạn có thể chọn loại thiết bị hiển thị phù hợp Phần 5 rất quan trọng khi màn hình của bạn có nhiều điều khiển.
Nó hiển thị giao diện theo dạng cấu trúc cây nên bạn dễ dàng quan sát và lựa chọn điều khiển khi chúng bị chồng lập trên giao diện
Hình 1.28 o Phần 6: cho phép thiết lập trạng thái hay thuộc tính cho các điều khiển trên giao diện
Vai trò của tập tin AndroidManifest.xml:
Lưu trữ thông tin tên gói ứng dụng, tồn tại duy nhất một tên gói cho mỗi ứng dụng
Ví dụ: com.htsi.myfirstapp
Cho biết ứng dụng sử dụng các thành phần nào, mỗi thành phần được khai trong một cặp thẻ
Ví dụ: …. Định nghĩa tiến trình quản lý các thành phần ứng dụng Định nghĩa các quyền sử dụng API và truy xuất ứng dụng khác
Qui định các yêu cầu khi được ứng dụng khác truy xuất
Khai báo cấp độ API tối thiểu xây dựng ứng dụng
Khai báo các thư viện có liên quan.
Cập nhật Android API
Như đã đề cập ở phần cấu trúc dự án (3.3.2 – Phần 1) để cập nhật Android API, chúng ta sử dụng công cụ SDK Manager
SDK Manager là công cụ quản lý các phiên bản Android, cung cấp tài liệu hướng dẫn, ví dụ minh họa và phương thức API cho từng phiên bản Để khởi động SDK Manager, bạn chỉ cần nhấn vào biểu tượng, sau đó ADT sẽ tự động cập nhật các gói mới Người dùng có thể lựa chọn phiên bản Android hoặc công cụ cần thiết và nhấn "Install Packages" để cài đặt.
Hình 1.31 Tải và cài đặt bộ SDK với SDK Manager
Chú ý: o Các gói cần được cài đặt:
SDK Platform (phiên bản mới nhất):
Google USB Driver (chỉ yêu cầu trên hệ điều hành Windows)
Intel x86 Emulator Accelerator (HAXM installer).
Cài đặt và sử dụng A ndroid Virtual Device (AVD)
Android Virtual Device Manager (AVD Manager) giúp lập trình viên tạo và quản lý các thiết bị ảo dễ dàng Để bắt đầu tạo thiết bị ảo, chỉ cần nhấp vào biểu tượng AVD Manager trên thanh công cụ của Android Studio, sau đó một hộp thoại mới sẽ hiện ra cho phép bạn chọn "Create a virtual device".
Xuất hiện hộp thoại “Virtual Device Configuration” cho phép bạn chọn thiết bị muốn tạo như sau:
Please note that we can customize the name, device type, memory capacity, and more for the device we want to create by selecting the Clone Device button, which will bring up the Configure Hardware Profile dialog.
Device Name: tên thiết ảo cần tạo (thường đặt tên theo phiên bản)
Device Type: loại thiết bị muốn tạo, có các lựa chọn: Phone/ Tablet, Android Wear, Android TV
Screen: độ rộng và độ phân giải cho màn hình
Memory: bộ nhớ thiết bị
Tiếp theo, chúng ta chọn Next để tiếp tục quá trình tạo máy ảo → xuất hiện hộp thoại cho phép chọn phiên bản hệđiều hành muốn tạo:
Hình 1.36 Để cấu hình nâng cao, chúng ta chọn Show Advanced Settings
Chọn Finish để hoàn thành quá trình tạo máy ảo
Tạo project mới, với Activity khởi đầu có TextView hiển thị tên của mình
Tạo project mới có sẵn 2 Activity, chỉnh sửa nội dung của 2 activity để hiển thị tên của mình ở cả 2 activity
Những trọng tâm cần chú ý trong bài:
- Biết cách bắt đầu một dự án trên Android Studio
- Trình bày được cấu trúc của một dự án được phát triển trên Android Studio
- Biết được cách thức cập nhật Android API
- Cài đặt và sử dụng được Android Virtual Device
Yêu cầu vềđánh giá kết quả học tập:
+ Về kiến thức: Trình bày được cấu trúc của một dự án được phát triển trên Android Studio
+ Về kỹ năng:Cài đặt và sử dụng được Android Virtual Device
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp + Về kỹ năng: Cài đặt và sử dụng được Android Virtual Device
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
ACTIVITY – VÒNG ĐỜI CỦA MỘT ACTIVITY
Các thành phần trong ứng dụng Android
Trong một ứng dụng Android thường chúng ta sẽ gặp 8 thành phần cơ bản sau:
Trong ứng dụng Android, Activity là một màn hình cho phép người dùng tương tác với các chức năng của ứng dụng, chẳng hạn như chụp ảnh, xem bản đồ và gửi email.
Một ứng dụng có thể có một hoặc nhiều Activity, Activity được khởi chạy đầu tiên khi ứng dụng hoạt động được gọi là “MainActivity”
Activity có thể hiển thịở chế toàn màn hình, hoặc ở dạng cửa sổ với một kích thước nhất định
Các Activity có thể gọi đến các Activity khác, Activity được gọi sẽ nhận được tương tác ở thời điểm đó
Intent là một thành phần quan trọng trong ứng dụng, giúp truyền tải thông điệp và tạo ra các yêu cầu hành động giữa các thành phần trong ứng dụng hoặc giữa các ứng dụng khác nhau Nó thường được sử dụng trong ba trường hợp chính.
Khởi động Activity o Khởi động Service
Chuyển phát thông tin cho Broadcast Receiver
View được sử dụng để tạo ra các điều khiển trên màn hình, cho phép người dùng tương tác và hiển thị thông tin cần thiết.
View bao gồm hai dạng:
View: các điều khiển đơn lẻ
ViewGroup: tập hợp nhiều điều khiển đơn lẻ
Thành phần ứng dụng cho phép gửi thông báo trên toàn hệ thống mà không cần giao diện, thông qua thanh trạng thái Broadcast Receiver truyền tải thông báo dưới hai dạng khác nhau.
Hệ thống cung cấp thông báo trực tiếp như tắt màn hình, pin yếu và thay đổi kết nối Ứng dụng cũng có khả năng truyền thông báo đến các thành phần bên trong, bao gồm khởi động Service và tải nội dung đến ứng dụng.
Service được sử dụng để thực thi các tác vụ cần nhiều thời gian, thực hiện ở chếđộ ngầm và thường không cần giao diện hiển thị
Service được chạy ngầm, tức lại ứng dụng vẫn chạy nhưng không hiển thị giao diện tương tác
Một số tác vụ cần thực hiện bằng Service:
Trình diễn các tập tin đa truyền thông như nhạc, phim… o Kết nối và thực hiện tải các nội dung thông qua Internet
Truy xuất đọc ghi tập tin
Content Provider cho phép truy xuất và quản lý dữ liệu ứng dụng từ nhiều nguồn khác nhau, bao gồm SQLite, tập tin, tài nguyên Web và các thư mục lưu trữ khác.
Có thể sử dụng Content Provider để xây dựng các ứng dụng sử dụng chung nguồn tài nguyên hoặc sử dung riêng
Trong Android, một số Content Provider được xây dựng sẵn:
Tài nguyên đa truyền thông o Lịch
Context thuộc gói android.content (android.content.Context)
Lớp cơ bản của Android chứa hầu hết thông tin về môi trường ứng dụng, cho thấy rằng mọi thao tác và tương tác với hệ điều hành đều phải đi qua lớp này.
Nó cung cấp các phương thức để các lớp khác có thểtương tác với hệ thống Android
Context cho phép truy cập vào các nguồn tài nguyên đã được định nghĩa và các lớp khác, đóng vai trò như một lớp ở mức ứng dụng, liên quan đến hệ thống.
Hầu hết các lớp liên quan đến giao diện người dùng (UI) như layout, button, textview, imageview và listview đều cần phải kế thừa từ lớp Context, vì Context đóng vai trò quan trọng trong việc truy cập các tài nguyên như R.id và R.layout Nếu không tham chiếu đến lớp Context, chúng ta sẽ không thể sử dụng các tài nguyên mà mình đã tạo ra.
Context giúp người dùng dễ dàng truy cập và tương tác với các tài nguyên trong hệ thống, bao gồm thông tin, dịch vụ, thông số cấu hình, dữ liệu, danh bạ, cuộc gọi, kết nối và chế độ rung.
Thành phần thông báo cho phép gửi thông tin đến người dùng mà không làm gián đoạn quá trình sử dụng thiết bị Khi nhận được tin nhắn hoặc email, thiết bị sẽ sử dụng thông báo để cảnh báo người dùng thông qua âm thanh, đèn nền và hiển thị biểu tượng trên thanh tác vụ.
Notification được xây dựng cho mục đích gửi các thông báo đến người dùng thông qua thanh trạng thái
Giao diện Notification không thuộc giao diện ứng dụng, nhưng có thể tuỳ chỉnh giao diện Notification thông qua các phương thức có sẵn
Activity và độ ưu tiên ứng dụng
Trong một ứng dụng Android, người dùng tương tác với nhiều Activity, vì một ứng dụng không thể chỉ có một Activity duy nhất Trong quá trình lập trình, việc chuyển đổi giữa các Activity và truyền dữ liệu giữa chúng là điều cần thiết.
Activity trước sang Activity mới để có thể xử lý
Mỗi Activity đại diện cho một màn hình ứng dụng Ta sẽ thực hiện tạo Activity cho ứng dụng theo các bước sau:
Tạo mới lớp kế thừa từ lớp Activity o Thực thi các phương thức quản lý trạng thái
Xây dựng giao diện trong tài nguyên res/layout
Khai báo Activity trong tập tin AndroidManifest.xml
Ví dụ: public class MyFirstActivity extends Activity{
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
} Đăng kí Activity trong tập tin AndroidMannifest.xml:
2.1 Quản lý trạng thái Activity (Managing the Activity Lifecycle)
Activity là thành phần quan trọng nhất trong việc xây dựng ứng dụng Android Hệ điều hành Android quản lý Activity theo dạng stack, trong đó khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu stack và trở thành Activity đang chạy Các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng.
Tương tựnhư các ngôn ngữ lập trình khác, Activity Stack hoạt động theo cơ chế LIFO (LAST IN FIRST OUT)
Mỗi Activity mới sẽ xuất hiện trên Activity cũ, và để quay lại Activity trước đó, bạn chỉ cần nhấn nút “Back” hoặc sử dụng lệnh tương ứng.
Home rồi thì sẽ không thể dùng nút “Back” để quay lại màn hình cũ được
Một Activity cơ bản có 4 trạng thái:
Active: Activity đang hiển thị trên màn hình (foreground)
Khi một hoạt động bị tạm dừng, nó vẫn hiển thị trên màn hình nhưng không thể tương tác, dẫn đến tình trạng mất tập trung Ví dụ, khi một hoạt động mới xuất hiện và giao diện của nó chồng lên hoạt động cũ, nếu giao diện mới nhỏ hơn, người dùng vẫn có thể thấy một phần của giao diện cũ, nhưng không thể thực hiện bất kỳ hành động nào trên đó.
Stopped: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stopped
Khi hệ thống thiếu bộ nhớ, nó sẽ giải phóng các tiến trình dựa trên nguyên tắc ưu tiên Các Activity đang ở trạng thái dừng hoặc tạm dừng cũng có thể bị giải phóng Khi các Activity này được hiển thị lại, chúng sẽ cần khởi động lại hoàn toàn và phục hồi trạng thái trước đó.
2.2 Vòng đời của Activity (Activity Lifecycle) - Entire lifetime:
Từ phương thức onCreate() cho tới onDestroy(): từ lúc Activity được gọi ra cho đến lúc bị huỷ - Visible liftetime:
Từ sau khi gọi onStart() cho tới lúc gọi onStop() : trong trường hợp này ta vẫn có thể thấy màn hình Activity
47 o Xảy ra từ khi gọi onResume() cho tới lúc gọi onPause(): trong suốt thời gian này Activity luôn nằm ở trên cùng và ta có thểtương tác được với nó
Hình 2.4 Vòng đời của Activity
2.3 Độưu tiên trong ứng dụng
Android quản lý các Ứng dụng dựa trên độưu tiên
Nếu hai ứng dụng có cùng trạng thái thì ứng dụng nào đã chạy lâu hơn sẽcó độưu tiên thấp hơn
Nếu ứng dụng đang chạy một Service hay Content Provider do một ứng dụng khác hỗ trợ thì sẽ có cùng độ ưu tiên với ứng dụng đó
Các ứng dụng sẽ bị đóng mà không có sựbáo trước
Hình 2.4 Cách phân định độ ưu tiên
The foreground process refers to the application currently being interacted with by the user, while the visible process pertains to the application activity that is actively displayed to the user, indicated by the invocation of onPaused() for the activity.
Service process: là Service đang chạy o Background process: là process của ứng dụng mà các activity của nó không hiển thị với người dùng (onStoped() của activity được gọi)
Empty process: process không có bất cứ 1 thành phần nào active
Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process
Tạo ứng dụng mới, mô tả vòng đời của 1 Activity, mỗi trạng thái sẽ ghi ra tập tin log
Tạo ứng dụng mới gồm 2 acitvity, trên acivity thứ nhất tạo button với sự kiện khi click sẽ mở activity 2
Những trọng tâm cần chú ý trong bài:
- Hiểu được các thành phần trong ứng dụng Android
- Hiểu được Activity là gì, mức độ ưu tiên trong ứng dụng
Yêu cầu vềđánh giá kết quả học tập:
+ Về kiến thức: Trình bày được các thành phần trong ứng dụng Android
+ Về kỹ năng: Chuyển đổi qua lại giữa các Activity
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp + Về kỹ năng: Chuyển đổi qua lại giữa các Activity
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
CÁC ĐIỀU KHIỂN CƠ BẢN
Giao diện người dùng
Giao diện người dùng đóng vai trò quan trọng trong việc xác định sự thành công của ứng dụng Android Để đạt được thành công, ứng dụng cần có giao diện trực quan, dễ hiểu và dễ sử dụng Bài viết này sẽ khám phá cấu trúc giao diện, các thành phần trên giao diện và những thuộc tính liên quan của chúng.
Giao diện được hình thành từ nhiều tài nguyên như layout, các điều khiển, hình ảnh và màu sắc Tất cả các tài nguyên thiết kế giao diện đều được lưu trữ trong thư mục res/.
Các tài nguyên layout được lưu trữ trong thư mục res/layout
Có thể có nhiều thư mục layout theo từ hạn định khác nhau: - Ví dụ: layout-land, layout-xhdpi… - Truy xuất: bao gồm 2 cách thức:
Java: R.layout.
XML: @[pakage:]layout/
Layout trong Android bao gồm các lớp mở rộng từ ViewGroup, cho phép sắp xếp và bố trí các điều khiển trên giao diện Mỗi người có thể thiết kế giao diện khác nhau, nhưng cần cân bằng giữa tính tiện dụng và thẩm mỹ Android cung cấp nhiều lớp Layout để người dùng có thể sử dụng hoặc tùy chỉnh theo nhu cầu của từng ứng dụng.
Bao gồm các lớp kế thừa từ ViewGroup: AbsoluteLayout (Deprecated), AdapView (ListView, Gridview…), DrawerLayout, FragmentBreadCrumbs, FrameLayout,
GridLayout, LinearLayout, PagerTitleStrip, RelativeLayout, SlidingDrawer,
Trong việc xây dựng bố cục tổ chức hiển thị một đối tượng duy nhất, FrameLayout đặt đối tượng mặc định ở vị trí góc trên bên trái Bạn có thể sử dụng thuộc tính Gravity để điều chỉnh lại vị trí của đối tượng này.
Frame Layout cho phép chứa nhiều View, cho phép các View này chồng lên nhau Điều này có nghĩa là các View ở dưới có thể bị các View ở trên che khuất, tạo ra sự linh hoạt trong việc thiết kế giao diện.
Layout chỉ chứa một View - Ví dụ khai báo:
Các đối tượng kế thừa phổ biến của FrameLayout:
ViewFlipper: đối tượng cho phép thực hiện hiển thị các đối tượng ở chế độ phân trang, chỉ hiển thị một đối tượng ở một thời điểm
Các phương thức sử dụng: startFlipping setAutoStart showNext showPrevious
ScrollView: đối tượng cho phép thực hiện hiển thị các đối tượng ở chế độ cuộn màn hình, chỉ cho phép chứa một đối tượng ở một thời điểm
Table Layout là đối tượng layout kế thừa từ LinearLayout, cho phép hiển thị các đối tượng theo nhiều dòng (TableRow)
Mỗi dòng có thể chứa nhiều View, mỗi View được xem là một cột