Rate this post

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 Android

Mộ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:

  1. Tạo dự án trong Android Studio và chọn một template thích hợp.
  2. Xác định bố cục cho mỗi màn hình có các phần tử giao diện người dùng. Bạn có thể đặt các phần tử giao diện người dùng trên màn hình bằng trình chỉnh sửa bố cục hoặc bạn có thể viết mã trực tiếp bằng Ngôn ngữ đánh dấu có thể mở rộng (XML).
  3. Viết mã bằng ngôn ngữ lập trình Java. Tạo mã nguồn cho tất cả các thành phần của ứng dụng.
  4. Xây dựng và chạy ứng dụng trên thiết bị thực và thiết bị ảo. Sử dụng cấu hình bản dựng mặc định hoặc tạo các bản dựng tùy chỉnh cho các phiên bản ứng dụng khác nhau của bạn. ©
  5. Kiểm tra và gỡ lỗi logic và giao diện người dùng của ứng dụng.
  6. Xuất bản ứng dụng bằng cách tập hợp APK cuối cùng (tệp gói) và phân phối nó qua các kênh như Google Play.

Sử dụng Android Studio

Android 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 project

Sau 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ểu

Khi 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 template

Activity 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 studio

Project 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:

  1. Thanh công cụ: Cung cấp một loạt các hành động, bao gồm chạy ứng dụng Android và khởi chạy các công cụ Android.
  2. Thanh điều hướng: Điều hướng qua dự án và mở tệp để chỉnh sửa.
  3. Project pane: Hiển thị các tệp dự án trong một hệ thống phân cấp. Hệ thống phân cấp được chọn trong hình trên là Android.
  4. Editor: Nội dung của một tệp được chọn trong dự án. Ví dụ: sau khi bạn chọn một bố cục (như thể hiện trong hình trên), editor panel sẽ hiển thị trình chỉnh sửa bố cục với các công cụ để chỉnh sửa bố cục. Sau khi bạn chọn tệp mã Java, editor panel hiển thị mã Java với các công cụ để chỉnh sửa mã.
  5. Các tab dọc theo bên trái, bên phải và dưới cùng của cửa sổ: Bạn có thể bấm vào các tab để mở các ngăn khác, chẳng hạn như Logcat để mở ngăn Logcat với thông báo nhật ký hoặc VIỆC CẦN LÀM để quản lý tác vụ.

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 pane

Bạ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 files

Khi 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 files

Thư 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 pane

Nế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:

public class MainActivity extends AppCompatActivity {

    // … Rest of the code for the class.

}

Understanding the Android manifest

Trướ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:

<? xml version = “1.0” encoding = “utf-8”?>

<kê khai xmlns: android = “http://schemas.android.com/apk/res/android”

    package = “com.example.android.helloworld”>

    <ứng dụng

        android: allowBackup = “true”

        android: icon = “@ mipmap / ic_launcher”

        android: label = “@ string / app_name”

        android: roundIcon = “@ mipmap / ic_launcher_round”

        android: supportsRtl = “true”

        android: theme = “@ style / AppTheme”>

        <activity android: name = “. MainActivity”>

            <intent-filter>

               <action android: name = “android.intent.action.MAIN” />

               <category android: name = “android.intent.category.LAUNCHER” />

            </intent-filter>

        </activity>

    </application>

</manifest>

Android namespace và application tag

Tệp AndroidManifest.xml được mã hóa bằng XML và luôn sử dụng namespace  Android:

xmlns: android = “http://schemas.android.com/apk/res/android”

package = “com.example.android.helloworld”>

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ẻ <application>, với thẻ đóng </application>, xác định cài đặt tệp kê khai cho toàn bộ ứng dụng.

Automatic backup

Thuộ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 <API cấp 22, bạn phải thêm thuộc tính android: allowBackup một cách rõ ràng và đặt nó thành true.

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.

App icon

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.

App label và string resources

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.

App theme

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.

Khai báo phiên bản Android

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ẻ <uses-sdk> và thuộc tính minSdkVersion của nó. Ví dụ: API của nhà cung cấp lịch đã được thêm vào Android 4.0 (API cấp 14). Nếu ứng dụng của bạn không thể hoạt động mà không có các API này, hãy khai báo API cấp 14 là phiên bản được hỗ trợ tối thiểu của ứng dụng như sau:

<manifest xmlns:android=”http://schemas.android.com/apk/res/android”

    package=”com.example.android.helloworld”>

    <uses-sdk android:minSdkVersion=”14″ android:targetSdkVersion=”19″ />

    // … Rest of manifest information

</manifest>

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.

Hiểu về build process

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.

Hiểu các tệp build.gradle

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ữ:

build.gradle (Mô-đun: ứng dụng)

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 blocks

Trong 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 block

Cà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 types

Build 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.

Dependencies

Cá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 project

Khi 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 device

Vớ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:

  1. Trong Android Studio, chọn Run> Run app hoặc nhấp vào biểu tượng Run của Android Studio Run trên thanh công cụ.
  2. Trong cửa sổ Select Deployment Target window, bên Available Emulators, hãy chọn thiết bị ảo bạn đã tạo và bấm OK.

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:

  1. Trình giả lập đang chạy ứng dụng.
  2. Run panel, hiển thị các hành động được thực hiện để cài đặt và chạy ứng dụng.
  3. Run tab, mà bạn bấm để mở hoặc đóng ngăn Chạy.

Chạy trên thiết bị thật

Mặ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:

  1. Sử dụng 1 thiết bị Android thật.
  2. Cáp dữ liệu USB kết nối thiết bị thật và máy tính.
  3. Lưu ý cài đặt driver đầy đủ.Xem Trình điều khiển USB OEM.

Để 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:

  1. Enable chế độ chạy thiết bị thưc Settings > About phone và nhấn vào Build number bảy lần.
  2. Quay lại màn hình trước đó (Settings). Developer options, lựa chọn và click vào Developer options.
  3. Chọn USB Debugging.
  4. Kết nối thiết bị và chạy ứng dụng từ Android Studio.

Sử dụng logs

Nhậ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:

  • Tab Logcat để mở và đóng Logcat pane, ngăn này hiển thị thông tin về ứng dụng của bạn khi ứng dụng đang chạy. Nếu bạn thêm câu lệnh Nhật ký vào ứng dụng của mình, thông báo Nhật ký sẽ xuất hiện ở đây.
  • Menu mức Nhật ký được đặt thành Verpose(mặc định), hiển thị tất cả thông báo Nhật ký. Các cài đặt khác bao gồm Debug, Error, Info, và Warn.

Thêm và xuất logs vào ứng dụng của android

Cá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:

  • Log: Lớp Nhật ký để gửi thông báo nhật ký đến ngăn Logcat.
  • d: Cài đặt cấp độ Nhật ký gỡ lỗi để lọc hiển thị thông báo nhật ký trong ngăn Logcat. Các cấp độ nhật ký khác là e cho error , w cho warning và i cho information. Bạn chỉ định mức nhật ký để có thể lọc các thông báo nhật ký bằng menu thả xuống ở giữa ngăn Logcat.
  • “MainActivity”: Đối số đầu tiên là một thẻ có thể được sử dụng để lọc thư trong ngăn Logcat. Thẻ này thường là tên của Activity mà từ đó thông báo bắt nguồn. Tuy nhiên, bạn có thể đặt tên thẻ bất kỳ thứ gì hữu ích cho bạn để gỡ lỗi.
  • “Hello World”: Đối số thứ hai là thông điệp thực tế.

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ý:

  1. Nếu ngăn Logcat chưa mở, hãy nhấp vào tab Logcat ở cuối Android Studio để mở.
  2. Thay đổi mức Nhật ký trong ngăn Logcat thành Gỡ lỗi. (Bạn cũng có thể để cấp độ Nhật ký là Chi tiết, vì có quá ít thông báo nhật ký.)
  3. Chạy ứng dụng của bạn trên một thiết bị ảo.

Thông báo sau sẽ xuất hiện trong ngăn Logcat:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now