2012-05-04 2 views
0

JNI를 사용하여 Android 앱에 사용하려는 C 코드 (testfile .c)가 있습니다. 이 코드는 순수한 C 코드를 포함하며 내부에 여러 가지 방법이 있습니다. 또한 일부 C 헤더 파일 (파일 1 .h, 파일 2 .h)도 호출합니다. TESTFILE 내가 JNI 코드에 TESTFILE가 .c 전체를 변환하거나 모두 내가 이상 (사용하는 몇 가지 방법을하지 변환 할 필요 여부이 .cC 코드를 JNI 코드로 변환하는 방법

#include "file1.h" 
#include "file2.h" 

void myMethod1() 
{ 
    ... 
    ... 
} 
void myMethod2() 
{ 
    ... 
    ... 
} 
void myMethod3() 
{ 
    ... 
    ... 
} 

: 예를 들어

그들)? 헤더 파일 (file1.h 및 file2.h) 안에 c 코드를 변환해야합니까? 아니면 testFile.c에서 C 코드를 변환해야합니까?

답변

1

가장 쉬운 방법은 JNI Java 사이드 인터페이스를 정의하고 c 메소드 스텁의 자동 생성 (javah)을 사용하여 c 파일을 생성하는 것입니다. 이 c 파일에서 실제 c 메소드 인 method1(), method2()method3()을 호출하십시오.

http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javah.html

+1

답장을 보내 주셔서 감사합니다. 그러나, 미안 해요, 내 질문은, 또한 헤더 파일 (file1.h 및 file2.h) 안에 c 코드를 변환해야합니다, 또는 난 그냥 testFile.c에서 C 코드를 변환? –

+1

http://marakana.com/forums/android/examples/49.html –

3

또는 자바와 C 코드 사이의 인터페이스는 매우 간단하지만 안드로이드에서 JNI를 사용하는 전체 프로세스가 익숙하지 않은 경우, 당신은 더 많거나 적은에서 안녕하세요 - JNI를 예로 C 코드를 병합 할 수 있습니다 ndk. 요점은 빌드하고 작동하는 것으로 시작하여 조금씩 필요한 것을 추가하고 문제가 발생하면 백업하고 어떤 단계에서 파산했는지 파악할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 하지만, 미안 해요, 내 질문은, 또한 헤더 파일 (file1.h 및 file2.h) 안에 c 코드를 변환해야합니까, 아니면 난 그냥 testFile.c에서 C 코드를 변환? –

+0

C 코드와 마찬가지로, ndk 빌드 환경, 안드로이드 실행 환경, 프로세스 라이프 타임에 대한 활동 라이프 사이클 영향 등과 같은 적응을 필요로하는지에 따라 다릅니다. 특정 답변에 대해서는 너무 광범위한 질문입니다. 어떤 것을 시도해보고 특정 문제가있는 새로운 질문을 올리면 * 가끔 * 오류를 피하기 위해 활동 라이프 사이클 문서를 읽고 이해하십시오. –

+0

OK, 고맙습니다. –

관련 문제