1

私はAndroid開発にかなり慣れていないので、AndroidがCにある上記の機能をサポートしているかどうかを知りたい.

前もって感謝します。

4

3 に答える 3

5

これらの関数は、Android NDK を介してネイティブ C でコーディングするときに使用できます。NDK には、これらの関数を含む標準 C ライブラリがあります。

  • getcwd(buf, size) の機能は、buf が NULL の場合はメモリを割り当てないという点で、Unix 標準とは少し異なります。バッファを事前に割り当てる必要があります。http://linux.die.net/man/2/chdir
  • chdir(path) は期待どおりに機能しますが、その使用は、Android が (愚かにも​​) 外部ストレージへのパスなどのアプリケーションのコンテキスト関連情報を取得する機能を提供しないという事実によって制限されます (ただし、JNI 呼び出しを介してパスを取得することはできます) .) http://linux.die.net/man/3/getcwd
  • longjmp などの Android での機能についてはコメントできません。

Android Java 環境にとどまりたい場合は、現在の作業ディレクトリの概念がないことに気付くでしょう。そのため、chdir() と getcwd() は廃止されています。代わりに、システムは、内部および外部のストレージ パスを検出するための一連の関数を利用できるようにします ( http://developer.android.com/guide/topics/data/data-storage.htmlを参照)。また、setjmp()/longjmp() の一般的な使用法は、通常、Java 例外またはその他のメカニズムでカバーできます。

于 2012-07-13T11:13:35.583 に答える
1

それらが言語に統合されているかどうかはわかりませんが、ネイティブ C メソッドに本当にアクセスする必要がある場合は、ネイティブ C コードを実行できる JNI (Java Native Interface) を使用できます。

また、Exception クラスと File クラスを見てください。同様の機能が提供される場合があります。

于 2010-07-07T10:07:31.670 に答える
-3

それらは必要ありません。Android 向けのアプリは、一般的に Java で作成されます。setjmp/longjmp は C/C++ のものです (はい、私はしばらくプログラミングしましたが、いまだに嫌いです :-)

于 2010-07-13T01:03:21.230 に答える