반응형

Android 9

[Native C++] 응용1. Assets을 이용한 aar 만들기 (3)

Assets 폴더의 자산을 활용할수 있도록 Class를 변경하도록 합니다. 1. 다음과 같이 클래스에 소스를 추가합니다. import android.content.Context; import android.content.res.AssetManager; public class Sample { // Used to load the 'native-lib' library on application startup. static { System.loadLibrary("native-lib"); } //기본 생성자. public Sample(){ } // 생성자 추가, 라이브러리에서 Assets에 접근하기 위함. public Sample(Context context){ jni_ReadAssetManager(context..

Android 2022.10.30

[Native C++] 응용1. Assets을 이용한 aar 만들기 (2)

Assets 폴더를 만들고 자료를 넣었으면 이를 활용하기 위한 Assets 관련 소스를 import하겠습니다. 1. 프로젝트의 cpp 폴더에 다음과 같은 소스파일을 넣습니다. - android_fopne.cpp #include #include "android_fopen.h" #include #include static int android_read(void *cookie, char *buf, int size) { return AAsset_read((AAsset *) cookie, buf, size); } static int android_write(void *cookie, const char *buf, int size) { return EACCES; // can't provide write access ..

Android 2022.10.29

[Native C++] 응용1. Assets을 이용한 aar 만들기 (1)

자신의 aar 라이브러리안에 bin이나 txt같은 파일이 있어야 한다면 Assets를 활용하면 됩니다. 기존에 만든 SampleProject를 활용하여 이어서 진행하며, 첫번째로 Assets 폴더를 만들어서 파일을 넣는 방법을 소개하겠습니다. 1. 프로젝트 창에서 [app] 을 우클릭한뒤 [new] - [Folder] - [Assets Folder]를 클릭합니다. 2. 선택 후 Finish를 누릅니다 3. 프로젝트에 assets 폴더가 생성된것을 볼 수 있습니다. assets 폴더를 우클릭하고 Open In - Explorer를 클릭합니다. 4. Assets 폴더에 넣길 원하는 파일을 넣습니다. 샘플 프로젝트에서는 다음과 같은 파일과 내용을 넣었습니다. 5. assets 폴더에 위 data.txt 파일이..

Android 2022.10.29

[Native C++] 6. aar 배포용 샘플 프로젝트 만들기(또는 aar파일을 프로젝트에 포함시키는 방법)

우선 공식 홈페이지에 친절하게 설명 되어 있다는점 참고 바라며.. https://developer.android.com/studio/projects/android-library?hl=ko Android 라이브러리 만들기 | Android 개발자 | Android Developers Android 라이브러리를 생성하는 방법을 알아보세요. developer.android.com 1. 만들어낸 aar 파일을 테스트하기 위하여 SampleTest라는 프로젝트를 새로 생성하였습니다. 2. 해당 프로젝트의 app/libs에 이전에 만든 aar 파일을 복사합니다. 3. 상단의 [File] - [Project Structure] 를 클릭하고 [Dependencies]를 클릭하면 아래와 같은 창이 뜹니다 4. All D..

Android 2022.10.28

[Native C++] 5. 라이브러리 동작 확인하고 aar 파일 만들기

이제 제대로 동작하는지 확인을 위한 간단한 App을 만들어보겠습니다. 1. MainActivity를 다음과 같이 수정합니다. 2. 가상 스마트폰으로 돌려봅니다 30이 출력되었음을 확인 할 수 있습니다. 샘플이라 단순하게 Log로 뿌렸지만 UI를 꾸며서 스마트폰에 출력해도 됩니다. 3. 동작이 확인되었으면 aar파일을 생성해보겠습니다. app의 build.gradle을 클릭하여 id 'com.android.application' applicationId "com.example.sampleproject" 를 주석처리하고 plugins에 id 'com.android.library' 를 추가합니다. 또한 기본 이름도 변경해보겠습니다. plugins { //id 'com.android.application' id..

Android 2022.10.28

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

1. java에서 호출할 패키지와 class를 생성합니다. 샘플프로젝트에서는 sample 패키지 아래에 Sample 클래스를 추가하였습니다. 2. MainActivity에 있는 native 관련 매소드들을 sample.class에 잘라 넣습니다. 그리고 소스를 일부 수정합니다. 바로 native로 연결해도 되지만 굳이 2번 거치도록 한 이유는 java에서 소스를 고쳐야 할 경우 여기서 고치도록 하려고 했습니다. 여기는 개인 성향에 따라 다른 부분이라 따라하지 않아도 무관합니다. 3. 빨간색으로 되어있는 jni_stringFromJNI()에 마우스를 좌클릭하면 왼쪽 위에 빨간 느낌표가 뜹니다. 느낌표를 클릭하고 Create JNI function for jni_stringFromJNI를 클릭합니다. 클릭하..

Android 2022.10.27

[Native C++] 3. 기본 헤더파일 경로 추가하기.

이 챕터는 굳이 할 필요 없는 챕터인데 설명을 위해 넣은 챕터입니다. 기존에 가진 소스를 활용할 경우 헤더파일 경로를 로 되어 있는것을 ""으로 수정하고 싶을 수도 있습니다. ​ 그래서 샘플프로젝트를 이용하여 기본 헤더파일 경로를 추가해보도록 하겠습니다. ​ 1. CmakeList.txt에 디렉토리 경로 추가인 include_dierctories를 입력하고 안에 경로를 넣습니다. 예제에서는 src 폴더입니다. 2. 그리고 sample.cpp에 #include "src/src.h"를 include 로 변경하고 동기화 후 빌드하면 됩니다.

Android 2022.10.27

[Native C++] 2. C소스 포함시켜서 빌드하기

1. 프로젝트 폴더에서 app/src/main/cpp/ 에 자신이 라이브러리로 만들고자 하는 소스파일을 넣습니다. 저같은 경우 cpp 폴더에 sample 소스파일을 넣었고, 또한 cpp폴더에 src 폴더를 만들고 src 소스파일을 넣었습니다. 2. CMakeLists.txt를 클릭하여 add_library에다가 위에 추가한 파일들과 생성할 라이브러리 이름을 입력합니다. 이 예제에서는 라이브러리 이름을 Sample-lib로 지정하여 변경하였으며, 1번에서 추가한 파일들인 sample.cpp sample.h src/src.c src/src.h 를 입력하였습니다. 또한, target_link_libraries에도 다음과 같이 위에 입력한 라이브러리 이름으로 변경합니다. 3. 그리고 동기화 후 build 합니다..

Android 2022.10.27

[Native C++]1. 프로젝트 생성하기 (JAVA)

1. Android Studio를 실행한뒤, 프로젝트 생성을 들어가서 Native c++을 선택합니다. 2. 프로젝트 이름과 패키지, 경로, 언어, 최소 지원 API를 설정하고 Next를 클릭합니다. 3. 툴체인을 선택하고 다음을 누르면 프로젝트가 생성됩니다. 샘플 프로젝트는 툴체인을 default로 선택하였습니다. 4. 프로젝트가 생성되었음을 확인 할 수 있습니다.

Android 2022.10.12
반응형