Tôi không phải là chuyên gia Android mặc dù tôi đã phát triển một ứng dụng bao gồm hơn 50 hoạt động giúp ứng dụng thực sự lớn. Sau 8 tuần phát triển, hiện tại có nhiều vấn đề khiến ứng dụng khó duy trì và nâng cấp. Các vấn đề chính mà tôi đang xử lý làAndroid: Hoạt động đơn lẻ, nhiều chế độ xem
Tôi không thể chuyển đối tượng tham chiếu đến các nhà thầu của hoạt động. Trong thực tế, tôi thấy các cơ chế của
startActivityForResult
-Intent
-onActivityResult
thực sự hạn chế và dẫn đến mã bẩn của nhiều hằng số cho các hành động trên mỗi hoạt động và rất nhiềuswitch
case
thực sự khó theo dõi luồng ứng dụng.Một vấn đề khác là tôi không biết cách quản lý vòng đời của toàn bộ ứng dụng vì mỗi hoạt động đều có vòng đời riêng.
tôi đã có một số kinh nghiệm thành công với LWUIT và J2ME – polish mà bỏ qua MIDlets J2ME (tương tự như hoạt động android) và thực hiện các kiến trúc riêng của họ và hệ thống cửa sổ chỉ với một MIDlet như nhập cảnh vào ứng dụng. Tôi đã nghĩ ra cùng một ý tưởng cho android.
Để làm rõ, tôi đang nghĩ đến một ứng dụng chỉ với một chính Activity
và các hoạt động khác được triển khai làm đối tượng mở rộng đối tượng View
và các chế độ xem này có thể được thêm động vào hoạt động chính FrameLayout
và xếp chồng lên nhau. Logic của hoạt động có thể được thực hiện trong các lớp như vậy và tôi thậm chí còn tìm thấy cách để triển khai các hộp thoại theo cách này. Các đối tượng kinh doanh và trạng thái có thể được truyền cho hàm khởi tạo của chúng và có vẻ như bỏ qua tác dụng phụ của nó khi viết một mã nhỏ hơn. Bằng cách này, người nghe cũng có thể được chuyển đến các nhà xây dựng của lượt xem, giúp việc chuyển đổi giao diện người dùng ứng dụng và quản lý luồng dễ dàng hơn.
Nhưng câu hỏi là:
- Có một thực hành tốt?
- Nó sẽ không dẫn tôi đến các vấn đề hiệu năng hay bộ nhớ?
Tôi cũng nhận thức
- Android: What is better - multiple activities or switching views manually?
- Don't Overload a Single Activity Screen
- Pattern one activity, multiple views. Advantages and disadvantages
Không ai trong số những địa chỉ rõ những vấn đề liên quan đến hiệu suất hoặc thực hành với bằng chứng hợp lý hoặc tham khảo tài liệu
Hãy nhờ ai đó giúp tôi với điều này
Khi dự án quá lớn, mã phải được thiết kế đúng cách, hãy rút tất cả các chức năng phổ biến ra ngoài. cấu trúc dữ liệu tốt hơn (cấu trúc dữ liệu tốt hơn). Những điều này sẽ theo tôi giúp giảm rất nhiều mã. – sat
trên thực tế tôi đã làm điều đó. Tôi đã theo một mẫu MVVM bán mặc dù Android không hỗ trợ ràng buộc dữ liệu. các vấn đề chính nằm trong lớp giao diện người dùng và chuyển đổi chế độ xem và phát sáng togather. – anonim