4

iOS および Android で (JNI/NDK を使用して) C++ 標準ライブラリ (std::string ストリームなど) を利用できますか? もしそうなら:

どの程度サポートされていますか?コンソールなどのデスクトップ固有の機能はどのように処理されますか? 速度/信頼性はどのくらいですか? 他にいくつのモバイル プラットフォームで利用できますか? モバイル プラットフォーム (iOS など) に移植するときに、std ライブラリを使用して多くのコードを変更する必要がないことを期待できますか?

4

2 に答える 2

2

C++ 標準ライブラリは両方で利用できます。さらに、iOS にはかなり長い間 C++11 がありました。

両方のプラットフォーム (基本的に POSIX ベース) にはコンソール IO の概念がありますが、どちらもユーザー インターフェイスでコンソール IO にアクセスすることはできません。

結果として、アプリケーションとのユーザー インタラクションにコンソール IO を使用できないことは明らかです。そうでない場合は、プラットフォームのユーザー インターフェイス API を使用してビルドします。

移植性に関しては、どちらのプラットフォームでも問題はないはずです。Android では GNU Std G++ ライブラリ、iOS では Clang C++ ライブラリです。iOS では移植性は問題になりませんが、おそらく Android 用の JNI バインディングを構築するのは楽しいでしょう。

ただし、実際には、C++ でアプリケーションのバックエンドを構築することしかできません。すべてのユーザー インターフェイスは明らかに移植性がなく、通常は UI フレームワークの言語で実装する必要があります。

Windows Phone 8 はネイティブ アプリを許可し、C++ はそれらを実装するための最適な言語のようです。BlackBerry OS 10 は基本的に QNX であり、これも POSIX に準拠しています。

于 2013-06-28T14:04:24.283 に答える
1

私が知る限り、標準ライブラリはすべてのプラットフォームで標準であるべきです。現在、それらの内部実装は異なる場合がありますが、導入されたタスクを実行する必要があります。

一般に、std lib は非常に効率的で、高速で、十分にテストされているため、信頼できるはずです。

実際の問題は、std lib を C++ 実装に含める必要があることですが、std lib が含まれているかどうかは完全に C++ を実装するベンダー次第です。標準ライブラリが含まれていなくても、そのプラットフォームの代替実装を見つける可能性が高くなります。あとは、そのライブラリをコードにリンクするだけです。

主な機能をサポートする C++ コンパイラがあると仮定します。

それが不可能な場合でも、必要な std 関数をその特定のプラットフォームにカスタム ライブラリとしていつでも移植できます。

お役に立てれば、

于 2013-06-28T14:04:55.797 に答える