2012-08-24 8 views
12

私は大規模なC++プロジェクト(何らかのライブラリプロジェクト、それは全くGUIを含んでいません)をAndroidに移植しようとしています。実際にはVisual C++プロジェクトですが、中間ステップとしてLinuxに移植されます。私はAndroidが "完全な" Linuxではなく、すべてのPOSIX関数を提供すると主張していないことを知っていますが、NDKを使ってAndroidに多くの "POSIXish関数"があることも知っています。Androidで利用できない最も重要なPOSIX関数は何ですか?

は今私の実際の質問は:完全なPOSIXのセットと比較Android上で利用可能ではありません最大の/最も重要な機能です

? Visual C++からLinux GCCへの移植を行う際には、そのことを覚えておいてください。

は、私はGoogleで何かを見つけることを試みたが、何が本当に役に立った、ちょうどここに、いくつかのPOSIX機能は、Android上であることに言及したいくつかのもの...

+2

これはおそらくあなたを助けることができます - http://mobilepearls.com/labs/native-android-api/ここでいくつかの洞察力-http://stackoverflow.com/questions/10235403/porting-embedded-visual-c -code-to-androidとhttps://groups.google.com/forum/?fromgroups=#!topic/android-ndk/xZES51OYakY –

+0

http://stackoverflow.com/questions/4610086/pthread-cancel-alternatives -in-android-ndk – crossle

答えて

3

バイオニックGoogleによるrecodeの

このブログは、いくつかの追加の詳細を持っています。小さくてもAndroid用に最適化されています。

私が知っている唯一の大きなものは、実際にはpthread_cancel()の機能です。

私が経験したところでは、pthread_cancel()の呼び出しをせずにGNU/Linuxに移植すると、大丈夫です。

ところで、どのようなライブラリをビルドしようとしていますか?それは何を使用していますか?ネットワーク、スレッド...

PS:Linuxでも完全にPOSIXではありません。

2

共有メモリは、Androidでさまざまな方法で実装されていることもあります。アンドロイドカーネルでshm_openとshm_unlinkを使って作業しようとしている間に、ヒットしました。 Androidは非同期共有メモリ(ashmem)を実装しています。

+0

はい、ashmem_create_regionを呼び出して、プロセス間で返されたファイル記述子をバインダー経由でmmapする必要があります。 – olegst

関連する問題