Gradle hơi khó hiểu với tôi, và đối với bất kỳ nhà phát triển Android mới nào. Bất cứ ai cũng có thể giải thích Gradle trong Android Studio là gì và mục đích của nó là gì? Tại sao nó được bao gồm trong Android Studio?
Gradle hơi khó hiểu với tôi, và đối với bất kỳ nhà phát triển Android mới nào. Bất cứ ai cũng có thể giải thích Gradle trong Android Studio là gì và mục đích của nó là gì? Tại sao nó được bao gồm trong Android Studio?
Câu trả lời:
Gradle là một hệ thống xây dựng.
Trước Android Studio, bạn đã sử dụng Eclipse cho mục đích phát triển của mình và rất có thể, bạn đã không biết cách xây dựng APK Android mà không cần Eclipse.
Bạn có thể làm điều này trên dòng lệnh, nhưng bạn phải tìm hiểu từng công cụ (dx, aapt) làm gì trong SDK. Nhật thực đã cứu tất cả chúng ta khỏi những chi tiết cơ bản nhưng quan trọng, cơ bản này bằng cách cho chúng ta hệ thống xây dựng của riêng chúng.
Bây giờ, bạn đã bao giờ tự hỏi tại sao res
thư mục nằm trong cùng thư src
mục với thư mục của bạn chưa?
Đây là nơi hệ thống xây dựng đi vào hình ảnh. Hệ thống xây dựng tự động lấy tất cả các tệp nguồn ( .java
hoặc .xml
), sau đó áp dụng công cụ thích hợp (ví dụ: lấy java
các tệp lớp và chuyển đổi chúng thành dex
các tệp) và nhóm tất cả chúng thành một tệp nén, APK yêu thích của chúng tôi.
Hệ thống xây dựng này sử dụng một số quy ước: một ví dụ về một là chỉ định thư mục chứa các tệp nguồn (trong Eclipse là \src
thư mục) hoặc các tệp tài nguyên (trong Eclipse là \res
thư mục).
Bây giờ, để tự động hóa tất cả các tác vụ này, cần phải có một kịch bản; bạn có thể viết hệ thống xây dựng của riêng mình bằng cách sử dụng shell script trong linux hoặc cú pháp tệp bó trong windows. Hiểu rồi?
Lớp là một hệ thống xây dựng lấy các tính năng tốt nhất từ các hệ thống xây dựng khác và kết hợp chúng thành một. Nó được cải thiện dựa trên những thiếu sót của họ. Nó là một hệ thống xây dựng dựa trên JVM , điều đó có nghĩa là bạn có thể viết tập lệnh của riêng mình bằng Java, mà Android Studio sử dụng.
Một điều thú vị về gradle là nó là một hệ thống dựa trên plugin . Điều này có nghĩa là nếu bạn có ngôn ngữ lập trình của riêng mình và bạn muốn tự động hóa nhiệm vụ xây dựng một số gói (đầu ra như JAR cho Java) từ các nguồn thì bạn có thể viết một plugin hoàn chỉnh bằng Java hoặc Groovy (hoặc Kotlin, xem tại đây ) và phân phối nó cho phần còn lại của thế giới.
Google đã thấy một trong những hệ thống xây dựng tiên tiến nhất trên thị trường và nhận ra rằng bạn có thể viết các tập lệnh của riêng mình mà không cần học nhiều và không cần học Groovy hoặc bất kỳ ngôn ngữ mới nào khác. Vì vậy, họ đã viết plugin Android cho Gradle.
Bạn phải đã xem build.gradle
(các) tệp trong dự án của bạn. Đó là nơi bạn có thể viết các kịch bản để tự động hóa các nhiệm vụ của mình. Mã bạn đã thấy trong các tệp này là mã Groovy. Nếu bạn viếtSystem.out.println("Hello Gradle!");
thì nó sẽ in trên bàn điều khiển của bạn.
Một ví dụ đơn giản là bạn phải sao chép một số tệp từ thư mục này sang thư mục khác trước khi quá trình xây dựng thực tế xảy ra. Một kịch bản xây dựng Gradle có thể làm điều này.
Đây là công cụ xây dựng mới mà Google muốn sử dụng cho Android. Nó đang được sử dụng do nó có khả năng mở rộng và hữu ích hơn kiến. Nó có nghĩa là để nâng cao kinh nghiệm phát triển.
Bạn có thể xem bài nói chuyện của Xavier Ducrohet từ Nhóm nhà phát triển Android trên Google I / O tại đây.
Ngoài ra còn có một cuộc nói chuyện khác trên Android Studio của Xavier và Tor Norbye, cũng trong Google I / O tại đây .
Gradle là một hệ thống xây dựng chạy trên Android Studio .
Trong các ngôn ngữ khác chẳng hạn:
Gradle
tương tự như vậy make
, tôi chỉ có khái niệm của nó
Dưới đây là một lời giải thích chi tiết về những gì Gradle
và làm thế nào để sử dụng nó trong Android Studio.
Khám phá các tập tin Gradle
Xây dựng tập tin
Các tệp xây dựng Gradle sử dụng một Domain Specific Language or DSL
để xác định logic xây dựng tùy chỉnh và để tương tác với các yếu tố dành riêng cho Android của plugin Android cho Gradle.
Các dự án Android Studio bao gồm 1 hoặc nhiều mô-đun, là các thành phần mà bạn có thể xây dựng, kiểm tra và gỡ lỗi một cách độc lập. Mỗi mô-đun có tệp xây dựng riêng, vì vậy mỗi dự án Android Studio chứa 2 loại tệp xây dựng Gradle.
Tệp xây dựng cấp cao nhất: Đây là nơi bạn sẽ tìm thấy các tùy chọn cấu hình phổ biến cho tất cả các mô-đun tạo nên dự án của bạn.
Tệp xây dựng cấp mô-đun : Mỗi mô-đun có tệp xây dựng Gradle riêng chứa các cài đặt xây dựng dành riêng cho mô-đun. Bạn sẽ dành phần lớn thời gian để chỉnh sửa (các) tệp xây dựng cấp mô-đun thay vì tệp xây dựng cấp cao nhất của dự án.
Để xem các build.gradle
tệp này , hãy mở bảng Project của Android Studio (bằng cách chọn tab Project) và mở rộng thư mục Gradle Sc Script. Hai mục đầu tiên trong thư mục Gradle ScScript là các tệp xây dựng Gradle cấp độ dự án và cấp mô-đun
Tập tin xây dựng lớp cấp cao nhất
Mỗi dự án Android Studio đều chứa một tệp xây dựng Gradle cấp cao nhất. Đây build.gradle
tập tin là mục đầu tiên xuất hiện trong Scripts Gradle thư mục và được đánh dấu rõ ràng dự án.
Hầu hết thời gian, bạn sẽ không cần thực hiện bất kỳ thay đổi nào đối với tệp này, nhưng vẫn hữu ích để hiểu nội dung của nó và vai trò của nó trong dự án của bạn.
Xây dựng tập tin cấp độ mô-đun
Ngoài tệp xây dựng Gradle cấp dự án, mỗi mô-đun có tệp xây dựng Gradle của riêng nó. Dưới đây là phiên bản chú thích của tệp xây dựng Gradle cấp độ mô-đun cơ bản.
Các tập tin lớp khác
Ngoài các tệp build.gradle, thư mục Gradle Sc Script của bạn còn chứa một số tệp Gradle khác. Hầu hết thời gian bạn sẽ không phải chỉnh sửa thủ công các tệp này vì chúng sẽ tự động cập nhật khi bạn thực hiện bất kỳ thay đổi có liên quan đến dự án của mình. Tuy nhiên, nên hiểu vai trò của các tệp này trong dự án của bạn.
gradle-wrapper.properies (Phiên bản Gradle)
Tệp này cho phép người khác xây dựng mã của bạn, ngay cả khi họ chưa cài đặt Gradle trên máy của họ. Tệp này kiểm tra xem phiên bản chính xác của Gradle có được cài đặt hay không và tải xuống phiên bản cần thiết nếu cần.
cài đặt. Nâng cấp
Tập tin này tham khảo tất cả các mô-đun tạo nên dự án của bạn.
gradle.properies (Thuộc tính dự án)
Tập tin này chứa thông tin cấu hình cho toàn bộ dự án của bạn. Theo mặc định, nó trống, nhưng bạn có thể áp dụng một loạt các thuộc tính cho dự án của mình bằng cách thêm chúng vào tệp này.
local.properies (Vị trí SDK)
Tệp này cho plugin Android Gradle nơi nó có thể tìm thấy cài đặt SDK Android của bạn.
Lưu ý: local.properties
chứa thông tin dành riêng cho cài đặt cục bộ SDK Android. Điều này có nghĩa là bạn không nên giữ tập tin này dưới sự kiểm soát nguồn.
Đề nghị đọc - Hướng dẫn Tutsplus
Tôi đã hiểu rõ về gradle từ này.
Gradle là một loại công cụ xây dựng xây dựng mã nguồn của chương trình. Vì vậy, đây là một phần quan trọng của Android Studio và cần được cài đặt trước khi bắt đầu phát triển ứng dụng của bạn.
Chúng tôi không phải cài đặt riêng, vì Android Studio thực hiện điều đó cho chúng tôi khi chúng tôi thực hiện dự án đầu tiên.
ĐỊNH NGH :: A: Gradle có thể được mô tả một cơ chế xây dựng có cấu trúc, nơi nó cung cấp cho nhà phát triển công cụ và tính linh hoạt để quản lý tài nguyên của dự án để tạo các bản dựng smaller in size
, targeting specific requirements
cho một số thiết bị có cấu hình nhất định
CẤU HÌNH CƠ BẢN
minimumSdk
maximumSdk
targettedSdk
versionCode
versionName
LIBRARIES :: Chúng tôi có thể thêm thư viện Android hoặc bất kỳ thư viện bên thứ ba nào khác ngoài yêu cầu dễ dàng, đây là một nhiệm vụ tẻ nhạt trước đó. Nếu thư viện không phù hợp với dự án hiện có, Nhà phát triển được hiển thị nhật ký nơi người đó có thể tìm giải pháp phù hợp để thực hiện thay đổi cho dự án để có thể thêm thư viện. Nó chỉ là một dòng phụ thuộc
TẠO GIỐNG NHIỀU BUILDS
Kết hợp các kiểu xây dựng với các hương vị xây dựng để có được các biến của các biến xây dựng
==================== ====================
| BuildTypes | | ProductFlavours |
-------------------- ====================== --------------------
| Debug,Production | || || | Paid,Free,Demo,Mock|
==================== || || ====================
|| ||
VV VV
=================================================================
| DebugPaid, DebugFree, DebugDemo, DebugMock |
| ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
=================================================================
GIẢM GIÁ KÍCH THƯỚC
Gradle giúp giảm kích thước của bản dựng được tạo bằng cách xóa các tài nguyên không sử dụng cũng những thứ không được sử dụng khỏi các thư viện tích hợp
QUẢN LÝ GIẤY PHÉP
Chúng tôi có thể Chỉ định một số quyền nhất định cho các bản dựng nhất định bằng cách thêm các quyền nhất định trong các trường hợp nhất định dựa trên yêu cầu
BUILDS CHO THIẾT BỊ CERTAIN
Chúng tôi có thể quản lý việc tạo bản dựng cho một số thiết bị bao gồm mật độ nhất định và mức api nhất định. Điều này giúp triển khai sản phẩm trong cửa hàng ứng dụng theo yêu cầu trên nhiều loại thiết bị
TÀI LIỆU THAM KHẢO
Bạn có thể tìm thấy mọi thứ bạn cần biết về Gradle tại đây: Hướng dẫn sử dụng Plugin Gradle
Mục tiêu của Hệ thống Xây dựng mới
Mục tiêu của hệ thống xây dựng mới là:
- Giúp dễ dàng sử dụng lại mã và tài nguyên
- Giúp dễ dàng tạo một số biến thể của ứng dụng, để phân phối nhiều apk hoặc cho các hương vị khác nhau của ứng dụng
- Giúp dễ dàng định cấu hình, mở rộng và tùy chỉnh quá trình xây dựng
- Tích hợp IDE tốt
Tại sao tốt nghiệp?
Gradle là một hệ thống xây dựng nâng cao cũng như bộ công cụ xây dựng nâng cao cho phép tạo logic xây dựng tùy chỉnh thông qua các plugin.
Dưới đây là một số tính năng của nó khiến chúng tôi chọn Gradle:
- Ngôn ngữ cụ thể miền (DSL) để mô tả và thao tác logic xây dựng
- Xây dựng tệp dựa trên Groovy và cho phép trộn các phần tử khai báo thông qua DSL và sử dụng mã để thao tác các phần tử DSL để cung cấp logic tùy chỉnh.
- Quản lý phụ thuộc tích hợp thông qua Maven và / hoặc Ivy.
- Rất linh hoạt. Cho phép sử dụng các thực tiễn tốt nhất nhưng không bắt buộc cách làm việc riêng của nó.
- Các plugin có thể hiển thị DSL của riêng họ và API của riêng họ để xây dựng các tệp để sử dụng.
- API công cụ tốt cho phép tích hợp IDE
Tôi tham khảo hai hướng dẫn để viết Trả lời một , hai
Gradle là một mục đích chung, công cụ xây dựng khai báo. Đó là mục đích chung vì nó có thể được sử dụng để xây dựng khá nhiều thứ bạn quan tâm để thực hiện trong tập lệnh xây dựng. Đây là khai báo vì bạn không muốn thấy nhiều mã trong tệp xây dựng, không thể đọc được và ít bảo trì hơn. Vì vậy, trong khi Gradle cung cấp ý tưởng về các quy ước và một bản dựng đơn giản và khai báo, nó cũng làm cho công cụ có thể thích ứng và các nhà phát triển có khả năng mở rộng. Nó cũng cung cấp một cách dễ dàng để tùy chỉnh hành vi mặc định và các móc khác nhau để thêm bất kỳ tính năng nào của bên thứ ba.
Gradle kết hợp các phần tốt của cả hai công cụ và cung cấp các tính năng bổ sung và sử dụng Groovy làm Ngôn ngữ cụ thể miền (DSL). Nó có sức mạnh và tính linh hoạt của công cụ Ant với các tính năng Maven như xây dựng vòng đời và dễ sử dụng.
Tại sao tốt nghiệp? Tại sao bây giờ?
Phản ứng của công cụ xây dựng là thêm chức năng tạo kịch bản thông qua các cơ chế mở rộng không chuẩn. Bạn kết thúc việc trộn mã tập lệnh với XML hoặc gọi các tập lệnh bên ngoài từ logic xây dựng của bạn. Thật dễ dàng để tưởng tượng rằng bạn sẽ cần thêm nhiều mã tùy chỉnh hơn theo thời gian. Kết quả là, bạn chắc chắn sẽ giới thiệu sự phức tạp tình cờ, và khả năng bảo trì đi ra ngoài cửa sổ.
Giả sử bạn muốn sao chép tệp vào một vị trí cụ thể khi bạn xây dựng phiên bản phát hành của dự án. Để xác định phiên bản, bạn kiểm tra một chuỗi trong siêu dữ liệu mô tả dự án của bạn. Nếu nó khớp với sơ đồ đánh số cụ thể (ví dụ: 1.0-ĐÁNG TIN CẬY), bạn sao chép tệp từ điểm A sang điểm B. Từ góc nhìn bên ngoài, điều này có vẻ như là một nhiệm vụ tầm thường. Nếu bạn phải dựa vào XML, ngôn ngữ xây dựng của nhiều công cụ truyền thống, việc thể hiện logic đơn giản này trở nên khá khó khăn.
Sự phát triển của các công cụ xây dựng Java
Logic xây dựng Java phải được mô tả bằng XML. XML là tuyệt vời để mô tả dữ liệu phân cấp nhưng lại thiếu khi thể hiện luồng chương trình và logic điều kiện. Khi một kịch bản xây dựng phát triển phức tạp, việc duy trì mã tòa nhà trở thành một cơn ác mộng.
Trong Ant , bạn tạo mục tiêu JAR phụ thuộc vào mục tiêu biên dịch. Ant không đưa ra bất kỳ hướng dẫn nào về cách cấu trúc dự án của bạn. Mặc dù nó cho phép linh hoạt tối đa, Ant làm cho mỗi tập lệnh xây dựng trở nên độc đáo và khó hiểu. Các thư viện bên ngoài mà dự án của bạn yêu cầu thường được kiểm tra trong kiểm soát phiên bản vì không có cơ chế tự động để kéo chúng từ một vị trí trung tâm.
Maven 1 , được phát hành vào tháng 7 năm 2004, đã cố gắng giảm bớt quá trình đó. Nó cung cấp một dự án tiêu chuẩn và cấu trúc thư mục, cũng như quản lý phụ thuộc. Thật không may, logic tùy chỉnh là khó thực hiện
Gradle phù hợp với thế hệ công cụ xây dựng đó và đáp ứng nhiều yêu cầu của công cụ xây dựng hiện đại (Hình 1). Nó cung cấp một DSL biểu cảm, một quy ước về cách tiếp cận cấu hình và quản lý phụ thuộc mạnh mẽ. Nó thực hiện đúng bước từ bỏ XML và giới thiệu ngôn ngữ động Groovy để xác định logic xây dựng của bạn. Nghe có vẻ hấp dẫn phải không?
Gradle kết hợp các tính năng tốt nhất của các công cụ xây dựng khác.
Bộ tính năng hấp dẫn của Gradle
Tại sao xây dựng các dự án Java của bạn với Gradle thay vì Ant hay Maven?
Công cụ xây dựng mặc định cho Android (và ngôi sao mới của các công cụ xây dựng trên JVM) được thiết kế để dễ dàng tạo kịch bản cho các bản dựng đa ngôn ngữ phức tạp. Tuy nhiên, bạn nên thay đổi nó nếu bạn đang sử dụng Ant hoặc Maven?
Chìa khóa để mở khóa các tính năng sức mạnh của Gradle trong tập lệnh xây dựng của bạn nằm ở việc khám phá và áp dụng mô hình miền của nó, như được hiển thị trong hình dưới đây.
Gradle không thể biết tất cả các yêu cầu cụ thể để xây dựng doanh nghiệp của bạn. Bằng cách phơi bày các hook thành các giai đoạn trong vòng đời, Gradle cho phép theo dõi và định cấu hình hành vi thực thi của tập lệnh xây dựng.
Gradle thiết lập một từ vựng cho mô hình của nó bằng cách hiển thị DSL được triển khai trong Groovy. Khi xử lý một miền có vấn đề phức tạp, trong trường hợp này, nhiệm vụ xây dựng phần mềm, có thể sử dụng một ngôn ngữ chung để diễn đạt logic của bạn có thể là một công cụ mạnh mẽ.
Một ví dụ khác là cách bạn có thể thể hiện sự phụ thuộc vào các thư viện bên ngoài, một vấn đề rất phổ biến được giải quyết bằng các công cụ xây dựng. Gradle ngoài luồng cung cấp cho bạn hai khối cấu hình cho tập lệnh xây dựng cho phép bạn xác định các phụ thuộc và kho lưu trữ mà bạn muốn lấy chúng từ đó. Nếu các thành phần DSL tiêu chuẩn không phù hợp với nhu cầu của bạn, bạn thậm chí có thể giới thiệu từ vựng của riêng mình thông qua cơ chế mở rộng của Gradle.
Tích hợp với các công cụ xây dựng khác
Gradle chơi tốt với Ant, Maven và Ivy của người tiền nhiệm, như trong hình bên dưới.
Tự động hóa dự án của bạn từ Xây dựng đến Triển khai
Trong ảnh: Các giai đoạn của một đường ống triển khai.
Biên dịch mã
Chạy thử nghiệm đơn vị và tích hợp
Thực hiện phân tích mã tĩnh và tạo phạm vi kiểm tra
Tạo phân phối
Cung cấp môi trường mục tiêu
Triển khai việc giao hàng
Thực hiện khói và kiểm tra chức năng tự động
Lớp là một hệ thống xây dựng . Xây dựng hệ thống là các công cụ phần mềm được thiết kế để tự động hóa quá trình biên dịch chương trình. Xây dựng hệ thống có nhiều dạng khác nhau và được sử dụng cho nhiều nhiệm vụ xây dựng phần mềm. Trong khi mục tiêu chính của họ là tạo hiệu quả thực thi.
Một thuật ngữ liên quan khác là Xây dựng tự động hóa, đó là quá trình tự động hóa việc tạo ra một bản dựng phần mềm và các quy trình liên quan bao gồm: biên dịch mã nguồn máy tính thành mã nhị phân, đóng gói mã nhị phân và chạy thử nghiệm tự động.
Rất ít hệ thống xây dựng tương tự cho các ngôn ngữ khác là (xem danh sách đầy đủ ở đây ):
Có nguy cơ bị phân tán, tôi nghĩ đằng sau đây là câu hỏi tại sao trải nghiệm Android Studio / Gradle lại tệ đến vậy.
Trải nghiệm Clojure điển hình:
Trải nghiệm Android Studio / Gradle điển hình:
Tôi không chắc đây là lỗi chính xác của Gradle. Nhưng "nhập từ dự án Eclipse" có vẻ không ổn. Đối với tất cả sự tinh vi được cho là của Gradle và những ưu điểm của hệ thống xây dựng, Android Studio dường như không nhập các phụ thuộc xây dựng hoặc quy trình xây dựng từ Eclipse rất tốt.
Nó không cho bạn biết khi nào không thể nhập biểu đồ phụ thuộc hoàn chỉnh. Android Studio không cung cấp trợ giúp hoặc mẹo hữu ích nào về cách giải quyết vấn đề. Nó không cho bạn biết nơi bạn có thể tìm thủ công trong các thư mục Eclipse. Nó không cho bạn biết thư viện nào dường như bị thiếu. Hoặc giúp bạn tìm kiếm Maven, vv cho họ.
Trong năm 2016, những thứ như Leiningen / Clojars, hoặc npm của nút, hoặc Python của apkg (và tôi chắc chắn rằng nhiều trình quản lý gói tương tự cho các ngôn ngữ và hệ thống khác) đều hoạt động rất tốt ... thiếu phụ thuộc là quá khứ.
Ngoại trừ với Android. Android Studio hiện là nơi duy nhất mà tôi dường như vẫn còn gặp phải địa ngục phụ thuộc.
Tôi muốn nói rằng đây là lỗi của Google. Họ đã phá vỡ hệ sinh thái Android (và hàng ngàn dự án / hướng dẫn trực tuyến hiện có của Android) khi họ quyết định chuyển từ Eclipse sang Android Studio / Gradle mà không tạo ra một quy trình chuyển đổi mạnh mẽ. Những người có dự án làm việc trong Eclipse không thích ứng chúng với AS (có lẽ vì đó là một nỗi đau đối với họ). Và những người đang cố gắng sử dụng những dự án đó trong AS đang gặp phải những vấn đề tương tự.
Và dù sao đi nữa, nếu Gradle là hệ thống xây dựng siêu mạnh này, tại sao tôi vẫn quản lý rất nhiều phụ thuộc khác trong trình quản lý sdk? Tại sao một dự án không cần, giả sử, ndk chỉ định điều này trong tệp Gradle của nó để nó được tự động cài đặt và xây dựng chống lại khi cần? Tại sao NDK đặc biệt? Tương tự cho các nền tảng mục tiêu? Tại sao tôi lại cài đặt chúng một cách rõ ràng trong IDE thay vì chỉ kiểm tra dự án của tôi với chúng và có tất cả những thứ này được sắp xếp cho tôi ở hậu trường không?
Gradle
là một hệ thống xây dựng nâng cao cũng như bộ công cụ xây dựng nâng cao cho phép tạo logic xây dựng tùy chỉnh thông qua các plugin!
Ưu điểm:
Mục nhập
Thông qua DSL, có thể định cấu hình các mục nhập bảng kê khai sau:
Xây dựng biến thể
Theo mặc định, plugin Android tự động thiết lập dự án để xây dựng cả phiên bản gỡ lỗi và phiên bản phát hành của ứng dụng.
Phụ thuộc
Nếu bạn có lưu trữ nhị phân trong hệ thống tệp cục bộ mà mô-đun phụ thuộc, chẳng hạn như tệp JAR, bạn có thể khai báo các phụ thuộc này trong tệp xây dựng cho mô-đun đó.
Đầu tiên, kho lưu trữ phải được thêm vào danh sách, và sau đó phụ thuộc phải được khai báo theo cách Maven hoặc Ivy khai báo các tạo phẩm của chúng.
Gradle là ngôn ngữ Groovy JVM, kiến là gì đối với Java. Về cơ bản, đó là công cụ xây dựng của Groovy. Không giống như Ant, nó dựa trên ngôn ngữ Groovy đầy đủ. Ví dụ, bạn có thể viết mã tập lệnh Groovy trong tập lệnh Gradle để làm một việc gì đó thay vì dựa vào một ngôn ngữ miền cụ thể.
Tôi không biết tích hợp cụ thể của IntelliJ, nhưng hãy tưởng tượng bạn có thể "mở rộng" Groovy sao cho bạn có thể viết các nguyên thủy ngôn ngữ "xây dựng" cụ thể và chúng chỉ trở thành một phần của ngôn ngữ Groovy. .
Gradle là bộ công cụ xây dựng nâng cao dành cho Android, quản lý các phụ thuộc và cho phép bạn xác định logic xây dựng tùy chỉnh. các tính năng giống như
Tùy chỉnh, cấu hình và mở rộng quá trình xây dựng.
Tạo nhiều APK cho ứng dụng của bạn với các tính năng khác nhau bằng cùng một dự án.
Tái sử dụng mã và tài nguyên.
Gradle là bộ công cụ xây dựng tự động có thể tích hợp vào nhiều môi trường khác nhau không chỉ cho các dự án Android.
Dưới đây là một vài điều mà bạn có thể làm với gradle.
Cấu hình tối thiểu cần thiết cho các dự án mới vì Gradle có mặc định cấu hình cho các dự án studio android của bạn.
Tuyên bố phụ thuộc. Bạn có thể khai báo các tệp jar phụ thuộc hoặc tệp thư viện được lưu trữ trong máy chủ cục bộ hoặc từ xa.
Gradle tự động tạo thư mục thử nghiệm và APK thử nghiệm từ nguồn dự án của bạn.
Nếu bạn thêm tất cả các thông tin cần thiết, chẳng hạn như keyPassword
, và keyAlias
vào tệp xây dựng Gradle của bạn, bạn có thể sử dụng Gradle để tạo APK có chữ ký.
Gradle có thể tạo nhiều APK với các gói khác nhau và xây dựng cấu hình từ một mô-đun duy nhất.
Trong Android Studio, Gradle là một công cụ xây dựng tùy chỉnh được sử dụng để xây dựng các gói Android (tệp apk) bằng cách quản lý các phụ thuộc và cung cấp logic xây dựng tùy chỉnh.
Tệp APK (gói Ứng dụng Android) là tệp zip được định dạng đặc biệt có chứa
Một tệp apk được ký và đẩy vào thiết bị bằng ADB (Cầu gỡ lỗi Android) nơi nó được thực thi.
Gradle là một công cụ xây dựng tùy chỉnh và được sử dụng để xây dựng APK hoặc được gọi là bộ gói ứng dụng.
bởi @Brian Gardner:
Gradle là một công cụ xây dựng mở rộng và quản lý phụ thuộc cho các dự án lập trình. Nó có một ngôn ngữ cụ thể miền dựa trên Groovy. Gradle cũng cung cấp hỗ trợ xây dựng theo quy ước cho nhiều loại dự án bao gồm Java, Android và Scala.
Tính năng của Gradle:
Gradle là thứ giúp chúng ta có thể tự động hóa việc xây dựng các dự án Android phức tạp liên quan đến 10 nghìn dòng mã từ nhiều nguồn, dự án, thư viện, v.v. Nó có thể tạo ra nhiều APK được tối ưu hóa dựa trên rất nhiều thông số kỹ thuật cấu hình - nếu bạn là quan tâm, các câu trả lời khác cung cấp thêm chi tiết về khía cạnh này của Gradle.
Tuy nhiên, nếu bạn chưa quen với việc phát triển Android, Gradle trong 99% trường hợp là điều ngăn dự án của bạn xây dựng. Đây là một hệ thống phức tạp, khó hiểu, có thể làm xáo trộn hiệu quả quá trình xây dựng Android và về cơ bản khiến nó không có sẵn cho các nhà phát triển thiếu kinh nghiệm, tức là để xây dựng một Ứng dụng Android cấp đơn giản, người mới không nghi ngờ có thể cần nghiên cứu và hiểu nhiều điều mà họ không mặc cả nhu la:
Tất cả những điều này rất thú vị và hữu ích cho các nhà phát triển Android biết, nhưng chúng không dễ dàng và đưa ra một rào cản ghê gớm để gia nhập. Tôi nghi ngờ rằng điều khiến OP cảm thấy khó khăn khi đặt câu hỏi này là cảm giác thất vọng chắc chắn sẽ tấn công nhà phát triển tân sinh sau khi mất quá nhiều thời gian để cố gắng có được một ứng dụng đơn giản để xây dựng và liên tục bị Gradle cản trở. Vấn đề trở nên trầm trọng hơn bởi số lượng tài liệu kỹ thuật cao có sẵn cho tất cả các công nghệ này. Ngoài ra đối với một lượng lớn nhu cầu phát triển Gradle là quá mức cần thiết.
Một cách khác là viết một kịch bản shell xây dựng dự án của bạn bằng cách tự động hóa các công cụ có sẵn trong SDK Android. Ưu điểm của phương pháp này là rất nhiều, đối với người mới bắt đầu, đây có lẽ là cách tốt nhất để nghiên cứu và hiểu quy trình xây dựng và hệ sinh thái Android và cho phép bạn kiểm soát hoàn toàn cách xây dựng ứng dụng của mình. Tuy nhiên, cách tiếp cận này phù hợp hơn với những người đứng đầu công nghệ vô cùng sâu sắc hơn là những người không có kinh nghiệm dùng thử Android.
Điều đáng chú ý bởi sự vắng mặt của nó (vui lòng thông báo cho tôi nếu có một thứ như vậy) là một mức nhập cảnh, IDE nhẹ với bộ tính năng giảm đồng thời đơn giản hóa quá trình xây dựng trong khi không che khuất nó (vì vậy không phải là netbeans hoặc nhật thực) sử dụng Gradle (có gì sai với Ant). Nó sẽ giúp bạn dễ dàng tạo APK phù hợp với một vài cấu hình phổ biến và sử dụng cấu trúc dự án có thể phát triển thành dự án Android Studio đầy đủ nếu bạn quyết định thực hiện theo cách đó.
Nói một cách dễ hiểu, Gradle là một công cụ được cung cấp bởi Android Studio để thực hiện hai quy trình quan trọng:
Kết quả tìm kiếm Đoạn trích nổi bật từ web Android | xây dựng. lớp. Gradle là một hệ thống xây dựng (mã nguồn mở) được sử dụng để tự động hóa việc xây dựng, thử nghiệm, triển khai, v.v ... Ví dụ, tác vụ đơn giản để sao chép một số tệp từ thư mục này sang thư mục khác có thể được thực hiện bởi tập lệnh xây dựng Gradle trước khi xây dựng thực tế quá trình xảy ra.
Trong Android Studio, Gradle được sử dụng để xây dựng các dự án ứng dụng Android của chúng tôi, do đó đóng vai trò là một hệ thống xây dựng. Trước Android Studio, trong Eclipse, chúng tôi đã từng biên dịch và xây dựng các ứng dụng bằng công cụ dòng lệnh đã sớm được tiếp quản bởi các bước dựa trên GUI để xây dựng và chạy Ứng dụng Android trong nhật thực bằng ANT. Mỗi công cụ phát triển ứng dụng Android phải biên dịch tài nguyên, mã nguồn java, thư viện bên ngoài và kết hợp chúng thành APK cuối cùng.
Học sinh lớp là một hệ thống xây dựng, chịu trách nhiệm biên dịch mã, kiểm tra, triển khai và chuyển đổi mã thành các tệp .dex và do đó chạy ứng dụng trên thiết bị.
Vì Android Studio đi kèm với hệ thống Gradle được cài đặt sẵn, nên không cần cài đặt thêm phần mềm thời gian chạy để xây dựng dự án của chúng tôi. Bất cứ khi nào bạn nhấp vào nút trong studio android, một tác vụ lớp sẽ tự động kích hoạt và bắt đầu xây dựng dự án và sau khi lớp hoàn thành nhiệm vụ của nó, ứng dụng bắt đầu chạy trong AVD hoặc trong thiết bị được kết nối.
Một hệ thống xây dựng như Gradle không phải là trình biên dịch, trình liên kết, v.v., nhưng nó kiểm soát và giám sát hoạt động biên dịch, liên kết các tệp, chạy các trường hợp thử nghiệm và cuối cùng bó mã vào tệp apk cho Ứng dụng Android của bạn.
Có hai tệp build.gradle cho mỗi dự án studio android, một tệp dành cho ứng dụng và tệp kia dành cho tệp dự án (cấp mô-đun) .
Trong quá trình xây dựng, trình biên dịch sẽ lấy mã nguồn, tài nguyên, các tệp JAR của thư viện bên ngoài và AndroidManifest.xml (chứa dữ liệu meta về ứng dụng) và chuyển đổi chúng thành các tệp .dex (tệp thực thi Dalvik) , bao gồm mã byte . Mã byte đó được hỗ trợ bởi tất cả các thiết bị Android để chạy ứng dụng của bạn. Sau đó, Trình quản lý APK kết hợp các tệp .dex và tất cả các tài nguyên khác thành tệp apk đơn. APK Packager ký gỡ lỗi hoặc phát hành apk bằng cách sử dụng gỡ lỗi hoặc phát hành kho khóa tương ứng.
Apk gỡ lỗi thường được sử dụng cho mục đích thử nghiệm hoặc chúng tôi có thể nói rằng nó chỉ được sử dụng ở giai đoạn phát triển. Khi ứng dụng của bạn hoàn tất với các tính năng mong muốn và bạn đã sẵn sàng xuất bản ứng dụng của mình để sử dụng bên ngoài thì bạn yêu cầu apk Phát hành được ký bằng cách sử dụng kho khóa phát hành.
Bây giờ hãy làm sáng tỏ các tập tin gradle.
setting.gradle Các setting.gradle (Gradle thiết lập) tập tin được sử dụng để xác định tất cả các module được sử dụng trong ứng dụng của bạn.
build.gradle (cấp dự án ) Tệp build.gradle cấp cao nhất (mô-đun) là tệp xây dựng cấp dự án, xác định cấu hình xây dựng ở cấp dự án. Tập tin này áp dụng các cấu hình cho tất cả các mô-đun trong dự án ứng dụng Android.
build.gradle (cấp ứng dụng) Tệp build.gradle cấp ứng dụng được đặt trong mỗi mô-đun của dự án Android. Tệp này bao gồm tên gói của bạn là applicationID, tên phiên bản (phiên bản apk), mã phiên bản, sdk tối thiểu và đích cho một mô-đun ứng dụng cụ thể. Khi bạn bao gồm các thư viện bên ngoài (không phải các tệp jar) thì bạn cần đề cập đến nó trong tệp phân loại cấp ứng dụng để đưa chúng vào dự án của bạn dưới dạng phụ thuộc của ứng dụng.
Lưu ý: Nếu một ứng dụng nhất định được phát triển theo các biến thể cho các mô-đun riêng lẻ như Điện thoại thông minh, Máy tính bảng hoặc TV thì phải tạo các tệp lớp riêng biệt cho tất cả. Bạn thậm chí có thể bắt đầu hệ thống lớp của bạn thông qua công cụ dòng lệnh . Các lệnh sau được sử dụng cho nó:
./gradlew build - (xây dựng dự án)
./gradlew xây dựng sạch - (xây dựng hoàn thành dự án xây dựng)
./gradlew xây dựng sạch - (chạy thử nghiệm)
./gradlew Wrapper - (để xem tất cả các tác vụ có sẵn)
Gradle = Groovy + Cradle Hans Dockter bình luận diễn đàn
Sự nhầm lẫn này là một chút không cần thiết khi nó có thể được gọi là "Build" hoặc một cái gì đó trong Android Studio.
Chúng tôi muốn gây khó khăn cho bản thân trong cộng đồng Phát triển.