2014-09-25 25 views
5

Tôi đang cố gắng tùy chỉnh hành vi của bản dựng Gradle của mình để thân thiện với Android-Wear.Gradle Android - Ghi đè các tác vụ chuẩn

Tôi đang gói gói ứng dụng mặc theo cách thủ công trong gói ứng dụng đã xử lý của mình (vì tôi không quản lý tự động hóa). Điều này có nghĩa là nếu tôi muốn xây dựng một phiên bản mới của apk đã xử lý, tôi phải xây dựng gói ứng dụng mặc của mình theo cách thủ công, sao chép/dán quá trình tạo gói apk đã tạo bằng cách nhập lại/nguyên của dự án đã xử lý rồi xây dựng phiên bản mới apk được xử lý.

Tôi muốn tất cả điều này được tự động hóa.

Vì vậy, những gì tôi cần làm là:

  1. Khởi chạy ứng dụng: assembleRelease từ dòng cmd
  2. Gradle đầu tiên làm một mặc: assembleRelease
  3. Cuối cùng, Gradle lấy apk từ wear/output/apk/wear-apk.apk và sao chép nó trong app/src/main/res/raw
  4. Sau đó Gradle thể procede để làm ứng dụng: assembleRelease

Tôi không tìm thấy cách khởi động một nhiệm vụ (mặc: assembleRelease) từ một nhiệm vụ khác.

Mọi trợ giúp đều được chào đón!

Trả lời

4

Tôi đã tìm thấy giải pháp có thể không tối ưu nhưng giải pháp này hoạt động cho những gì tôi cần.

Trong ứng dụng xử lý của tôi, tôi lần đầu tiên phải nói rằng assembleRelease phụ thuộc vào mặc của tôi: assembleRelease:

app/build.gradle

project.afterEvaluate { 
    preReleaseBuild.dependsOn(':wear:assembleRelease') 
} 

preReleaseBuild là một trong những nhiệm vụ đầu tiên của xây dựng nhưng nhiệm vụ này được tạo động, đó là lý do tại sao bạn phải bọc nó sau khi dự án được đánh giá.

Sau đó, trong mặc tôi build.gradle, tôi phải xác định các bản sao ở phần cuối của việc xây dựng:

mặc/build.gradle

assembleRelease << { 
    println "Copying the Wear APK" 
    copy { 
     from 'build/outputs/apk' 
     into '../app/src/main/assets' 
     include '**/wear-release.apk' 
    } 
} 

Chỉ với đề tài thay đổi, tôi quản lý để có luồng công việc được giải thích trong câu hỏi.

Điều này có thể được cải tiến vì nó chỉ hoạt động cho bản phát hành bản phát hành nhưng đây là bước đầu tiên tốt.

Hãy thoải mái nhận xét giải pháp này.

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