12

大規模な C++ プロジェクト (ある種のライブラリ プロジェクト、GUI はまったく含まれていません) を Android に移植しようとしています。これは実際には Visual C++ プロジェクトですが、中間段階として Linux に移植されます。Android が「完全な」Linux ではなく、すべての POSIX 関数を提供するとは主張していないことは知っていますが、NDK を使用することで Android に「POSIX っぽい関数」がたくさんあることも知っています。

今、私の実際の質問は次のとおりです。

完全な POSIX セットと比較して、Android で利用できない最大/最も重要な機能はどれですか? Visual C++ から Linux GCC への移植を行う際に、このことを念頭に置いておくことができます。

私はGoogleで何かを見つけようとしましたが、本当に役立つものは何も見つかりませんでした.AndroidにはいくつかのPOSIX機能があると述べたものがあります...

4

4 に答える 4

4

GoogleによるBionicの再コード化。小さいですが、Android用に最適化されています。

それが欠けていることを私が知っている唯一の大きなことは、確かにpthread_cancel()機能です。

私の経験では、呼び出しなしでGNU / Linuxに正常に移植できれば、pthread_cancel()ほとんど問題ないはずです。

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

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

于 2012-08-29T13:46:15.443 に答える
2

共有メモリは、Android で実装が異なる場合もあります。Android カーネルで shm_open と shm_unlink を操作しようとしているときに、大きな打撃を受けました。Android は非同期共有メモリ (ashmem) を実装しています。

于 2013-08-22T21:41:50.813 に答える
2

不足している最も明白な機能はpthread_cancel().

このブログには追加の詳細があります: http://codingrelic.geekhold.com/2008/11/six-million-dollar-libc.html

Good overview of Bionic: https://android-platform.googlegroups.com/attach/0f8eba5ecb95c6f4/OVERVIEW.TXT?gda=HWJaO0UAAAB1RXoVyyH5sRXFfLYnAq48KOFqr-45JqvtfiaR6gxIj4Qe8cBqW3BaWdSUPWi_jHqO3f1cykW9hbJ1ju6H3kglGu1iLHeqhw4ZZRj3RjJ_-A&view=1&part=4

于 2012-08-29T13:38:59.607 に答える