Tôi có ấn tượng rằng Android hỗ trợ sự phản chiếu. Nhưng nó thực sự? Làm thế nào hợp lý nó sẽ được dựa vào sự phản ánh rất nhiều? Hình phạt là gì?Android và phản chiếu
Trả lời
Android hỗ trợ phản chiếu.
Khi bạn đã có một mẫu thử nghiệm đang chạy, bạn có thể đo điểm chuẩn và xác định các nút cổ chai của mình.
Nếu phản ánh của nó, hãy xem xét cố gắng lưu vào bộ nhớ cache giao diện và làm cho nó trở thành một chi phí một lần, thay vì liên tục giải quyết cùng một giao diện từ cùng một trường hợp nhiều lần.
Nó được hỗ trợ và thậm chí được đề xuất trong trường hợp bạn muốn tương thích với nhiều phiên bản của hệ điều hành Android trong một tệp apk
. Bài viết này từ chính thức phát triển Android Blog mô tả làm thế nào để xây dựng một ứng dụng mà chỉ đòi hỏi một số phiên bản đầu tiên của API, và sử dụng phản ánh để gọi API mới nếu họ có sẵn:
Có một ví dụ tốt đẹp của sự phản chiếu trong mã mẫu là tốt, trong BusinessCard. Phương pháp này sẽ không dẫn đến một loạt các expections được ném, do đó, nó phải được nhiều hơn nữa hiệu suất thân thiện. Nó cũng là, theo ý kiến của tôi, dễ dàng hơn để thực hiện. Đặc biệt là nếu nó liên quan đến một phương pháp chưa được thực hiện trước đó.
Đây là nơi nó được sử dụng: http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessor.html
một ví dụ đơn giản liên quan đến sử dụng phản chiếu trên android http://aaarkonusurum.blogspot.com/2012/02/android-ile-reflection.html
Class x = Object.class;
Constructor[] constructors = x.getDeclaredConstructors();
Field[] fields = x.getDeclaredFields();
Method[] methods = x.getDeclaredMethods();
for (Constructor constructor : constructors) {
//constructors
}
for (Field field : fields) {
//fields
}
for (Method method : methods) {
//methods
}
Tạo một TextView từ codebehind khi chạy với việc sử dụng phản ánh
String x = TextView.class.toString().replace("class ", "");
Class<?> cls = Class.forName(x);
Class<?> param[] = new Class[1];
param[0] = Context.class; //Context=o an ki context ==> [activity.class]
Constructor<?> ct = cls.getConstructor(param);
Object paramVal[] = new Object[1];
paramVal[0] = context;
Object retobj = ct.newInstance(paramVal);
Vươn tới setText() phương pháp tại runtime
Class methodParam[] = new Class[1];
methodParam[0] = java.lang.CharSequence.class;
Method method = cls.getMethod("setText", methodParam);
Object arglist[] = new Object[1];
arglist[0] = new String("THIS TEXTVIEW HAS BEEN CREATED ON RUN TIME");
method.invoke(retobj, arglist);
Android dĩ nhiên hỗ trợ và Reflection chúng có thể đọc các phương pháp của một APK hoặc khung lớp khác. Đây là bài viết về cách sử dụng Phản ánh trong Android như một phương pháp thiết kế có thể tạo API- http://prasanta-paul.blogspot.kr/2013/09/java-reflection-as-android-api.html
Tôi không thích bit "dĩ nhiên". Có rất nhiều môi trường Java trong đó sự phản chiếu không tồn tại. JavaCard và Java ME đến với tâm trí. –
- 1. Khung phản chiếu Java và bảo mật
- 2. Scala 2.10 và gói phản chiếu
- 3. Các kiểu phản chiếu và kiểu chung
- 4. Android/Java: Gọi phương thức sử dụng phản chiếu?
- 5. Python siêu lớp phản chiếu
- 6. Câu hỏi phản chiếu Java
- 7. Java: lớp lồng nhau và phản chiếu tĩnh: "$" so với "."
- 8. Tại sao java.lang.Object.getClass() (và phản chiếu) chậm hơn bình thường?
- 9. Các ngoại lệ phản chiếu và kiểm tra Java
- 10. Sự khác biệt giữa phản chiếu dựa trên gương và phản xạ truyền thống là gì?
- 11. Thư viện phản chiếu C++ 11
- 12. Giải mã giao thức phản chiếu AirPlay
- 13. Phản chiếu có thực sự chậm không?
- 14. Phản chiếu AirPlay (Mac tới Apple TV)
- 15. Sự phù hợp phản chiếu Java
- 16. Nhận loại sử dụng phản chiếu
- 17. Cách từ chối phản chiếu bằng ReflectionPermission
- 18. Tự động phản chiếu một repo GitHub
- 19. "Phản chiếu đơn điệu" là gì?
- 20. Android: thay đổi trường tĩnh riêng tư bằng cách sử dụng phản chiếu java
- 21. Android NFC: Giao thức SNEP và phản hồi P2P
- 22. Lặp lại các mảng bằng cách phản chiếu
- 23. Thuộc tính & Thư viện phản chiếu cho C++?
- 24. Java: Lạm phát phản chiếu của JITC là gì?
- 25. Tắt phản chiếu Java cho chủ đề hiện tại
- 26. Lỗi phản chiếu Java: Số lượng đối số sai
- 27. Gọi phương thức tĩnh sử dụng phản chiếu
- 28. mô phỏng thời gian biên dịch phản chiếu trong C++
- 29. Giải pháp phản chiếu tùy chỉnh, phức tạp, động - C#
- 30. Tạo một kiểu ẩn danh từ phản chiếu ParamInfo []
Tôi đoán câu hỏi là thực sự nếu ai đó đã làm điểm chuẩn trên các thiết bị khác nhau. –