Android

[Native C++] 4. Java클래스 생성과 C소스 연결하기

별빛의온기 2022. 10. 27. 09:49
반응형

1. java에서 호출할 패키지와 class를 생성합니다.

 

샘플프로젝트에서는 sample 패키지 아래에 Sample 클래스를 추가하였습니다.

 

2. MainActivity에 있는 native 관련 매소드들을 sample.class에 잘라 넣습니다. 그리고 소스를 일부 수정합니다.

바로 native로 연결해도 되지만 굳이 2번 거치도록 한 이유는 java에서 소스를 고쳐야 할 경우 여기서 고치도록 하려고 했습니다. 여기는 개인 성향에 따라 다른 부분이라 따라하지 않아도 무관합니다.

 

3. 빨간색으로 되어있는 jni_stringFromJNI()에 마우스를 좌클릭하면 왼쪽 위에 빨간 느낌표가 뜹니다.

 

느낌표를 클릭하고 Create JNI function for jni_stringFromJNI를 클릭합니다.

 

클릭하면 native-lib.cpp에 jni_stringFromJNI가 생성됩니다.

 

위에서 맨 처음에 생성되어 있던 MainActivity.stringFromJNI의 내부 소스 코드를 Sample.jni_stringFromJNI로 옮긴 후 삭제합니다.

 

 

 

 

4. 위와 같은 방법으로 Sample.java와 native-lib.cpp에 GetVersion과 GetSample 매소드를 추가합니다

 

Sample.java
native-lib.cpp

 

 

5. native-lib에서 sample 함수를 호출하도록 소스를 수정합니다.

6. 그리고 MainActivity에서 사용하지 않는 부분을 수정합니다.

7. 앞서 mainActivity의 경로가 바뀌었으므로 manifest 파일의 name을 수정합니다.

 

8. 그리고 빌드하면 성공한것을 확인 할 수 있습니다.

 

반응형