2012-11-27 38 views
10

Vì vậy, tôi đã nhận thấy khá thời gian gần đây một thư mục trong dự án PhoneGap/Android của tôi (dự án/bin/dexedLibs) và thư mục này chứa hai tập tin .jar. Sau khi gãi trên internet, tôi tìm thấy một trang web trong đó tác giả nói rằng phiên bản ADT 21 đặt "Libed trước dexed" trong dự án để cho phép thời gian xây dựng nhanh hơn.dexedLibs trong dự án android

tôi đã nâng cấp gần đây tại những ADT 21 và đã chỉ tự hỏi nếu ai khác có thể cho tôi biết thêm thông tin về những gì các "pre-dexed Libs" thực sự làm gì? Tôi đã không thể tìm thấy bất kỳ thông tin hữu ích nào khác trên mạng.

Trả lời

10

Tôi có một dự án Android với khoảng 20 thư viện bên ngoài. Trước ADT 21, mỗi khi tôi thay đổi mã nguồn, nó đã mất nhiều thời gian để xây dựng lại ứng dụng. Bây giờ nó khá nhanh!

Tôi đoán lý do là, trước khi ADT 21, nó được biên dịch các thư viện bên ngoài vào mã dex mỗi khi bạn nhấn vào nút "Run" trong nhật thực. Bây giờ nó sẽ biên dịch mã dex cho các thư viện bên ngoài chỉ một lần (cho đến khi chúng thay đổi) và sử dụng các thư viện dựng sẵn cho sau này "Chạy" s.

Tôi thích tính năng đó!

+0

Cảm ơn Jane - Điều này xác nhận ý nghĩa của tác giả khi nói tính năng này giúp cải thiện thời gian "xây dựng nhanh hơn". – Boyds

5

Hãy lưu ý! Tôi vừa trải qua một giờ để tìm hiểu lý do tại sao tôi nhận được ngoại lệ:

Caused by: java.lang.NoSuchMethodError: 

Lý do là bởi vì tôi đã thay đổi jar lib của tôi để jar mới (cùng tên) với phương pháp làm việc, và ADT 21 không chuẩn bị cái mới trong dexedLibs.

Vì vậy, chỉ cần xóa bin dir và Eclipse sẽ tái tạo này.

0

Câu hỏi là khoảng 2 tuổi mà vẫn quan tâm.

Đối với những người duyệt ở đây sau: Tôi chỉ gặp rắc rối vì tôi đã đổi tên dự án Cordova từ my.name.a3e thành my.name.A3E và sau đó quá trình xây dựng bị lỗi. Đã ra rằng các tập tin dexed trong ant-build không được làm mới (trường hợp độ nhạy). Nó hoạt động tốt sau khi tôi xóa thư mục ant-build, nhưng quá trình xây dựng mất nhiều thời gian hơn vào lần đầu tiên sau đó.

Một tập tin dex là Dalvik tập tin thực thi, một số mã byte biên soạn có thể được thực hiện bởi các máy ảo Dalvik. Dalvik là một thành phần cốt lõi của Android, vì vậy đó là lý do tại sao nó ở đó.

http://sourceforge.net/projects/dexer/ http://developer.android.com/reference/dalvik/system/DexFile.html http://fileinfo.com/extension/dex

Lưu ý rằng dự án Eclipse sạch sẽ không loại bỏ libs dexed.

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