Phát triển Android bằng C và C ++ [đã đóng]


47

Tôi là một nhà phát triển C, C ++. Tôi quan tâm đến phát triển di động. Tôi muốn biết làm thế nào tôi có thể phát triển ứng dụng Android bằng C và C ++, tôi đã đọc rằng họ đang cung cấp một bộ cho các nhà phát triển C, C ++ nhưng nó không có tất cả các chức năng như của bộ Java. Tôi có nên đi tìm bộ phát triển C / C ++ hay tốt hơn là nên học java vì chúng có thể không cung cấp tất cả các chức năng trong tương lai?

Câu trả lời:


33

Phiên bản ngắn: làm việc với C ++ trên Android là có thể và dễ dàng hơn với mỗi phiên bản SDK / NDK của Android, nhưng khó hơn so với làm việc với Java.


Phiên bản dài:

Đối với mỗi phiên bản, Google bổ sung thêm nhiều chức năng hơn cho Bộ công cụ phát triển bản địa Android và làm cho nó ngày càng độc lập hơn với mã Java.

Đọc http://developer.android.com/sdk/ndk/overview.html để biết thêm chi tiết:

Viết một hoạt động gốc, cho phép bạn thực hiện các cuộc gọi lại vòng đời trong mã gốc. SDK Android cung cấp lớp NativeActivity, đây là lớp tiện lợi thông báo mã gốc của bạn về bất kỳ cuộc gọi lại vòng đời hoạt động nào (onCreate (), onPause (), onResume (), v.v.). Bạn có thể thực hiện các cuộc gọi lại trong mã gốc của mình để xử lý các sự kiện này khi chúng xảy ra. Các ứng dụng sử dụng các hoạt động gốc phải được chạy trên Android 2.3 (API cấp 9) trở lên. Bạn không thể truy cập các tính năng như Nhà cung cấp dịch vụ và nội dung nguyên bản, vì vậy nếu bạn muốn sử dụng chúng hoặc bất kỳ API khung nào khác, bạn vẫn có thể viết mã JNI để làm như vậy.

Vấn đề chỉ là nếu bạn sử dụng NDK gần đây nhất, bạn sẽ không thể triển khai và rất nhiều phiên bản Android không gần đây.

Dù sao, ngay cả với các phiên bản NDK trước đây, bạn có thể có mã Java tối thiểu (để tương tác với HĐH) và mã ứng dụng đầy đủ trong C ++ hoặc bất cứ thứ gì nguyên gốc.

Cũng có những nỗ lực trong việc giúp các nhà phát triển bản địa hoạt động hoàn toàn trong C hoặc C ++ thông qua các plugin IDE như Vs-Android này, đây là một plugin cho Visual Studio 201x ẩn tất cả quá trình biên dịch và tạo từ bạn: http://code.google.com / p / vs-android /

Ngoài ra, nếu bạn có kế hoạch chuyển ứng dụng của mình sang HĐH khác, thì sử dụng C ++ cho phần lõi của ứng dụng của bạn (có thể có ngôn ngữ kịch bản trên đầu) là một ý tưởng hay. Nó chỉ tốn kém hơn về thời gian phát triển so với các lựa chọn thay thế khác - vì lý do cụ thể cho C ++ và việc triển khai các công cụ dành cho nhà phát triển, ví dụ, quá nhiều thời gian biên dịch có thể giết chết năng suất hiệu quả của bạn.

Điều đó đang được nói, đó không phải là cách dễ nhất để làm việc trên các ứng dụng di động.


8

Tôi sẽ khuyên bạn nên đi C ++ nếu bạn có kế hoạch vững chắc để đi vào Phát triển trò chơi. Nhưng nếu không, tốt hơn bạn nên đi Java. Đây là một mồi tốt cho bạn trên trang web chính thức của Android:

Phát triển trò chơi cho Android: Một mồi nhanh

LƯU Ý: Vui lòng đọc bước 2 (Bước hai: Chọn một ngôn ngữ) của hướng dẫn.

Nếu bạn hoàn toàn không biết Java và muốn phát triển ứng dụng trên Android, thì việc tìm hiểu Java là điều cần thiết. Có những hướng dẫn tuyệt vời được đưa ra trên trang web chính thức. Có một cuốn sách hay mà bạn có thể lấy để học cụ thể cho phát triển Android: Đây là: Tìm hiểu Java để phát triển Android


Người đăng câu hỏi đã biết C ++, vậy lời khuyên của bạn là gì?
abhi

7

Tôi có nên đi tìm bộ phát triển C / C ++ hay tốt hơn là nên học java vì chúng có thể không cung cấp tất cả các chức năng trong tương lai?

Câu trả lời là cả hai.

  • Nếu bạn đang viết bất kỳ ứng dụng nào mà hiệu năng là mối quan tâm chính, thì chúng gần như phải ở một thứ khác ngoài java. (C / C ++ là phổ biến nhất) Trò chơi là mặt hàng vé lớn, nhưng có những thứ khác.
  • Nếu bạn đang thực hiện bất kỳ sự phát triển Android nào, bạn cũng nên dành thời gian để học java ở mức hợp lý.

Tôi không hiểu ý của bạn khi làm android dev yêu cầu java, tuy nhiên nếu bạn muốn làm dev game android hãy sử dụng c / c ++. Tại sao không sử dụng c / c ++ mọi cách.
Lance Pollard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.