2012-05-16 19 views

Trả lời

10

Nhận xét trong tệp Java bị xóa hoặc bỏ qua khi chúng được biên dịch thành tệp lớp. Các tệp lớp không dành cho người đọc - chúng được tối ưu hóa để chạy hiệu quả trên máy ảo. Nếu các bình luận vẫn còn, chúng sẽ chỉ khiến các tệp lớp lớn hơn yêu cầu, và không có thêm lợi ích (tức là trình biên dịch và các máy ảo không hiểu ý kiến, vậy tại sao lại bao gồm chúng)

Các tệp XML, các bình luận thường được giữ lại. Trong khi một tệp lớp được biên dịch chỉ có 1 mục đích (để chạy trên một máy ảo), một tệp XML có thể phục vụ cho nhiều mục đích. Ví dụ, bạn có thể tải một tệp XML vào ứng dụng của bạn và thao tác nó. Tùy thuộc vào việc sử dụng tệp XML trong ứng dụng của bạn, nó có thể được yêu cầu để giữ các nhận xét trong đó - trên thực tế, ứng dụng của bạn có thể tìm kiếm các nhận xét cụ thể. Bởi vì các tệp XML có thể có nhiều phạm vi sử dụng, các nhận xét không bị xóa khỏi các tệp XML trong trường hợp chúng được yêu cầu cho một số mục đích khác.

+0

Cảm ơn! Hiểu rồi. :) Có lẽ tôi cần xóa một số nhận xét của tôi về XML trước khi xuất ứng dụng của tôi vì mục đích bảo mật. – Arci

+2

Tôi chắc chắn sẽ khuyên bạn nên xóa các nhận xét khỏi XML nếu bạn lo lắng về các tác động bảo mật. Nếu bạn có nhiều nhận xét, nó cũng sẽ khiến ứng dụng chạy chậm hơn một chút vì nó phải bỏ qua tất cả các nhận xét khi đọc tệp XML. Nó trả tiền để nhớ rằng các tập tin XML được cố tình thiết kế để được con người có thể đọc được :-) – wattostudios

+0

Cảm ơn! Tôi sẽ xóa nhận xét của tôi rồi. – Arci

5

Nhận xét không có mặt trong các mã byte/phiên bản .class của file..comments được bỏ qua bởi trình biên dịch tại thời điểm biên soạn ..

Một trình biên dịch làm việc theo một cách mà nó chuyển đổi tất cả các cao Cấp mã ngôn ngữ để máy Code dễ hiểu .. tất cả cùng một lúc .. không dòng theo dòng như một thông dịch viên .. trong trường hợp của Android .. trình biên dịch chuyển đổi các tập tin nguồn .java vào tập tin bytecode/.class..và sau đó để .dex tập tin (Dalvik thực thi) .. Tất cả các ứng dụng trong Android chạy trên đầu trang của một máy ảo được gọi là Dalvik Virtual Machine cần các tập tin .dex ..

Hãy thử mở một tập tin apk như một zip .. usin g bất kỳ kho lưu trữ nào .. bạn sẽ thấy tệp classes.dex trong đó ..

Và theo như các tệp xml có liên quan .. chúng chỉ được ứng dụng sử dụng khi bạn hiển thị nội dung nào đó trên màn hình (tức là Hoạt động kết xuất) .. do đó tại thời điểm hoạt động được hiển thị..its tập tin xml tương ứng được sử dụng để xây dựng giao diện người dùng .. quá trình này được gọi là lạm phát!

EDIT: [Nhưng 1 điểm tôi nhớ bây giờ liên quan đến điều này .. các ứng dụng hệ thống có mặt trong điện thoại Android..với tất cả các ứng dụng được Google cung cấp (Gmail, Maps, v.v.), Danh bạ, Điện thoại. apk vv ..tất cả những người có hệ thống apks..present trong/hệ thống/app/thư mục .. họ có thể hoặc có thể không chứa các tập tin .dex trong chúng ..

nếu chúng chứa .dex bên trong các tập tin apk (giống như bất kỳ ứng dụng bình thường nào mà chúng ta phát triển) .. sau đó ROM được gọi là ROM (phần vững của hệ điều hành Android) .. nhưng điều này dẫn đến việc khởi động chậm hơn khi ROM được cài đặt lần đầu tiên do sao chép tất cả các tệp .dex từ tệp .apk của hệ thống vào bộ nhớ cache dalvik..sau khi tất cả các tệp .dex của hệ thống apks là cần thiết khi khởi động/khởi động hệ thống ..

Nhưng nếu ROM là odexed .. tất cả các tệp .dex của hệ thống .apk không có trong tệp .apk nhưng dưới dạng tệp riêng biệt trong/system/app/directory .. với phần mở rộng .odex

Đối với tất cả các ứng dụng bạn và tôi phát triển (các ứng dụng không phải hệ thống) .. chỉ là các ứng dụng của cửa hàng trò chơi..có chứa .dex bên trong .apk]

EDIT: tôi biết nó không liên quan nhiều đến công việc hoặc câu hỏi .. nhưng chỉ muốn đề cập đến sự khác biệt của vị trí của các tập tin .dex cho các ứng dụng sys và không phải sys! :)

Hy vọng điều đó đã hữu ích! :)

+0

Cảm ơn, RiASH! Làm thế nào về các ý kiến ​​trên XML? Họ cũng bị loại bỏ trên biên dịch? – Arci

+1

Nhận xét trong tệp xml thường được lưu giữ! – ritesht93

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