Поддерживает ли Android setjmp / longjmp, access, chdir, getcwd? - PullRequest
1 голос
/ 07 июля 2010

Я довольно новичок в разработке для Android, и я хотел бы знать, поддерживает ли Android вышеупомянутые функции, которые есть в C.

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 13 июля 2012

Эти функции доступны при кодировании на нативном C через Android NDK. NDK имеет стандартную библиотеку C, которая включает эти функции.

  • Функция getcwd (buf, size) немного отличается от стандарта Unix в том смысле, что она не выделяет память, если buf равен NULL. Вы должны предварительно выделить буфер. http://linux.die.net/man/2/chdir
  • chdir (путь) функционирует должным образом, хотя его использование ограничено тем фактом, что Android (тупо) не предоставляет функцию для получения информации, относящейся к контексту приложения, такой как путь к внешнему хранилищу (хотя вы можете получить путь через JNI звонки.) http://linux.die.net/man/3/getcwd
  • Я не могу комментировать функциональность в Android longjmp и т. Д.

Если вы предпочитаете оставаться в среде Android Java, вы обнаружите, что концепция текущего рабочего каталога отсутствует, поэтому chdir () и getcwd () устарели. Вместо этого система предоставляет набор функций для обнаружения внутренних и внешних путей хранения (см. http://developer.android.com/guide/topics/data/data-storage.html).. Также типичное использование setjmp () / longjmp () может обычно охватываться исключениями Java или другими механизмами.

1 голос
/ 07 июля 2010

Не уверен, что он интегрирован в язык, но если вам действительно нужен доступ к любым методам Native C, вы можете использовать JNI (Java Native Interface), который позволит вам запускать код Native C.

Кроме того, взгляните на классы Exception и File - они могут предоставить вам аналогичную функциональность.

0 голосов
/ 13 июля 2010

Тебе не нужны они. Приложения для Android обычно делаются на Java. setjmp / longjmp - вещь C / C ++ (да, я запрограммировал это некоторое время и все еще ненавижу это: -)

...