Gradle cung cấp các công cụ tự động hóa build tốt nhất trong Android Studio. Nó được sử dụng để build, kiểm tra và đóng gói các ứng dụng Android. Tuy nhiên, thời gian Gradle build có thể khá chậm, đặc biệt khi bạn phát triển các dự án lớn. Điều này ảnh hưởng đến năng suất của các nhà phát triển Android.
Để tăng tốc thời gian build của Gradle, có nhiều cách chúng ta có thể tối ưu hóa các giai đoạn: khởi tạo, cấu hình và thực thi cuối cùng.
Trước khi chúng ta đi sâu vào cách tối ưu hóa tốc độ build của Gradle trong Android Studio, hãy cùng tìm hiểu những kiến thức cơ bản về hệ thống Gradle build.
Gradle là một bộ công cụ tự động hóa build mã nguồn mở giúp xây dựng bất kỳ loại phần mềm nào với tính linh hoạt, sử dụng các giải pháp như Android, các ngôn ngữ JVM, Scala, Java và Groovy.
Gradle build là một quy trình để tạo các dự án Gradle. Quá trình build của Gradle bao gồm việc biên dịch, liên kết, kiểm tra và đóng gói mã nguồn.
Dưới đây là các bước để thiết lập Gradle build trên hệ thống của bạn.
Bước 1: Kiểm tra xem Java đã được cài đặt trong hệ thống của bạn hay chưa
Để kiểm tra, mở dấu nhắc lệnh và gõ phiên bản Java. Nếu Java đã được cài đặt, bạn có thể tiếp tục cài đặt Gradle. Nếu chưa, tải Java tại đây.
Bước 2: Tải Gradle tại đây nếu bạn chưa cài đặt.
Bước 3: Thiết lập biến môi trường
Bạn có thể thực hiện điều này bằng cách giải nén file phân phối và sao chép vào vị trí mong muốn.
Bước 4: Xác minh cài đặt Gradle
Mở dấu nhắc lệnh lại, gõ phiên bản Gradle, và nó sẽ hiển thị phiên bản hiện tại của Gradle trên màn hình.
Bạn có thể chạy các tác vụ Gradle theo nhiều cách khác nhau. Ví dụ, bạn có thể thêm tham số vào tác vụ và cấu hình nó. Dưới đây là các bước để chạy cấu hình Gradle trong dự án của bạn.
Bước 1: Mở cửa sổ công cụ Gradle
Bước 2: Nhấp chuột phải vào tác vụ mà bạn muốn tạo cấu hình chạy
Bước 3: Từ menu ngữ cảnh, chọn Modify Run Configuration
Bước 4: Trong Create Run Configuration: 'tên tác vụ', bạn có thể cấu hình các tùy chọn bổ sung hoặc sử dụng các thiết lập mặc định và nhấp OK.
Plugin Gradle Android đi kèm với nhiều tính năng để tăng tốc việc build ứng dụng Android.
Điều quan trọng cần lưu ý là Gradle và các plugin Android Gradle hoạt động độc lập với Android Studio. Điều này có nghĩa là bạn có thể phát triển ứng dụng trong Studio hoặc trên máy tính nơi nó được cài đặt.
Cả plugin Android Gradle và Gradle đều giúp bạn cấu hình một số khía cạnh này trong build của Android Studio.
Điều đầu tiên là kiểm tra build Gradle trước khi bạn thực hiện bất kỳ thay đổi nào. Bạn có thể sử dụng build scan hoặc báo cáo profile.
Build scan cung cấp một cái nhìn tổng quan về quá trình build để xác định bất kỳ vấn đề nào trước khi tiếp tục. Các lần kiểm tra liên tục rất quan trọng để phát hiện các vấn đề về hiệu suất build.
Một quá trình kiểm tra build kỹ lưỡng giúp bạn hiểu được các yếu tố sau:
Trong quá trình kiểm tra, bạn cũng có thể cập nhật các phiên bản công cụ của mình, bao gồm:
Song song hóa là việc chia nhỏ một tác vụ để thực thi nhiều quá trình cùng lúc. Mặc định, Gradle chỉ chạy một tác vụ. Để kích hoạt thực thi song song cho các dự án phụ, sử dụng cờ parallel.
$ gradle <tác vụ> --parallel
Bạn cũng có thể kích hoạt song song hóa bằng cách thêm cài đặt sau vào file gradle.properties
trong thư mục gốc của dự án hoặc thư mục Gradle.
org.gradle.parallel=true
Song song hóa cải thiện thời gian build đáng kể. Tuy nhiên, điều kiện là dự án không thể chỉ có một tác vụ và không có các phụ thuộc giữa các dự án phụ.
Daemon là một chương trình máy tính chạy dưới dạng một quá trình nền mà không cần sự điều khiển trực tiếp của người dùng.
Gradle Daemon giảm thời gian build bằng cách:
Kể từ Gradle 3.0, Daemon được kích hoạt mặc định. Tuy nhiên, nếu build Gradle của bạn không có Daemon, bạn có thể kích hoạt lại với cờ daemon.
$ gradle <tác vụ> --daemon
Build cache là một cơ chế lưu trữ nhằm tiết kiệm thời gian bằng cách tái sử dụng các đầu ra từ các lần build trước.
Bạn có thể kích hoạt cache khi build bằng cách sử dụng cờ build-cache.
$ gradle <tác vụ> --build-cache
Hoặc thêm cài đặt sau vào file gradle.properties
:
org.gradle.caching=true
Mặc dù cache cấu hình không hỗ trợ tất cả các plugin và tính năng cốt lõi của Gradle, bạn vẫn có thể kích hoạt cache cấu hình trong giai đoạn cấu hình. Các đầu vào cấu hình build bao gồm:
Điều quan trọng cần lưu ý là hiện tại Gradle không tự động sử dụng cache cấu hình. Bạn có thể kích hoạt nó trong lúc build bằng cách sử dụng cờ configuration_cache.
$ gradle <tác vụ> --configuration-cache
Build gia tăng (incremental builds) là các build được tối ưu hóa để giữ cho các file đầu ra cập nhật so với các file đầu vào tương ứng mà không cần thực thi lại. Kỹ thuật tối ưu hóa Gradle này bỏ qua các tác vụ đã được thực thi trước đó với cùng đầu vào.
Vì hầu hết các tác vụ tích hợp sẵn của Gradle sử dụng build gia tăng, bạn có thể làm cho các tác vụ tùy chỉnh tương thích với nó bằng cách chỉ định các đầu vào và đầu ra.
build.gradle.kts
tasks.register("processTemplatesAdHoc") {
inputs.property("engine", TemplateEngineType.FREEMARKER)
inputs.files(fileTree("src/templates"))
.withPropertyName("sourceFiles")
.withPathSensitivity(PathSensitivity.RELATIVE)
inputs.property("templateData.name", "docs")
inputs.property("templateData.variables", mapOf("year" to "2013"))
outputs.dir(layout.buildDirectory.dir("genOutput2"))
.withPropertyName("outputDir")
doLast {
// Xử lý các templates ở đây
}
}
Ngoài ra, bạn có thể tối ưu hóa tốc độ build Gradle bằng cách tạo các build phù hợp với quy trình làm việc của các nhà phát triển cụ thể. Điều này cũng giúp giảm thời gian build cho các nhóm làm việc trên các dự án phụ không liên quan.
Để kích hoạt các quy trình làm việc cho các nhà phát triển cụ thể, hãy tạo các tác vụ phù hợp với nhu cầu của họ. Gradle cung cấp nhiều tính năng để tạo ra những quy trình làm việc này:
gradle.taskGraph.whenReady()
và các phương pháp khác, để chỉ thực hiện xác minh khi cần thiết.Mặc định, Gradle dành 512MB heap cho build. Tuy nhiên, các dự án lớn có thể cần nhiều bộ nhớ hơn. Bạn có thể chỉ định kích thước heap lớn hơn bằng cách thêm thuộc tính sau vào gradle.properties
:
org.gradle.jvmargs=-Xmx2048M
Xử lý phụ thuộc là quá trình bao gồm hai giai đoạn được thực hiện lặp lại cho đến khi đồ thị phụ thuộc hoàn chỉnh. Bạn có thể tối ưu hóa cách tham chiếu các phụ thuộc để giảm thời gian build bằng cách:
Gradle build có ba giai đoạn: Khởi tạo, Cấu hình, và Thực thi. Cấu hình càng lâu sẽ làm chậm thời gian build. Bạn có thể giảm thời gian cấu hình bằng cách:
Hiệu suất build là yếu tố quan trọng đối với năng suất của nhà phát triển Android. Thời gian dành ít hơn để tối ưu hóa Gradle build sẽ giúp bạn có thêm thời gian để phát triển tính năng, thử nghiệm và hoàn thành các yêu cầu đặt ra.
Hãy sử dụng những giải pháp tối ưu này để cải thiện tốc độ build Gradle và hiệu suất làm việc của bạn.
Tips: Tham gia Channel Telegram KDATA để không bỏ sót khuyến mãi hot nào