2012-06-25 4 views
5

Chúng tôi đã hoạt động trong vài tháng trên ứng dụng iOS khá lớn bằng PhoneGap 1.8.1 và Kendo UI từ Telerik. Tôi có thể nói rằng ứng dụng iOS nhanh hơn khoảng 90% so với ứng dụng gốc tương đương hoàn toàn có thể chấp nhận được đối với chúng tôi. Chúng tôi đã lấy cùng một codebase chính xác và được thay thế trong các tệp javascript tương đương của Android, khởi động thiết bị của chúng tôi (Motorola Xoom chạy 4.0.3) và hiệu suất chỉ là khủng khiếp. Điều tồi tệ nhất là chuyển đổi trang - có thể mất 0,3 giây - mất 2-5 giây. Hiệu suất là như nhau nếu không tệ hơn trên các trình giả lập (không có bất ngờ ở đó).Di chuyển ứng dụng PhoneGap iOS sang Android - gặp sự cố hiệu suất khủng khiếp

Nếu có mã hữu ích mà tôi có thể đăng, vui lòng cho tôi biết. Nếu không, tôi đoán chúng tôi đang tìm kiếm những người khác đã gặp phải tình huống này và/hoặc đề xuất cải thiện hiệu suất. Tại thời điểm này PhoneGap hoàn toàn không khởi động cho phát triển Android cho chúng tôi.

Trả lời

8

Chúng tôi thực hiện một số phát triển di động đa nền tảng bằng Sencha Touch 2 (không có trải nghiệm với Kendo UI). Lần cuối cùng tôi xem xét hiệu suất chi tiết, Sencha Touch 2 là hoạt động tốt nhất của các khung công tác đa nền tảng di động toàn diện/nổi bật (Jquery Mobile, Kendo UI, v.v.). Kinh nghiệm của chúng tôi là hiệu suất trên Android chậm hơn đáng kể so với iOS (mặc dù Sencha Touch 2 được coi là khá nhanh). Danh sách cuộn, quá trình chuyển đổi màn hình, v.v ... đều là mệnh đề phụ. Tôi khá ngạc nhiên trước sự khác biệt về hiệu suất. Hiệu suất Android tốt hơn trên Galaxy Nexus của tôi chạy 4.0, nhưng vẫn chậm hơn đáng kể so với các thiết bị iOS.

Thật không may, tôi không thấy cách nào để bạn có thể ứng dụng để thực hiện cùng một số trên Android như trên iOS. Đây là một thực tế đáng tiếc khi tôi trở lại. Vấn đề bạn thấy là do hiệu suất của các trình duyệt trên các nền tảng khác nhau; phonegap chỉ sử dụng UIWebView và WebView để tải các trang html và javascript bên trong trình bao bọc ứng dụng gốc. Bạn có thể tải ứng dụng giao diện người dùng Kendo trong trình duyệt trên thiết bị không? Tôi giả định hiệu suất sẽ giống như các ứng dụng được gói gốc.

Giải pháp "của chúng tôi" đã được phát triển cho Android trước tiên và đưa ứng dụng đến một điểm mà chúng hoạt động một cách thô lỗ. Sau đó, chúng tôi biết họ sẽ tuyệt vời trên các thiết bị iOS.

Tôi không quen thuộc với giao diện người dùng Kendo, nhưng theo như đề xuất hoặc chỉnh sửa, chúng tôi cố gắng giữ ít nhất trong DOM càng tốt. Khi ứng dụng bắt đầu, chúng tôi tạo ít nhất trong DOM càng tốt, sau đó tạo/hủy các đối tượng khi ứng dụng cần chúng. Ngoài ra, chỉ cần tối ưu hóa chung của javascript sẽ giúp.

Tôi nghĩ rằng đây là một bí mật nhỏ bẩn của các khung di động này. Khi bạn tiếp cận họ về nó, câu trả lời của họ là hiệu suất trình duyệt Android chậm, vì vậy các ứng dụng sẽ chậm. I E. "không phải lỗi của chúng tôi", nhưng họ vẫn tiếp tục mô tả một khuôn khổ hoạt động tốt trên tất cả các nền tảng.

Đối với chúng tôi, Sencha Touch 2 đủ nhanh để mang đến cho người dùng trải nghiệm phong phú trên các thiết bị Android, vì vậy nó tiết kiệm thời gian rất lớn so với phát triển ứng dụng bản địa cho mỗi nền tảng.

Chỉ cần làm rõ, vấn đề hiệu suất mà bạn thấy có thể không liên quan gì đến PhoneGap, đó là hiệu suất trình duyệt trên thiết bị. PhoneGap về cơ bản chỉ kết thúc một WebView trong một trình bao bọc ứng dụng gốc. Chúng tôi đã thấy các vấn đề hiệu suất trên Android khi sử dụng cả PhoneGap và bao bì gốc Sencha Touch.

+0

Cảm ơn. Thật buồn, nhưng cảm ơn! –