Andorid Studio에서 Native C++로 프로젝트 생성
프로젝트/src/main/cpp 에 c++ 관련 파일들이 생김
CMakeList.txt
C++ 파일을 빌드하기 위한 정보(https://morningcopy.tistory.com/entry/CMake-CMakeListstxt)
cmake_minimum_required(VERSION 3.22.1)
// 프로젝트명 설정 $(CMAKE_PROJECT_NAME}으로 참조 가능
project("MyLib")
// 공유 라이브러리 생성 libmyproject.so
add_library(${CMAKE_PROJECT_NAME} SHARED
# List C/C++ source files with relative paths to this CMakeLists.txt.
native-lib.cpp)
// android, log 라이브러리 추가
target_link_libraries(${CMAKE_PROJECT_NAME}
# List libraries link to the target library
android
log)
native-lib.cpp
C++ 함수를 정의
com/example/project/MainActivity 에 stringFromJNI로 선언할 함수를 정의
#include <jni.h>
#include <string>
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_project_MainActivity_stringFromJNI(
JNIEnv* env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
프로젝트/src/main/java/패키지명/MainActivity.java
public class MainActivity extends AppCompatActivity {
// 라이브러리 로드
static {
System.loadLibrary("MyLib");
}
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
// Example of a call to a native method
TextView tv = binding.sampleText;
tv.setText(stringFromJNI());
}
// C++ 에 정의된 함수를 사용할수 있게 선언
public native String stringFromJNI();
}
'Android > 기본' 카테고리의 다른 글
[Android] Activity 추가 및 시작 Activity 변경 (0) | 2024.01.15 |
---|---|
[Android] Android Studio 단축키 (0) | 2024.01.14 |
[Android] Layout (0) | 2023.12.16 |
[Android] 기본 정보 (0) | 2023.12.16 |
[Android] 디바이스에서 앱 실행 (0) | 2023.12.16 |