Có những cạm bẫy hoặc những điểm cần nhớ trong khi lập trình cho Android không? Tôi nghĩ rằng danh sách sẽ bao gồm các chủ đề về Đa luồng, Lưu trữ liên tục, v.v.Cạm bẫy của các ứng dụng Android
Trả lời
Nhà phát triển Android có bài đăng tốt về avoiding memory leaks do giữ tham chiếu Ngữ cảnh. Có rất nhiều bài viết thú vị khác nữa.
Tôi sẽ không gọi chúng là cạm bẫy, nhưng luôn nhớ lưu ý rằng đây không phải là máy tính được cắm vào tường được nâng cấp theo nhiều cách khác nhau. Bạn có chu kỳ nâng cấp khoảng 2 năm một lần (độ dài của hợp đồng di động chuẩn trong những ngày này) và phần cứng là (A) không phải là nhanh nhất và (B) trong thời gian đó.
Những điều cần cân nhắc:
1) Những điều ứng dụng của bạn ảnh hưởng đến tuổi thọ pin như thế nào? Bạn có văng đồ họa tươi sáng khắp nơi không? Chạy rất nhiều luồng trong nền? Dịch vụ?
2) Ứng dụng của bạn cần bao nhiêu dung lượng trên thiết bị? Thông tin có thể được lưu trữ trên máy chủ và được truyền đến thiết bị để sử dụng tạm thời chỉ khi cần thiết?
3) Liên quan đến # 2, ứng dụng của bạn có chấp nhận các kết nối mạng/thiết bị di động không tồn tại/không tồn tại không? Nó hoạt động như thế nào trên mạng EDGE so với 3G?
Tôi chắc chắn bạn có thể tìm hiểu thêm nhưng đây là những gì tôi lưu ý khi đang viết ứng dụng của mình.
Có nhiều điều có thể nói ở đây.
Video Android từ Google I/O 2009 bao gồm hầu hết các khía cạnh cần lưu ý khi lập trình trên Android. Trên thực tế, các bài viết http://android-developers.blogspot.com/ là nguồn, trên đó các bản trình bày này mở rộng và thấy chúng được giải thích từ một số kỹ sư Google tốt nhất (và tiền thưởng bạn sẽ nhận được phần Q & A) là điều bắt buộc đối với mọi nhà phát triển Android, IMO.
Một số trong những điều mà có thể được đề cập:
Không sử dụng phao nổi, khi bạn có thể đạt được kết quả tương tự với số nguyên, vì Android không có hỗ trợ cho các giá trị dấu chấm động.
Sử dụng công cụ gỡ lỗi rộng rãi, để tối ưu hóa hiệu suất và bảo trì, và để tránh những cạm bẫy phổ biến như ViewGroup dư thừa trong thiết kế giao diện người dùng, hoặc nhiều cuộc gọi không cần thiết với các phương pháp nặng (View.inflate(), findViewById(), setImageResource ()).
Bundle cuộc gọi dịch vụ nền của bạn, nếu không bạn đang thức dậy hệ điều hành không cần thiết và quá thường xuyên, trong khi rủi ro dịch vụ khác cõng ủng hộ cuộc gọi của bạn (mà kết quả trong giảm nghiêm trọng tuổi thọ pin)
thích SAX-parsers qua trình phân tích cú pháp DOM, bạn mất thời gian khi triển khai chúng, nhưng bạn giành được thời gian trong hiệu suất của ứng dụng (và tính khả dụng của thiết bị của bạn)
Giữ giao diện người dùng trên giao diện người dùng, vì bộ công cụ giao diện không an toàn thread
Hãy ghi nhớ rằng sự thay đổi định hướng phá hủy và tạo ra hoạt động của bạn một lần nữa (Tôi đã học được rằng cách cứng và đau đớn - đây là cách tôi bắt đầu để theo dõi blog của android-nhà phát triển)
... và nhiều người khác .
- 1. auto_ptr Bẫy và Cạm bẫy
- 2. Cạm bẫy của ADL là gì?
- 3. Cạm bẫy của việc sử dụng sql_variant là gì?
- 4. Các cạm bẫy hiệu suất của Apache Velocity?
- 5. Cạm bẫy hiệu suất hibernate thông thường
- 6. Mẫu thiết kế Singleton: Cạm bẫy
- 7. Cạm bẫy miền-thiết kế (DDD)
- 8. cạm bẫy svn -> git migration
- 9. SharePoint 2007 - RunWithElevatedPrivileges - Cạm bẫy khi sử dụng này
- 10. Angular JS: những vấn đề/cạm bẫy của việc sử dụng Angular là gì?
- 11. Những cạm bẫy khi thiết lập enable_nestloop là OFF
- 12. Bất kỳ cạm bẫy nào khi sử dụng các công thức được lập trình sẵn?
- 13. Những cạm bẫy cố gắng sử dụng PLINQ trên các máy phát điện chạy dài?
- 14. Những cạm bẫy phổ biến khi sử dụng eval của Perl là gì?
- 15. Cạm bẫy JavaScript không xác định rõ ràng?
- 16. Những cạm bẫy của kết nối được nhúng vào Derby qua mạng là gì?
- 17. Sử dụng cookie cho trạng thái phiên web - những cạm bẫy là gì?
- 18. Tiềm năng cạm bẫy với các nhà thầu tĩnh trong C#
- 19. Những cạm bẫy tiềm năng trong việc sử dụng hàng đợi JMS?
- 20. Những cạm bẫy phổ biến của đồng bộ hóa dựa trên dấu thời gian là gì?
- 21. Những cạm bẫy và gotchas của trộn Objective-C và C là gì?
- 22. Cạm bẫy của thử nghiệm sau khi phát triển là gì?
- 23. Những cạm bẫy khi sử dụng FlexibleContexts và FlexibleInstances là gì?
- 24. Các vấn đề phát triển chung, cạm bẫy và đề xuất là gì?
- 25. Những cạm bẫy của việc thực thi jQuery mà không có $ (tài liệu) .ready() ;?
- 26. Thanh toán định kỳ với Rails và ActiveMerchant: Thực tiễn tốt nhất, cạm bẫy, gotchas?
- 27. Cạm bẫy/công việc triển khai ClickOnce/smart-client trong .NET
- 28. Các luồng hoạt động như thế nào trong Python, và những cạm bẫy cụ thể của Python là gì?
- 29. Những cạm bẫy có thể xảy ra khi chuyển Psyco sang 64-bit là gì?
- 30. Một số cạm bẫy Java phổ biến/gotchas cho lập trình C++ là gì?
Đừng quên đặt bit ác trong mô-đun Positronic Brain thành 0. – Powerlord
Nếu bạn muốn chạy ẩn mà không bị tắt, bạn phải đặt thông báo trên thanh thông báo. – Christian