2011-07-27 6 views
2

Androidでアプリケーションを作成するためのSDK(巨大なデータ操作を含む)を作成する予定です。Androidアプリ開発のJava対ネイティブコーディング

ライブラリをJavaで実装すると、ネイティブ言語(C++)でライブラリを実装すると、Javaとネイティブレイヤの間のデータ移動にメモリコピーが含まれるため、私のアプリケーションを遅く見せる。

後で同じSDKをWindows Mobileのような他のプラットフォームに移植する予定です。このような場合には、SDKの移植性とパフォーマンスを念頭に置いて、より良いコードアプローチを混乱させています。

入力を高く評価します。

+0

私は少し混乱しています。 Googleが既に提供しているような実際のSDKを作成していますか、それともフレームワークを作成して他のプラットフォーム(たとえばGame-Engineなど)に移植する必要がありますか? –

+0

私はフレームワークを作成したい.. – Deepak

答えて

2

Windows Mobileはネイティブコード(Visual C++、Getting Started in Developing Applications for Windows Mobileを参照)をサポートしていますので、Android NDKを使用するとよいでしょう。少なくとも、最初からすべてを書く必要はありません。 C/C++で書かれた共通コードベースを持ち、Android用のJavaラッパーのみを書くことができます。

ご存じのように、Windows Phone 7(Windows Mobileの後継製品)はC#を使用していますが、Androidでどのようなアプローチをとっても、とにかくSDKをゼロから書き直す必要があります。 Windows Phone 7.x は、いつかすぐにネイティブコード(C/C++)をサポートしています。

+0

ありがとう、それは移植性に答える。あなたはアンドロイドでJavaとネイティブコーディングの観点からパフォーマンスについてコメントできますか? – Deepak

+0

[http://developer.android.com/sdk/ndk/index.html](http://developer.android.com/sdk/ndk/index.html)から: "ネイティブコードを使用しても、自動パフォーマンスは向上しますが、アプリケーションの複雑さは常に増しています。したがって、Javaのみを使用してパフォーマンスの問題が発生していない場合は、ネイティブコードを必要としません。移植性が重大な懸案事項である場合、ネイティブコードは比較的簡単にiOSなどに移植できます.JavaラッパーをObjective C/C++ラッパーに置き換えるだけです。 –

+0

おかげさまで美嘉さん、助かりました。 – Deepak

関連する問題