2011-10-29 44 views
9

Tôi đã tạo một ứng dụng demo với sbt android-plugin.Thời gian xây dựng lâu dài với sbt android-plugin

Ứng dụng rất đơn giản. Tôi đã đặt một tập tin MainActivity.java dưới /src/main/java/my/package/ và khi nhấn một nút, nó sẽ đưa bạn đến một số Activity thứ hai nhưng được thực hiện trong Scala.

Mọi thứ đều hoạt động tốt nhưng thời gian xây dựng đang giết chết tôi. Khi tôi thay đổi một cái gì đó tôi chạy trong điện thoại của tôi sử dụng:

> android: gói-debug

> android: khởi động thiết bị

Vấn đề của tôi là nó mất gần một phút hoàn chỉnh để xây dựng một dự án hai hoạt động. Có cách nào khác để biên dịch và chạy không?

Đây là đầu ra của tôi về android: gói-debug

> android: gói-debug [info] Đã viết /Users/macarse/Documents/demo/target/src_managed/main/scala/my/package/TR.scala [info] Biên dịch 1 Scala source thành /Users/macarse/Documents/demo/target/scala-2.9.0-1/classes ... ProGuard, phiên bản 4.6 ProGuard được phát hành theo GNU General Giấy phép Công cộng. Do đó, bạn phải đảm bảo rằng các chương trình liên kết với nó (scala, ...) cũng mang theo Giấy phép Công cộng GNU. Ngoài ra, bạn có thể đăng ký ngoại lệ với tác giả của ProGuard. Đọc thư mục chương trình [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes] Đọc jar chương trình [/Users/macarse/.sbt/boot/scala-2.9.0-1/ lib/scala-library.jar] (được lọc) Đọc thư viện jar [/Users/macarse/Documents/android-sdk-mac_86/platforms/android-4/android.jar] Lưu ý: Bạn đang bỏ qua tất cả cảnh báo! Chuẩn bị lọ đầu ra [/Users/macarse/Documents/demo/target/classes.min.jar] Sao chép tài nguyên từ thư mục chương trình [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes ] Sao chép tài nguyên từ chương trình jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala-library.jar] (được lọc) [thông tin] Dexing /Người dùng/thưa/Tài liệu /demo/target/classes.dex [info] Đóng gói /Users/macarse/Documents/demo/target/demo-0.1.apk [thành công] Tổng số thời gian: 56 giây, hoàn thành ngày 29 tháng 10 năm 2011 4:22:54 CH

Trả lời

3

Mất nhiều thời gian vì người bảo vệ cần xử lý Thư viện chuẩn Scala để giảm thiểu tệp .apk bạn nhận được và thư viện chuẩn Scala là rất lớn.

Tôi sẽ đề nghị bạn chuyển sang Scala 2.8 nếu bạn không sử dụng các tính năng của Scala 2.9, vì 2.8 có một thư viện chuẩn nhỏ hơn.

Mặt khác, không sử dụng android:package-debug khi không cần thiết. compile sẽ biên dịch mã nguồn của bạn, nó là đủ nếu bạn chỉ muốn đảm bảo chương trình của bạn có thể được biên dịch.

Chỉ sử dụng android:package-debug khi bạn chuẩn bị thử nghiệm trên thiết bị Android, điều này sẽ tiết kiệm thời gian của bạn.

+0

Cảm ơn bạn đã trả lời. AFAIK biên dịch cũng làm proguard vượt qua vì vậy nó sẽ mất nhiều thời gian là tốt. – Macarse

+1

Điều đó không đúng, ít nhất là trong android-plugin 0.6.x. 'compile' sẽ không thực hiện lệnh proguard pass. –

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