Câu trả lời:
Sự khác biệt nằm ở thực tế ./gradlewcho thấy bạn đang sử dụng trình bao bọc lớp. Trình bao bọc nói chung là một phần của dự án và nó tạo điều kiện cho việc cài đặt lớp. Nếu bạn đang sử dụng gradle mà không có trình bao bọc, bạn sẽ phải cài đặt thủ công - ví dụ, trên mac brew install gradlevà sau đó gọi gradle bằng gradlelệnh. Trong cả hai trường hợp bạn đang sử dụng gradle, nhưng trước đây thuận tiện hơn và đảm bảo tính nhất quán của phiên bản trên các máy khác nhau.
Mỗi Wrapper được gắn với một phiên bản Gradle cụ thể, vì vậy khi bạn lần đầu tiên chạy một trong các lệnh trên cho một phiên bản Gradle nhất định, nó sẽ tải xuống bản phân phối Gradle tương ứng và sử dụng nó để thực hiện quá trình xây dựng.
Điều này không chỉ có nghĩa là bạn không phải tự cài đặt Gradle mà còn chắc chắn sử dụng phiên bản Gradle mà bản dựng được thiết kế cho. Điều này làm cho các bản dựng lịch sử của bạn đáng tin cậy hơn
Đọc thêm tại đây - https://docs.gradle.org/civerse/userguide/gradle_wrapper.html
Ngoài ra, Udacity có một video gọn gàng, cao cấp giải thích khái niệm về trình bao bọc lớp - https://www.youtube.com/watch?v=1aA949H-shk
gradlewlà một trình bao bọc (w - ký tự) sử dụng gradle.
Dưới mui xe gradlewthực hiện ba điều chính:
gradlephiên bản chính xácgradlenhiệm vụSử dụng Gradle Wrapper, chúng tôi có thể phân phối / chia sẻ dự án cho mọi người để sử dụng cùng một phiên bản và chức năng của Gradle (biên dịch, xây dựng, cài đặt ...) ngay cả khi nó chưa được cài đặt.
Để tạo một trình bao bọc chạy:
gradle wrapper
Lệnh này tạo ra:

gradle-wrapper.properties sẽ chứa thông tin về phân phối Gradle