Có thể thực hiện phương pháp này trong java bằng cách sử dụng java không? Tôi muốn chặn một phương pháp hệ thống và ghi lại các tham số của nó rồi xử lý nó thông thườngPhương pháp Swizzling trong Android bằng cách sử dụng java
Trả lời
Tôi nghĩ rằng kỹ thuật đó không thể được sử dụng bằng cách sử dụng Java trong bất kỳ môi trường nào.
Có thể bạn có thể đạt được kết quả tương tự bằng AOP.
Nhưng những gì bạn có thể thực hiện với giao diện đó bị giới hạn trên Android. Xem Aspect-oriented programming in android. Trong thực tế, vì bạn sẽ không biên dịch mã đích (phương thức hệ thống), việc biên dịch thời gian biên dịch (dường như tất cả những gì bạn có thể sử dụng trên Android) sẽ vô dụng đối với trường hợp này. Như là câu trả lời này tôi giả sử.
Một suy nghĩ khác ... Tôi đoán bạn muốn thực hiện việc ghi nhật ký này một cách nhất quán. Nhưng nếu bạn cần điều này để gỡ lỗi một vấn đề, bạn có thể làm điều đó bằng cách sử dụng một conditional breakpoint in Eclipse.
Một biểu thức điều kiện có thể chứa mã Java độc đoán và có thể chứa nhiều hơn một tuyên bố, cho phép điều kiện breakpoint để thực hiện các tính năng như truy tìm. Ví dụ, một điều kiện có thể thực hiện một lệnh in và sau đó trả lại một giá trị mã hóa cứng để không bao giờ bị treo ("System.out.println (...); return false;").
Tôi không biết liệu điều này có hoạt động với các phương pháp trong SDK Android hay không. Nhưng nó hoạt động với các phương thức trong SDK Java. Ví dụ, đây là mã đơn giản:
System.err.println("foo");
tôi đã thực hiện một breakpoint có điều kiện trong PrintStream.print, như thế này:
System.err.println("hello: " + arg0);
return false;
Và giao diện điều khiển đầu ra khi gỡ lỗi trong chương trình là thế này:
hello: foo
foo
Lưu ý rằng vì JDK không được biên dịch với các biểu tượng gỡ lỗi, tôi không thể tham chiếu đến các tham số phương thức theo tên, nhưng sử dụng arg0..argn
.
- 1. App Store - Phương pháp Swizzling Legality
- 2. Phương pháp Java cho android: layout_gravity
- 3. Java - Sử dụng chú thích và phương pháp đánh chặn?
- 4. Sử dụng phương pháp smoothScrollBy trong lớp Android ScrollView
- 5. Sử dụng các phương pháp varala vararg trong java
- 6. Sử dụng phương pháp đệ quy trong java
- 7. gọi phương pháp khác từ phương pháp chính trong java
- 8. AsNoTracking bằng cách sử dụng cú pháp truy vấn LINQ thay vì cú pháp Phương pháp
- 9. Sử dụng phương pháp
- 10. Bất kỳ phương pháp nào để truy cập các phương thức Windows COM bằng cách sử dụng Java?
- 11. Bảo mật Java EE - Phương pháp nào để sử dụng?
- 12. phương pháp có sẵn trong plugin1 trong plugin2 Bằng cách sử dụng qua MEF
- 13. HTTP POST bằng cách sử dụng JSON trong Java
- 14. Android/Java: Gọi phương thức sử dụng phản chiếu?
- 15. Cách tạo đối tượng Hình chữ nhật trong Java bằng cách sử dụng phương thức g.fillRect
- 16. Cách sử dụng phương pháp này trong Xcode
- 17. Tìm mọi cách sử dụng phương pháp trong vim
- 18. Sử dụng const trong một phương pháp
- 19. phương pháp trong foreach và cho vòng trong java
- 20. Java: `Phương pháp static`
- 21. Phương pháp gọi ma thuật trong Java
- 22. Phương pháp Java Chạy trong chủ đề
- 23. Cách thay thế ký tự cộng bằng cách sử dụng phương thức String.replaceAll của Java
- 24. Phương pháp ghi đè trong DLL bằng cách sử dụng sự phản chiếu
- 25. get() phương pháp trong Java enum loại
- 26. Sử dụng [phương pháp tự] hoặc @selector (phương pháp)?
- 27. Cách tạo Tệp .dst Thêu bằng cách sử dụng Java
- 28. Phân tích cú pháp tệp XML cục bộ bằng cách sử dụng Sax trong Android
- 29. Java - Phương pháp ảo
- 30. Android onClick phương pháp
Điều này cũng được áp dụng các phương pháp api từ sdk android? –