SetJmp/Longjmp, Access, CHDIR, GetCWD Support?
-
02-10-2019 - |
Вопрос
Я довольно новичок в разработке Android, и я хотел бы знать, поддерживает ли Android вышеупомянутые функции, которые находятся в C.
Заранее спасибо.
Решение
Эти функции доступны при кодировании в нативном C через Android NDK. NDK имеет стандартную библиотеку C, которая включает эти функции.
- getCwd (BUF, размер) функционирует немного иначе, чем стандарт UNIX, поскольку он не распределяет память, если BUF является нулевым. Вы должны предварительно разобрать буфер. http://linux.die.net/man/2/chdir
- CHDIR (PATH) функционирует, как и ожидалось, хотя его использование ограничено тем фактом, что 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 или другими механизмами.
Другие советы
Не уверен, есть ли он интегрирован в язык, но если вам действительно нужно получить доступ к каким -либо местным методам C, вы можете использовать JNI (нативный интерфейс Java), который позволит вам запустить нативный код C.
Кроме того, посмотрите на исключение и классы файлов - они могут дать вам аналогичную функциональность.
Они не должны нуждаться в них. Приложения для Android обычно выполняются на Java. setJmp/longjmp-это вещь C/c ++ (да, я запрограммировал в ней некоторое время и до сих пор ненавижу :-)