2013-03-06 38 views
9

Tôi sắp bắt đầu xây dựng một ứng dụng Android (Tôi hiện đang làm việc trên dịch vụ web và cơ sở dữ liệu) và tôi muốn biết liệu có sự khác biệt đáng kể về tốc độ ứng dụng giữa việc sử dụng Java hoặc mã hóa trực tiếp vào C hay không hoặc C++.Xây dựng ứng dụng Android nhanh - Java hoặc bản địa?

Ứng dụng không chứa bất kỳ đồ họa hoặc vật lý phức tạp nào và tốc độ của nó phụ thuộc chủ yếu vào tốc độ truyền của một số đối tượng đến và từ dịch vụ web REST.

Cảm ơn trước

+5

Tôi khuyên bạn nên thực hiện nó trong Java, cũng như Google. Mục đích duy nhất của NDK là làm cho việc chuyển đổi các codebase từ trước trở nên dễ dàng hơn nhiều. –

+4

"tốc độ của nó phụ thuộc chủ yếu vào tốc độ truyền của một số đối tượng đến và từ dịch vụ web REST" - "tốc độ truyền" được điều chỉnh bởi kết nối Internet và ít hoặc không có gì để làm với tốc độ của ngôn ngữ lập trình. – CommonsWare

+0

Sử dụng Java cho đến khi bạn phải ràng buộc một lib gốc hoặc lược tả cho thấy một điểm nóng nơi lợi thế tốc độ khiêm tốn của mã gốc sẽ thực sự tạo sự khác biệt. Rất khó để làm cho mã nguồn gốc mạnh mẽ và chính xác hơn Java và sau đó một lần nữa khó khăn hơn để duy trì. – Gene

Trả lời

18

Google says có lẽ bạn nên chỉ gắn bó với Java:

Trước khi tải NDK, bạn nên hiểu rằng NDK sẽ không được hưởng lợi nhất ứng dụng. Là một nhà phát triển, bạn cần phải cân bằng lợi ích của nó so với những hạn chế của nó. Đáng chú ý, việc sử dụng mã gốc trên Android thường không dẫn đến cải thiện hiệu suất đáng chú ý, nhưng nó luôn làm tăng độ phức tạp của ứng dụng của bạn. Nói chung, bạn chỉ nên sử dụng NDK nếu nó là điều cần thiết cho ứng dụng của bạn - không bao giờ vì bạn chỉ đơn giản là thích chương trình trong C/C++.

Các ứng cử viên tiêu biểu cho NDK là các hoạt động chuyên sâu của CPU không phân bổ nhiều bộ nhớ, chẳng hạn như xử lý tín hiệu, mô phỏng vật lý, v.v. Khi kiểm tra xem bạn có nên phát triển trong mã gốc hay không, hãy suy nghĩ về các yêu cầu của bạn và xem liệu API khung Android có cung cấp chức năng mà bạn cần hay không.

3

Tôi sẽ không khuyên bạn nên sử dụng NDK, vì bạn đã đề cập rằng bạn đang xây dựng điều này từ đầu cho Android. Google nói cụ thể here rằng bạn không nên sử dụng NDK vì những lý do được đề cập ở trên.

0

Tôi khuyên bạn nên sử dụng Java và sử dụng các dịch vụ web REST của bạn với Spring for Android. Nó quá dễ tiêu thụ chúng. Hiện tại tôi đã có một ứng dụng được xuất bản trong Cửa hàng Play Android sử dụng nó và mã nguồn nằm trong GitHub, ở đó bạn có thể xem.

Chúc may mắn!

Các vấn đề liên quan