2013-04-23 33 views
11

Đây là những gì tôi đang nghĩ:android - strings.xml vs hằng số tĩnh

Các chuỗi trên strings.xml nên được sử dụng cho bố trí (xml) để sử dụng. Và hằng số tĩnh là dành cho mã (.java) để sử dụng.

Khi nói đến các phương pháp hay nhất, tôi muốn biết nên sử dụng điều gì.

Nếu bạn có nhiều chuỗi, nó sẽ có hiệu quả hoạt động?

getString(...) vs MyConstants.THIS_IS_A_CONSTANT 
+1

Nếu bạn không quan tâm đến nội địa hóa hoặc bất kỳ của [vòng loại] khác (http://developer.android.com/guide/topics/resources/providing-resources.html) mà Android hỗ trợ cho tài nguyên, khi đó bạn có thể sử dụng hằng số Java. Tôi sẽ hằng số để được nhanh hơn một chút, vì chúng có thể được biên dịch bởi trình biên dịch và không cần phải được thổi phồng. Tuy nhiên, nó có lẽ chỉ là một tối ưu hóa vi mô, vì vậy tôi sẽ không lo lắng về nó quá nhiều, miễn là bạn không thực hiện bất kỳ thao tác lặp nào trên chuỗi giao diện người dùng mà bạn liên tục thổi phồng chuỗi hoặc chuỗi chuỗi. –

+0

Nếu bạn muốn xuất bản ứng dụng của mình bằng các ngôn ngữ khác nhau thì tất cả Chuỗi xuất hiện trên giao diện người dùng phải nằm trong tệp strings.xml. Phần còn lại bạn có thể làm cho chúng tĩnh nếu bạn muốn. –

+1

Nếu nó thực sự là "thực hành tốt nhất" bạn đang theo sau, không bao giờ hardcode chuỗi giao diện người dùng, ngay cả trong một dự án nhỏ, cá nhân. Tốt nhất để tránh những thói quen xấu mà một ngày nào đó sẽ khiến các lập trình viên của bạn đổ muối vào cà phê của bạn khi họ phải quốc tế hóa mã của bạn. Ngay cả trong mã, một số chuỗi phải là tài nguyên, ví dụ: khi xử lý dữ liệu nhập của người dùng có thể thay đổi theo ngôn ngữ. – MarsAtomic

Trả lời

33

Có cả một số ưu điểm và nhược điểm (tôi nên nói những ưu điểm và lợi thế kém) trong hai trường hợp này.

như trong nhận xét về câu hỏi của bạn, họ đã nói tất cả. Tôi chỉ muốn thêm một số điểm nhỏ.

Localization:

Đối với vấn đề nội địa hóa chắc chắn Chuỗi nguồn là tốt nhất như bạn có thể sử dụng tập tin ngôn ngữ khác nhau cho differente Locale.

Memory:

Là nguồn Chuỗi sẽ được lưu trong file xml nên có một số chi phí phụ (không phải là một chính mặc dù)

Hiệu suất:

đọc từ bộ nhớ luôn là nhanh hơn đọc từ tệp. Mặc dù trong trường hợp này sự khác biệt hiệu suất không có ý nghĩa

Bảo trì:

Nó chỉ là một ý kiến ​​cá nhân. Để tôi duy trì tập tin res dễ dàng hơn việc duy trì chuỗi trong lớp. string.xml dễ đọc hơn đối với tôi.

Cuối cùng:

Vì vậy, đề nghị của tôi là

nguồn lực sử dụng chuỗi cho văn bản đó sẽ được hiển thị cho người dùng.

sử dụng hằng tĩnh cho puposes nội bộ của chương trình của bạn như tên cơ sở dữ liệu, biến nội bộ, tên bộ lọc ý định, vv

+0

Theo như tôi biết các tập tin xml cũng được biên dịch trong apk vì vậy tôi không nghĩ rằng có bất kỳ quá tải. –

+0

Một điều nữa là một chuỗi từ XML có thể được sử dụng trực tiếp trong các bố trí XML, đó không phải là trường hợp cho các hằng số. –

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