2015-04-09 93 views
18

tôi đã cố gắng xây dựng nó:Tối ưu hóa thời gian xây dựng trong Android Studio

  • song song (giúp một chút)
  • daemon = true
  • preDexLibraries đúng/sai (có sự khác biệt lớn)
  • gia tăng đúng
  • ngoại tuyến

Cần> 40s MỌI thời gian. Nó không quan trọng nếu tôi thay đổi bất cứ điều gì hay không. Xây dựng nó sau khi "gradle clean" mất> 50s.

Tôi hy vọng rằng tôi đang làm điều gì đó sai. Eclipse/kiến ​​có thể xây dựng các bản dựng liên tiếp VỚI THAY ĐỔI trong < 10 giây.

Bất kỳ trợ giúp nào để mang lại điều này được đánh giá cao <. Có, chúng tôi có rất nhiều mô-đun, một số thư viện jar, một số phụ thuộc maven. Vẫn không hiểu tại sao phải mất> 40 giây cho hai lần xây dựng liên tiếp mà không có thay đổi nào.

Gradle được sử dụng: 2.2.1 Android studio: không thực sự có liên quan, thường chỉ xây dựng nó bằng Gradle.

CHỈNH SỬA: thêm một số nhật ký lược tả.

: Ứng dụng: dexProjDebug 22.541s

: Ứng dụng: shrinkProjDebugMultiDexComponents 4.279s

: Ứng dụng: compileProjDebugJava 3.478s

: Ứng dụng: packageProjDebug 2.591s

: Ứng dụng: processProjDebugResources 2.590s

: ứng dụng: packageAllProjDebugC lassesForMultiDex 2.536s

: Ứng dụng: createProjDebugMainDexClassList 2.126s

+0

Tiền thưởng là thu hút nhiều hơn. – Danail

+2

Tập lệnh xây dựng của bạn có chứa nhiều tác vụ tùy chỉnh không? Trong trường hợp này, có thể những cấu hình này không được định cấu hình chính xác nên Gradle không nhận ra được khi nào các tác vụ được cập nhật? Bạn có thể chia sẻ tập lệnh và/hoặc đầu ra của tập lệnh không? –

+0

Không có tác vụ tùy chỉnh. Chỉ là một loạt các dự án thư viện với mã nguồn (8) và một số dự án khác được sử dụng trực tiếp như các phụ thuộc gradle/maven. – Danail

Trả lời

1

Bạn cần phải xác định đúng đầu vào và đầu ra ngay cả đối với các dự án thư viện với mã nguồn. (Gradle Documentation). Bạn có nhận được tin nhắn UP-TO-DATE khi bạn xây dựng lại lần thứ hai trở đi không?

1

Nếu bạn không có thay đổi đối với các mô-đun khác, bạn có thể tự xây dựng ứng dụng bằng cách sử dụng gradlew :app:build. Nếu bạn cần xây dựng một mô-đun và ứng dụng, bạn có thể thực thi cả hai tác vụ cùng một lúc để tránh phải qua giai đoạn cấu hình của Gradle hai lần: gradlew :app:build :moduledirectoryname:build

1

Nếu có thể, hãy cập nhật lên Gradle 2.4. Nhanh hơn đáng kể (yêu cầu 20-40%)

1

Một trong những s các bộ giảm thời gian xây dựng đáng kể là nhiệm vụ preDex. Kiểm tra xem preDex có đang chạy trong bản dựng của bạn không. Nó làm tăng thời gian xây dựng lần đầu tiên bạn chạy nó, nhưng làm giảm đáng kể thời gian xây dựng trong các bản dựng tiếp theo, vì hầu hết các SDK và thư viện của bạn sẽ bị xóa. Tuy nhiên, lưu ý rằng nó sẽ không chạy trong một số điều kiện, ví dụ: nếu bạn sử dụng multidex.

Btw Google biết rõ về thời gian xây dựng với Gradle và Android Studio và sẽ giới thiệu những cải tiến đáng kể trong các bản phát hành sắp tới, bao gồm Jack và Jill, cho phép biên dịch từ mã nguồn trực tiếp sang dex. Bạn đã có thể thử nghiệm với chúng - xem tại đây: http://tools.android.com/tech-docs/jackandjill.

Cũng đáng xem video này từ gần đây Google I/O: https://youtu.be/f7ihSQ44WO0?t=327

0

Tải Genymotion giả lập. Nó rất nhanh và tốt để chạy các ứng dụng android. Nó sẽ giúp bạn tiết kiệm rất nhiều thời gian. Đây là liên kết - GenyMotionDownload

Các vấn đề liên quan