Cách dụng Android Studio
Chương này mô tả cách phát triển ứng dụng bằng Android Studio, là một môi trường phát triển tích hợp (IDE) dành cho Android. Các bài viết liên quan: Quá trình phát triển App AndroidMột dự án ứng dụng Android bắt đầu với một ý tưởng và xác định các yêu cầu cần thiết để hiện thực hóa ý tưởng đó. Bạn có thể muốn phác thảo giao diện người dùng (UI) cho các chức năng ứng dụng khác nhau. Để hiển thị giao diện người dùng trông như thế nào và nó sẽ hoạt động như thế nào, hãy sử dụng bản vẽ, mô hình và nguyên mẫu. Khi bạn đã sẵn sàng để bắt đầu viết mã, bạn sử dụng Android Studio để thực hiện các bước sau:
Sử dụng Android StudioAndroid Studio cung cấp một môi trường phát triển thống nhất để tạo ứng dụng cho tất cả các thiết bị hỗ trợ Android. Android Studio bao gồm các mẫu mã với mã mẫu cho các tính năng ứng dụng phổ biến, các công cụ và khuôn khổ thử nghiệm mở rộng cũng như hệ thống xây dựng linh hoạt. Starting an Android Studio projectSau khi bạn đã cài đặt IDE Android Studio thành công, hãy nhấp đúp vào biểu tượng ứng dụng Android Studio để khởi động nó. Nhấp vào Bắt đầu một dự án Android Studio mới trong cửa sổ Chào mừng và đặt tên cho dự án giống như tên mà bạn muốn sử dụng cho ứng dụng. Tạo một dự án Android Khi chọn company domain duy nhất, hãy nhớ rằng các ứng dụng được xuất bản lên Google Play phải có tên gói duy nhất. Bởi vì các domain là duy nhất, nên việc đặt trước tên của ứng dụng với tên của bạn hoặc tên miền của công ty bạn, sẽ cung cấp một tên gói phù hợp duy nhất. Nếu không định xuất bản ứng dụng, bạn có thể chấp nhận miền mẫu mặc định. Lưu ý rằng việc thay đổi tên gói sau này là công việc bổ sung. Chọn device và SDK tối thiểuKhi chọn Thiết bị Android mục tiêu, Điện thoại và Máy tính bảng được chọn theo mặc định, như thể hiện trong hình bên dưới. Lựa chọn hiển thị trong hình cho SDK tối thiểu — API 15: Android 4.0.3 (IceCreamSandwich) —giúp ứng dụng của bạn tương thích với 97% thiết bị hỗ trợ Android hoạt động trên Cửa hàng Google Play. Chọn các thiết bị hỗ trợ Android mục tiêu cho ứng dụng Các thiết bị khác nhau chạy các phiên bản khác nhau của hệ thống Android, chẳng hạn như Android 4.0.3 hoặc Android 4.4. Mỗi phiên bản kế tiếp thường bổ sung các API mới không có trong phiên bản trước. Để cho biết bộ API nào khả dụng, mỗi phiên bản chỉ định một cấp API. Ví dụ: Android 1.0 là API cấp 1 và Android 4.0.3 là API cấp 15. SDK tối thiểu khai báo phiên bản Android tối thiểu cho ứng dụng của bạn. Mỗi phiên bản Android kế tiếp cung cấp khả năng tương thích cho các ứng dụng được tạo bằng API từ các phiên bản trước. Điều đó có nghĩa là ứng dụng của bạn phải luôn tương thích với các phiên bản Android trong tương lai, nếu bạn sử dụng các API Android được ghi lại. Chọn Activity templateActivity là một Activity tập trung duy nhất mà người dùng có thể làm. Nó là một thành phần quan trọng của bất kỳ ứng dụng Android nào. Activity thường có bố cục được liên kết với nó để xác định cách các phần tử giao diện người dùng xuất hiện trên màn hình. Android Studio đã tạo mẫu trước dự án của bạn với mã tối thiểu cho Activity và bố cục dựa trên mẫu. Các mẫu Activity có sẵn bao gồm từ mẫu gần như trống (Thêm Không có Activity) đến Activity bao gồm điều hướng và menu tùy chọn. Chọn mẫu Activity trống Bạn có thể tùy chỉnh Activity sau khi chọn template của mình. Ví dụ: lựa chọn Activity trống cung cấp một Activity duy nhất với một tài nguyên bố cục duy nhất cho màn hình. Màn hình Định cấu hình Activity xuất hiện sau khi bạn nhấp vào Tiếp theo. Trên màn hình Định cấu hình Activity, bạn có thể chấp nhận tên thường dùng cho Activity (chẳng hạn như MainActivity) hoặc bạn có thể thay đổi tên. Mẹo: Khóa học này trình bày chi tiết hơn về lớp Activity trong một phần thực hành khác. Bạn cũng có thể đọc Giới thiệu về Activity để có phần giới thiệu toàn diện. Configure Activity Màn hình Configure Activity khác nhau tùy thuộc vào mẫu bạn đã chọn. Trong hầu hết các trường hợp, bạn có thể chọn các tùy chọn sau, nếu chúng chưa được chọn: Generate Layout file: Chọn hộp kiểm này để tạo tài nguyên bố cục được kết nối với Activity này, thường được đặt tên là activity_main. Bố cục xác định giao diện người dùng cho Activity. Backwards Compatibility (AppCompat): Chọn hộp kiểm này để bao gồm thư viện AppCompat. Sử dụng thư viện AppCompat để đảm bảo rằng ứng dụng tương thích với các phiên bản Android trước, ngay cả khi ứng dụng sử dụng các tính năng chỉ trong các phiên bản Android mới hơn. Android Studio tạo một thư mục cho các dự án của bạn và xây dựng dự án bằng Gradle. Mẹo: Xem trang Định cấu hình nhà phát triển bản dựng của bạn để biết thông tin chi tiết. Project android studioProject Android Studio chứa tất cả mã nguồn và tất cả tài nguyên cho một ứng dụng. Các tài nguyên bao gồm bố cục, chuỗi, màu sắc, kích thước và hình ảnh. Cửa sổ chính của Android Studio được tạo thành từ một số vùng logic hoặc các ô, như được hiển thị trong hình bên dưới. Trong hình trên:
Thanh trạng thái ở cuối cửa sổ Android Studio hiển thị trạng thái của dự án và chính Android Studio, cũng như bất kỳ cảnh báo hoặc thông báo nào. Bạn có thể xem tiến trình xây dựng trên thanh trạng thái. Mẹo: Bạn có thể sắp xếp cửa sổ chính để có thêm không gian màn hình bằng cách ẩn hoặc di chuyển các ngăn. Bạn cũng có thể sử dụng phím tắt để truy cập hầu hết các tính năng. Xem Phím tắt để có danh sách đầy đủ. Project paneBạn có thể xem tổ chức dự án theo một số cách trong Project pane. Nếu nó chưa được chọn, hãy nhấp vào tab Project. (tab Project nằm trong cột tab dọc ở phía bên trái của cửa sổ Android Studio.) Project pane xuất hiện. Để xem dự án trong hệ thống phân cấp dự án Android tiêu chuẩn, hãy chọn Android từ Mũi tên xuống ở đầu Project pane. Project pane> Android Lưu ý: Chương này và các chương khác đề cập đến Project pane, khi được đặt thành Android, làm Project pane> Android. Gradle filesKhi bạn lần đầu tiên tạo một dự án ứng dụng, Project pane> Android sẽ xuất hiện với thư mục Gradle Scripts được mở rộng như được hiển thị bên dưới. Nếu thư mục Gradle Scripts không được mở rộng, hãy nhấp vào hình tam giác để mở rộng nó. Thư mục này chứa tất cả các tệp được hệ thống xây dựng cần thiết. Thư mục Gradle Scripts Tệp build.gradle (Module: app) chỉ định các thư viện bổ sung và cấu hình xây dựng của mô-đun. Mẫu Activity mà bạn chọn sẽ tạo tệp này. Tệp bao gồm thuộc tính minSdkVersion khai báo phiên bản tối thiểu cho ứng dụng và thuộc tính targetSdkVersion khai báo phiên bản cao nhất (mới nhất) mà ứng dụng đã được tối ưu hóa. Tệp này cũng bao gồm danh sách các phần phụ thuộc, là các thư viện theo yêu cầu của mã — chẳng hạn như thư viện AppCompat để hỗ trợ nhiều phiên bản Android. App codeĐể xem và chỉnh sửa mã Java, hãy mở rộng thư mục ứng dụng, thư mục java và thư mục com.example.android.helloworld. Bấm đúp vào tệp java MainActivity để mở nó trong trình chỉnh sửa mã. Thư mục java bao gồm các tệp Java class. Mỗi Activity, service hoặc thành phần khác (chẳng hạn như fragment) được định nghĩa là một Java class, thường nằm trong tệp riêng của nó. Test và các tệp Java class khác cũng nằm ở đây. Thư mục java chứa ba thư mục con: com.example.hello.helloworld (hoặc tên miền bạn đã chỉ định): Tất cả các tệp cho một gói nằm trong một thư mục có tên theo gói. Đối với ứng dụng Hello World của bạn, có một gói và chỉ chứa MainActivity.java. Activity (màn hình) đầu tiên mà người dùng nhìn thấy, cũng khởi tạo tài nguyên trên toàn ứng dụng, thường được gọi là MainActivity. (Phần mở rộng tệp bị bỏ qua trong Project pane> Android.) com.example.hello.helloworld (androidTest): Thư mục này dành cho các bài kiểm tra công cụ của bạn và bắt đầu với một tệp kiểm tra khung. com.example.hello.helloworld (test): Thư mục này dành cho các bài kiểm tra đơn vị của bạn và bắt đầu bằng tệp kiểm tra đơn vị khung được tạo tự động. Layout filesĐể xem và chỉnh sửa tệp layout, hãy mở rộng thư mục res và thư mục bố cục để xem tệp bố cục. Trong hình bên dưới, tệp layout được gọi là activity_main.xml. Bấm đúp vào tệp để mở nó trong trình chỉnh sửa bố cục. Các tệp bố cục được viết bằng XML. Thư mục res Resource filesThư mục res chứa các tài nguyên, chẳng hạn như layout, string và image. Activity thường được liên kết với bố cục các dạng xem giao diện người dùng được định nghĩa dưới dạng tệp XML. Tệp XML này thường được đặt tên theo Activity của nó. Thư mục res bao gồm các thư mục con sau: drawable: Lưu trữ tất cả hình ảnh ứng dụng của bạn trong thư mục này. Layout: Mỗi Activity có ít nhất một tệp bố cục XML mô tả giao diện người dùng. Đối với Hello World, màn hình đầu tiên này chứa activity_main.xml. mipmap: Các biểu tượng trình khởi chạy được lưu trữ trong thư mục này. Có một thư mục con cho mỗi mật độ màn hình được hỗ trợ. Android sử dụng mật độ màn hình (số pixel trên mỗi inch) để xác định độ phân giải hình ảnh cần thiết. Android nhóm tất cả các mật độ màn hình thực tế thành các mật độ tổng quát, chẳng hạn như trung bình (mdpi), cao (hdpi) hoặc cực cao (xxxhdpi). Thư mục ic_launcher.png chứa các biểu tượng trình khởi chạy mặc định cho tất cả các mật độ được ứng dụng của bạn hỗ trợ. values: Thay vì sử dụng giá trị cố định như chuỗi, kích thước và màu sắc trong các tệp XML và Java của bạn, cách tốt nhất là xác định chúng trong các tệp giá trị tương ứng. Phương pháp này giúp bạn dễ dàng thay đổi các giá trị và giữ các giá trị nhất quán trên ứng dụng của mình. Thư mục con values bao gồm các thư mục con này: color.xml: Hiển thị các màu mặc định cho chủ đề bạn đã chọn. Bạn có thể thêm màu của riêng mình hoặc thay đổi màu dựa trên yêu cầu của ứng dụng. mens.xml: Lưu trữ kích thước của các khung nhìn và đối tượng cho các độ phân giải khác nhau. string.xml: Tạo tài nguyên cho tất cả các chuỗi của bạn. Làm điều này giúp bạn dễ dàng dịch các chuỗi sang các ngôn ngữ khác. styles.xml: Tất cả các kiểu cho ứng dụng và chủ đề của bạn đều có ở đây. Kiểu giúp cung cấp cho ứng dụng của bạn một giao diện nhất quán cho tất cả các phần tử giao diện người dùng. Sử dụng editor paneNếu bạn chọn một tệp, editor panel sẽ xuất hiện. Một tab xuất hiện cho tệp để bạn có thể mở nhiều tệp và chuyển đổi giữa chúng. Ví dụ: nếu bạn bấm đúp vào tệp bố cục activity_main.xml trong Project pane> Android, trình chỉnh sửa bố cục sẽ xuất hiện như hình dưới đây. Nếu bạn bấm đúp vào tệp MainActivity trong Project pane> Android, trình chỉnh sửa sẽ thay đổi thành trình chỉnh sửa mã như được hiển thị bên dưới, với một tab cho MainActivity.java: Ở đầu tệp MainActivity.java là một câu lệnh gói xác định gói ứng dụng. Câu lệnh gói này được theo sau bởi một khối nhập được cô đọng bằng …, như thể hiện trong hình trên. Nhấp vào dấu chấm để mở rộng khối để xem nó. Các câu lệnh nhập nhập các thư viện cần thiết cho ứng dụng. Ví dụ: câu lệnh sau nhập thư viện AppCompatActivity: import android.support.v7.app.AppCompatActivity; Mỗi Activity trong một ứng dụng được triển khai dưới dạng một Java class. Khai báo lớp sau extends lớp AppCompatActivity để triển khai các tính năng theo cách tương thích ngược với các phiên bản Android trước:
Understanding the Android manifestTrước khi hệ thống Android có thể khởi động một thành phần ứng dụng chẳng hạn như Activity, hệ thống phải biết rằng Activity đó tồn tại. Nó làm như vậy bằng cách đọc tệp AndroidManifest.xml của ứng dụng, tệp này mô tả tất cả các thành phần của ứng dụng Android của bạn. Mỗi Activity phải được liệt kê trong tệp XML này, cùng với tất cả các thành phần của ứng dụng. Để xem và chỉnh sửa tệp AndroidManifest.xml, hãy mở rộng thư mục tệp kê khai trong Project pane> Android và bấm đúp vào AndroidManifest.xml. Nội dung của nó xuất hiện trong ngăn chỉnh sửa:
Android namespace và application tagTệp AndroidManifest.xml được mã hóa bằng XML và luôn sử dụng namespace Android:
Biểu thức gói hiển thị tên gói duy nhất của ứng dụng mới. Không thay đổi biểu thức gói sau khi ứng dụng được xuất bản. Thẻ
Automatic backupThuộc tính android: allowBackup cho phép sao lưu dữ liệu ứng dụng tự động: android: allowBackup = “true” Đặt thuộc tính android: allowBackup thành true sẽ cho phép ứng dụng được sao lưu tự động và khôi phục khi cần. Người dùng đầu tư thời gian và công sức để định cấu hình ứng dụng. Chuyển sang một thiết bị mới có thể hủy bỏ tất cả cấu hình cẩn thận đó. Hệ thống thực hiện sao lưu tự động này cho gần như tất cả dữ liệu ứng dụng theo mặc định và làm như vậy mà nhà phát triển không cần phải viết bất kỳ mã ứng dụng bổ sung nào. Đối với các ứng dụng có phiên bản SDK mục tiêu là Android 6.0 (API cấp 23) trở lên, các thiết bị chạy Android 6.0 trở lên sẽ tự động tạo bản sao lưu dữ liệu ứng dụng lên đám mây vì thuộc tính android: allowBackup được mặc định là true nếu bỏ qua. Đối với các ứng dụng Mẹo: Để tìm hiểu thêm về sao lưu tự động cho ứng dụng, hãy xem Định cấu hình tự động sao lưu cho ứng dụng. Thuộc tính android: icon đặt biểu tượng cho ứng dụng: android: allowBackup = “true” android: icon = “@ mipmap / ic_launcher” Thuộc tính android: icon gán cho ứng dụng một biểu tượng trong thư mục mipmap (bên trong thư mục res trong ngăn Project> Android). Biểu tượng xuất hiện trên
màn hình chính hoặc trong màn hình Tìm kiếm ứng dụng để khởi chạy ứng dụng. Biểu tượng này cũng được sử dụng làm biểu tượng mặc định cho các thành phần ứng dụng. Thuộc tính android: label hiển thị chuỗi “Hello World” được đánh dấu. Nếu
bạn nhấp vào chuỗi, nó sẽ thay đổi để hiển thị tài nguyên chuỗi @ string / app_name: android: label = “@ string / app_name” Mẹo: Để xem menu ngữ cảnh, hãy bấm ctrl hoặc bấm chuột phải vào app_name trong editor panel. Chọn Go To > Declaration để xem nơi tài nguyên String được khai báo: trong tệp string.xml. Khi bạn chọn Go To > Declaration hoặc mở tệp bằng cách bấm đúp vào string.xml bên trong thư mục giá
trị trong Project pane> Android, nội dung của tệp sẽ xuất hiện trong editor panel. Sau khi mở tệp string.xml, bạn có thể thấy rằng tên chuỗi app_name được đặt thành Hello World. Bạn có thể thay đổi tên ứng dụng bằng cách thay đổi chuỗi Hello World thành một chuỗi khác. Tài nguyên chuỗi được mô tả trong một bài học riêng biệt. Thuộc tính android: theme đặt theme của ứng dụng, xác định sự xuất hiện của các phần tử giao diện người dùng, chẳng hạn như văn bản: android:
theme = “@ style / AppTheme”> Thuộc tính chủ đề được đặt thành chủ đề tiêu chuẩn AppTheme. Chủ đề được mô tả trong một bài học khác. Các thiết bị khác nhau có thể chạy các phiên bản khác nhau của hệ thống Android, chẳng hạn như Android 4.0 hoặc Android 4.4. Mỗi phiên bản kế tiếp có thể thêm các API mới không có trong phiên bản trước. Để cho biết bộ API nào khả dụng, mỗi phiên bản chỉ định một cấp API. Ví dụ: Android 1.0 là API cấp 1 và Android
4.4 là API cấp 19. Cấp API cho phép nhà phát triển khai báo phiên bản tối thiểu mà ứng dụng tương thích, sử dụng thẻ package=”com.example.android.helloworld”>
// … Rest of manifest information Thuộc tính minSdkVersion khai báo phiên bản tối thiểu cho ứng dụng và thuộc tính targetSdkVersion khai báo phiên bản cao nhất (mới nhất) đã được tối ưu hóa trong ứng dụng. Mỗi phiên bản Android kế tiếp cung cấp khả năng tương thích cho các ứng dụng được
tạo bằng API từ các phiên bản trước, do đó, ứng dụng phải luôn tương thích với các phiên bản Android trong tương lai khi sử dụng các API Android được ghi lại. Thuộc tính targetSdkVersion không ngăn ứng dụng được cài đặt trên các phiên bản Android cao hơn (mới hơn) so với giá trị được chỉ định. Mặc dù vậy, thuộc tính target rất quan trọng, vì nó cho hệ thống biết liệu ứng dụng có nên kế thừa các thay đổi về hành vi trong các phiên bản mới hơn hay không. Nếu bạn không
cập nhật targetSdkVersion lên phiên bản mới nhất, hệ thống sẽ giả định rằng ứng dụng của bạn yêu cầu các hành vi tương thích ngược khi chạy trên phiên bản mới nhất. Ví dụ: trong số các thay đổi về hành vi trong Android 4.4, các cảnh báo được tạo bằng API AlarmManager hiện không chính xác theo mặc định để hệ thống có thể xử lý hàng loạt các cảnh báo ứng dụng và duy trì sức mạnh hệ thống. Nếu cấp API mục tiêu của bạn thấp hơn “19”, hệ thống sẽ giữ lại hoạt động của API trước đó cho ứng dụng của
bạn. Gói ứng dụng Android (APK) là định dạng tệp gói để phân phối và cài đặt các ứng dụng dành cho thiết bị di động Android. Quá trình xây dựng bao gồm các công cụ và quy trình tự động chuyển đổi từng dự án thành APK. Android Studio sử dụng Gradle làm nền tảng của hệ thống xây dựng, với nhiều khả năng dành riêng cho Android được cung cấp bởi Android Plugin dành cho Gradle. Hệ thống xây dựng này chạy
dưới dạng một công cụ tích hợp từ menu Android Studio. Khi bạn tạo một dự án, Android Studio sẽ tự động tạo các tệp xây dựng cần thiết trong thư mục Gradle Scripts trong Project pane> Android. Tệp xây dựng Android Studio được đặt tên là build.gradle như hình dưới đây: Gradle Scripts Tệp này là tệp xây dựng cấp cao nhất cho toàn bộ dự án, nằm trong thư mục dự án gốc, xác định cấu hình xây dựng áp dụng cho tất cả các mô-đun trong dự án của bạn. Không nên chỉnh sửa tệp này do Android Studio tạo ra để bao gồm các phần phụ thuộc vào ứng dụng. Nếu một dependency là
một cái gì đó khác với thư viện cục bộ hoặc file tree, Gradle tìm kiếm các tệp trong bất kỳ kho lưu trữ trực tuyến nào được chỉ định trong repositories block của tệp này. Theo mặc định, các dự án Android Studio mới khai báo JCenter và Google (bao gồm kho lưu trữ Google Maven) là các vị trí lưu trữ: Android Studio tạo các tệp build.gradle (Mô-đun: ứng dụng) riêng biệt cho từng mô-đun. Bạn có thể chỉnh sửa cài đặt bản dựng để cung cấp các tùy
chọn đóng gói tùy chỉnh cho từng mô-đun, chẳng hạn như các loại bản dựng bổ sung và hương vị sản phẩm, đồng thời ghi đè cài đặt trong tệp kê khai hoặc tệp build.gradle cấp cao nhất. Tệp này thường là tệp cần chỉnh sửa khi thay đổi cấu hình cấp ứng dụng, chẳng hạn như khai báo phần phụ thuộc trong phần phụ thuộc. Phần sau hiển thị nội dung của tệp build.gradle (Module: app) của một dự án: Các tệp build.gradle sử dụng cú pháp Gradle. Gradle là một ngôn ngữ dành riêng cho Domain (DSL) để mô tả
và thao tác logic xây dựng bằng cách sử dụng Groovy, là một ngôn ngữ động cho Máy ảo Java (JVM). Bạn không cần phải học Groovy để thực hiện các thay đổi, bởi vì Android Plugin dành cho Gradle giới thiệu hầu hết các phần tử DSL mà bạn cần. Mẹo: Để tìm hiểu thêm về DSL của plugin Android, hãy đọc tài liệu tham khảo về DSL. Plugin and Android blocksTrong tệp build.gradle (Module: app) ở trên, câu lệnh đầu tiên áp dụng các tác vụ xây dựng plug-in thêm Gradle dành riêng cho Android: Android block {} chỉ định phiên bản SDK mục tiêu để biên dịch mã ứng dụng (compileSdkVersion 26) và một số khối thông tin. DefaultConfig blockCài đặt minSdkVersion và targetSdkVersion ghi đè mọi cài đặt AndroidManifest.xml cho phiên bản SDK tối thiểu và phiên bản SDK mục tiêu. Xem phần “Khai báo phiên bản Android” trước đó trong chương này để biết thông tin cơ bản về các cài đặt này. testInticmentationRunner bổ sung hỗ trợ thiết bị đo đạc để kiểm tra giao diện người dùng bằng Espresso và UIAutomator. Các công cụ này được mô tả trong một bài học riêng biệt. Build typesBuild types cho ứng dụng được chỉ định trong khối buildTypes {}, khối này kiểm soát cách ứng dụng được tạo và đóng gói. Build types được chỉ định là bản phát hành cho bản phát hành của ứng dụng. Một kiểu xây dựng phổ biến khác là gỡ lỗi. Cấu hình các kiểu xây dựng được mô tả trong một bài học riêng biệt. DependenciesCác phần phụ thuộc cho ứng dụng được xác định trong khối Dependencies {}, là phần của tệp build.gradle có nhiều khả năng thay đổi khi bạn bắt đầu phát triển mã phụ thuộc vào các thư viện khác. Khối này là một phần của API Gradle tiêu chuẩn và nằm android {}. Trong đoạn mã trên, tệp triển khai câu lệnh fileTree (dir: ‘libs’, include: [‘* .jar’]) thêm phần phụ thuộc của tất cả các tệp “.jar” bên trong thư mục libs. Syncing your projectKhi bạn thực hiện các thay đổi đối với tệp cấu hình bản dựng trong một dự án, Android Studio yêu cầu bạn đồng bộ hóa các tệp dự án. Trong quá trình đồng bộ hóa, Android Studio nhập các thay đổi cấu hình bản build và chạy kiểm tra để đảm bảo rằng cấu hình sẽ không tạo ra lỗi bản build. Để đồng bộ hóa các tệp dự án, hãy nhấp vào Đồng bộ hóa ngay trong thanh thông báo xuất hiện khi thực hiện thay đổi (như thể hiện trong hình bên dưới) hoặc nhấp vào nút Sync Project with Gradle Files thanh menu. Thay đổi cấu hình Gradle ứng dụng Nếu Android Studio nhận thấy bất kỳ lỗi nào với cấu hình – ví dụ: nếu mã nguồn sử dụng các tính năng API chỉ khả dụng ở cấp API cao hơn compileSdkVersion — cửa sổ Thông báo sẽ xuất hiện để mô tả vấn đề. Chạy emulator hoặc deviceVới trình emulator, bạn có thể thử nghiệm ứng dụng trên các thiết bị khác nhau như máy tính bảng hoặc điện thoại thông minh — với các cấp API khác nhau cho các phiên bản Android khác nhau — để đảm bảo ứng dụng trông đẹp và phù hợp với hầu hết người dùng. Bạn không cần phải phụ thuộc vào việc có sẵn một thiết bị vật lý để phát triển ứng dụng. Trình quản lý Thiết bị ảo Android (AVD) tạo thiết bị ảo hoặc trình mô phỏng mô phỏng cấu hình cho một loại thiết bị hỗ trợ Android cụ thể. Sử dụng Trình quản lý AVD để xác định các đặc điểm phần cứng của thiết bị và cấp API của nó, và để lưu nó dưới dạng cấu hình thiết bị ảo. Khi bạn khởi động trình giả lập Android, nó sẽ đọc một cấu hình được chỉ định và tạo một thiết bị giả lập trên máy tính của bạn hoạt động chính xác như một phiên bản vật lý của thiết bị đó. Tạo virtual deviceĐể chạy trình mô phỏng trên máy tính của bạn, hãy sử dụng Trình quản lý AVD để tạo cấu hình mô tả thiết bị ảo. Chọn Tools > Android > AVD Manager hoặc nhấp vào biểu tượng AVD Manager icon trên thanh công cụ. Màn hình Thiết bị ảo của bạn xuất hiện hiển thị tất cả các thiết bị ảo đã tạo trước đó. Nhấp vào nút + Tạo thiết bị ảo để tạo một thiết bị ảo mới. Bạn có thể chọn một thiết bị từ danh sách các thiết bị phần cứng được xác định trước. Đối với mỗi thiết bị, bảng cung cấp một cột cho kích thước hiển thị theo đường chéo (Size), độ phân giải màn hình tính bằng pixel (Độ phân giải) và mật độ điểm ảnh (Density). Ví dụ: mật độ điểm ảnh của thiết bị Nexus 5 là xxhdpi, có nghĩa là ứng dụng sử dụng các biểu tượng trong thư mục xxhdpi của thư mục mipmap. Tương tự như vậy, ứng dụng sử dụng bố cục và các ngăn kéo từ các thư mục được xác định cho mật độ đó. Sau khi bạn nhấp vào Tiếp theo, màn hình Hình ảnh Hệ thống xuất hiện để chọn phiên bản hệ thống Android cho thiết bị. Tab Khuyến nghị hiển thị các hệ thống được đề xuất cho thiết bị. Các phiên bản khác có sẵn trong tab Hình ảnh x86 và Hình ảnh Khác. Nếu liên kết Tải xuống hiển thị bên cạnh phiên bản hình ảnh hệ thống, thì liên kết đó chưa được cài đặt. Nhấp vào liên kết để bắt đầu tải xuống và nhấp vào Kết thúc khi hoàn tất. Chạy ứng dụng trên thiết bị ảoĐể chạy ứng dụng trên thiết bị ảo bạn đã tạo trong phần trước, hãy làm theo các bước sau:
Trình giả lập khởi động và khởi động giống như một thiết bị vật lý. Tùy thuộc vào tốc độ máy tính của bạn, quá trình khởi động có thể mất một lúc. Ứng dụng được xây dựng và sau khi trình mô phỏng sẵn sàng, Android Studio sẽ tải ứng dụng lên trình mô phỏng và chạy ứng dụng đó. Bạn sẽ thấy ứng dụng được tạo từ mẫu Activity trống (“Hello World”) như trong hình sau, cũng hiển thị ngăn Chạy của Android Studio hiển thị các hành động được thực hiện để chạy ứng dụng trên trình giả lập. Mẹo: Khi thử nghiệm trên thiết bị ảo, bạn nên khởi động thiết bị một lần vào đầu phiên của mình. Đừng đóng nó cho đến khi bạn kiểm tra xong ứng dụng của mình, để ứng dụng của bạn không phải trải qua quá trình khởi động lại thiết bị. Để đóng thiết bị ảo, hãy chọn Thoát từ menu hoặc nhấn Control-Q trong Windows hoặc Command-Q trong macOS. Hình trên cho thấy trình giả lập và nhật ký chạy:
Chạy trên thiết bị thậtMặc dù trình giả lập rất hữu ích nhưng chúng không thể hiển thị tất cả các trạng thái thiết bị có thể có, chẳng hạn như điều gì sẽ xảy ra nếu cuộc gọi đến xảy ra trong khi ứng dụng đang chạy.các bạn làm theo sau:
Để cho phép Android Studio kết nối với thiết bị Android, bạn chọn Gỡ lỗi USB trên thiết bị thật. Bạn bật Gỡ lỗi USB trong cài đặt Tùy chọn nhà phát triển của thiết bị. (Lưu ý rằng bật USB Debugging không giống như root thiết bị của bạn.) Trên Android 4.2 trở lên, màn hình Tùy chọn nhà phát triển bị ẩn theo mặc định. Để hiển thị các tùy chọn dành cho nhà phát triển và bật USB Debugging:
Sử dụng logsNhật ký là một công cụ gỡ lỗi mạnh mẽ mà bạn có thể sử dụng để xem xét các giá trị, đường dẫn thực thi và các ngoại lệ. Sau khi bạn thêm các câu lệnh ghi nhật ký vào một ứng dụng, thông báo nhật ký của bạn sẽ xuất hiện cùng với các thông báo nhật ký chung trong ngăn Logcat. Xem thông báo nhật kýĐể xem ngăn Logcat, hãy nhấp vào tab Logcat ở cuối cửa sổ Android Studio như thể hiện trong hình bên dưới. Android Studio Logcat Trong hình trên:
Thêm và xuất logs vào ứng dụng của androidCác câu lệnh ghi nhật ký thêm bất kỳ thông báo nào bạn chỉ định vào nhật ký. Việc thêm các câu lệnh ghi nhật ký tại các điểm nhất định trong mã cho phép nhà phát triển xem xét các giá trị, đường dẫn thực thi và các ngoại lệ. Ví dụ: câu lệnh ghi nhật ký sau thêm “MainActivity” và “Hello World” vào nhật ký: Log.d (“MainActivity”, “Hello World”); Sau đây là các yếu tố của câu lệnh này:
Theo quy ước, các thẻ nhật ký được định nghĩa là hằng số cho Activity: private static final String LOG_TAG = MainActivity.class.getSimpleName (); Sử dụng hằng số trong các câu lệnh ghi nhật ký: Log.d (LOG_TAG, “Hello World”); Sau khi bạn thêm câu lệnh Log.d được hiển thị ở trên, hãy làm theo các bước sau để xem thông báo nhật ký:
Thông báo sau sẽ xuất hiện trong ngăn Logcat: |