메인 콘텐츠로 바로 가기

Capacitor 플러그인에서 AAR 파일을 사용하는 방법

웹 앱을 Native Android 기능으로 강화하기 위해 단계별 가이드를 통해 AAR 파일을 Capacitor 플러그인에 통합하는 방법을 배웁니다.

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

Capacitor AAR 파일을 사용하는 방법

__CAPGO_KEEP_0__ 앱에 안드로이드 기능을 통합하고 싶다면? Capacitor 이 안내서에서는 __CAPGO_KEEP_0__ 플러그인에서 AAR(Android Archive) 파일을 사용하여 네이티브 안드로이드 기능을 크로스 플랫폼 웹 앱과 결합하는 방법을 설명합니다. 주요 내용: Capacitor plugins 안드로이드 라이브러리, 리소스, 네이티브 파일을 포함한 미리 패키지된 안드로이드 라이브러리입니다.

왜 사용해야 하나요?

  • Why use them? Pre-packaged Android libraries containing code, resources, and native files.
  • Why use them? AAR 파일은 code 재사용을 허용하고 유지 관리를 단순화하며 사유 특허 기능을 보호합니다.
  • 필요한 것은 무엇인가요? 구글의 Android Studio, Gradle, 그리고 Node.js, 그리고 프로젝트 설정을 올바르게 구성하는 것입니다.
  • Capacitor와의 통합 방법은? AAR 파일을 libs에 위치시켜서 Gradle을 구성하고 Capacitor 플러그인을 연결하세요.

빠른 단계:

  1. 환경 설정: 필요한 도구를 설치하고 안드로이드 스튜디오를 구성하세요.
  2. 프로젝트를 조직하세요: 프로젝트의 Capacitor.
  3. AAR 파일 추가: 그리고 Gradle 의존성을 업데이트하세요. android/libs __CAPGO_KEEP_0__ 플러그인 작성:
  4. code의 __CAPGO_KEEP_1__ Capacitor’s API.
  5. __CAPGO_KEEP_0__ Android Studio의 디버거를 사용하여 smooth한 통합을 보장하세요.

Capacitor 가이드를 따라서, AAR 파일을 Capacitor 플러그인에 쉽게 통합할 수 있습니다. 이는 웹 앱에 native Android 기능을 활성화하는 데 도움이 됩니다.

Android 라이브러리(AAR 파일)를 __CAPGO_KEEP_0__ 플러그인에 어떻게 포함할 수 있는지 capacitor __CAPGO_KEEP_0__

capacitor

AAR 파일과 작업하기 전에 개발 환경이 올바르게 구성되어 있는지 확인하세요. 이로 인해 문제가 발생하지 않도록 하세요.

필요한 소프트웨어

__CAPGO_KEEP_0__ 플러그인에서 AAR 파일을 사용하기 위해 필요한 소프트웨어는 다음과 같습니다.

Here’s the software you’ll need to work with AAR files in Capacitor plugins:

Android Studio의 디버거를 사용하여 smooth한 통합을 보장하세요.최소 버전목적
안드로이드 스튜디오2022.1.1 이상안드로이드 개발의 주 IDE
자바 개발 키트11 이상안드로이드 개발을 위한 필수
노드.js14.0 이상관리할 Capacitor 및 npm 패키지를 위한
그레이들7.3 이상Android 빌드 도구
Git2.30 이상버전 관리 및 패키지 관리를 위해

다음 구성 요소가 SDK 매니저에 포함되어 있는지 확인하세요.

  • Android SDK 플랫폼 33 (Android 13.0)
  • Android SDK 빌드-툴 33.0.0
  • Android SDK 명령줄 도구
  • Android 에뮬레이터
  • Android SDK 플랫폼 도구

프로젝트 설정 단계

1. 개발 환경을 초기화하세요

다음 구조로 새로운 폴더를 생성하세요:

my-plugin/
├── android/
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json

2. 안드로이드 스튜디오 설정을 구성하세요

안드로이드 스튜디오를 실행하고 다음 설정을 조정하세요:

  • Gradle JDK 버전을 11 이상으로 설정하세요
  • 안드로이드 SDK 컴포넌트에 대한 자동 다운로드 기능을 활성화하세요
  • 시스템 환경 변수를 업데이트하여 올바른 안드로이드 SDK 경로를 설정하세요

3. 플러그인 구조를 준비하세요

파일에 다음 설정을 포함하여 AAR 파일 지원을 포함하세요: android/build.gradle 버전 관리를 설정하세요

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. 프로젝트 디렉토리에서 Git을 초기화하고 생성하세요

버전 관리를 초기화하세요 .gitignore 필요하지 않은 파일을 제외하기 위한 파일입니다. 예시로 .gitignore:

android/build/
node_modules/
dist/
*.iml
.idea/
.gradle/
local.properties

이러한 단계가 완료되면 AAR 파일을 추가하는 단계로 넘어가실 수 있습니다.

플러그인에 AAR 파일 추가하기

AAR 파일 가져오기

AAR 파일은 제 3 자 SDK, 커스텀 라이브러리, 또는 Maven 의존성에서 나올 수 있습니다. 그들의 출처, 버전, 목적을 문서화하는 것이 좋습니다. README 파일 위치 libs 소스 유형

설명최선의 방법제 3 자 SDK
제 3 자의 SDK에서 제공하는 미리 컴파일된 라이브러리사용자 정의 라이브러리제조사 버전 정보를 README에 문서화하십시오.
사용자 정의 안드로이드 라이브러리자체 개발 안드로이드 모듈빌드 프로세스를 문서화하십시오.
Maven 의존성remote repository에서 가져온 것을 변환오프라인 빌드에 대비하여 로컬 캐시

AAR 파일이 준비되고 문서화되었을 때, 플러그인을 구성하여 포함할 수 있습니다.

플러그인 파일 설정

AAR 의존성을 원활하게 통합하기 위해 플러그인 파일을 조직하십시오. 예를 들어, 플러그인 구조는 다음과 같습니다.

my-plugin/
├── android/
│   ├── libs/        # AAR files with README
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json
{
    "files": [
        "android/libs/*.aar",
        "android/src/**/*",
        "src/**/*"
    ]
}

AAR 파일 위치

AAR 기능을 활성화하려면 파일을 위치시켜야 합니다. android/libs 플러그인 디렉토리를 다음 단계를 따라 생성하세요:

  • 명확하고 일관된 이름 형식을 사용하세요, 예를 들어 libraryname-version.aar.
  • 버전을 관리하는 versions.properties 파일에 저장하세요. 예를 들어:
library1=1.2.3
library2=2.0.0
  • 다른 의존성에 대한 dependencies.gradle 파일을 추가하세요.
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • 판매자별 파일을 하위 디렉토리로 구분하여 관리하세요.
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

판매자별 설정 파일을 하위 디렉토리에 저장하면 유지 관리가 용이하고 여러 AAR 의존성을 사용할 때 빌드 충돌을 피할 수 있습니다.

Gradle 구성 단계

Gradle 빌드 도구 인터페이스

build.gradle 업데이트

To Capacitor 플러그인을 AAR 파일과 통합하려면 Gradle을 적절히 구성해야 합니다. Gradle 설정을 구성하기 시작하려면 다음 저장소 설정을 추가하세요. android/build.gradle:

repositories {
    google()
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

그런 다음 AAR 의존성을 포함하세요. dependencies 블록:

dependencies {
    implementation files('libs/your-library.aar')
    implementation fileTree(dir: 'libs', include: ['**/*.aar'])
    implementation "com.getcapacitor:core:${capacitorVersion}"
    implementation "androidx.appcompat:appcompat:1.6.1"
}

버전 관리를 위해 더 나은 관리를 위해 프로젝트 루트에 gradle.properties 파일을 생성하고 라이브러리 버전을 정의하세요:

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

AAR 파일이 추가 의존성을 포함하는 경우 android/build.gradle 처럼 선언하세요.

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
    }
}

이러한 변경 사항을 적용하려면 프로젝트를 Sync 하세요.

Gradle Sync를 실행합니다.

Android Studio에서 프로젝트를 열고 Gradle이 자동으로 Sync되기를 기다립니다. Sync가 시작되지 않으면 툴바의 "Gradle 파일과 프로젝트 Sync" 버튼을 클릭하세요.

Sync가 완료된 후 다음을 확인하세요.

점검 포인트예상 결과일반적인 문제
빌드 출력AAR 관련 오류가 없습니다필요한 의존성 누락
라이브러리 해결AAR 파일이 올바르게 연결경로 참조 오류
버전 충돌의존성 버전 문제가 없습니다버전이 불일치

sync가 실패하면, 설정을 다시 확인하세요. 예를 들어, 다음 설정이 올바르게 설정되어 있는지 확인하세요:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }
}

대형 AAR 파일의 경우 Gradle의 메모리 할당량을 증가시키는 것이 필요할 수 있습니다. gradle.properties:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

sync가 성공적으로 완료되면 AAR 파일이 완전히 통합되고 테스트를 위해 준비되어야 합니다.

AAR 기능을 Capacitor에 연결하는 중입니다.

플러그인 클래스를 작성하는 중입니다.

Gradle 파일이 sync되면 AAR 기능을 연결하기 위해 플러그인 클래스를 확장하는 시간입니다. 이 단계는 자바스크립트를 네이티브 안드로이드 __CAPGO_KEEP_0__와 연결합니다. AAR 라이브러리를 초기화하는 데 필요한 항목입니다. class. This step links JavaScript to the native Android code.

@NativePlugin(
    permissions = {
        Manifest.permission.REQUIRED_PERMISSION
    }
)
public class YourPlugin extends Plugin {
    private YourAARLibrary libraryInstance;

    @Override
    public void load() {
        super.load();
        libraryInstance = new YourAARLibrary(getContext());
    }
}

implementation

contextAAR 기능을 연결하기 위해 플러그인 클래스를 확장하는 시간입니다. 이 단계는 자바스크립트를 네이티브 안드로이드 __CAPGO_KEEP_0__와 연결합니다.AAR 라이브러리를 초기화하는 데 필요한 항목입니다.
AAR 기능을 연결하기 위해 플러그인 클래스를 확장하는 시간입니다. 이 단계는 자바스크립트를 네이티브 안드로이드 __CAPGO_KEEP_0__와 연결합니다.Android 앱 컨텍스트사용 getContext() Plugin 클래스에서 사용
설정라이브러리 설정플러그인에서 옵션 전달
라이프 사이클플러그인 상태 관리Override load() 그리고 handleOnDestroy()

플러그인 메서드 정의

다음으로, 플러그인에서 메서드를 정의하세요. @PluginMethod annotation. 이 메소드는 자바스크립트와 자바 간의 데이터 교환을 처리합니다.

@PluginMethod
public void performAction(PluginCall call) {
    try {
        // Get data from JavaScript
        String inputData = call.getString("inputKey");

        // Call AAR library method
        YourLibraryResult result = libraryInstance.processData(inputData);

        // Return result to JavaScript
        JSObject ret = new JSObject();
        ret.put("value", result.getValue());
        call.resolve(ret);
    } catch (Exception e) {
        call.reject("Error processing data", e);
    }
}

async 작업을 위해 필요할 때:

@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
public void startContinuousOperation(PluginCall call) {
    call.setKeepAlive(true);

    libraryInstance.setCallback(new LibraryCallback() {
        @Override
        public void onUpdate(String data) {
            JSObject ret = new JSObject();
            ret.put("data", data);
            call.resolve(ret);
        }
    });
}

자바스크립트와 자바 간의 일반적인 타입은 다음과 같이 변환됩니다.

자바스크립트 타입자바 타입변환 방법
객체JSObjectcall.getObject()
배열JSArraycall.getArray()
문자열Stringcall.getString()
숫자정수/실수call.getInt()/call.getDouble()
BooleanBooleancall.getBoolean()

자원 정리 위해 오버라이드하는 handleOnDestroy method:

@Override
protected void handleOnDestroy() {
    if (libraryInstance != null) {
        libraryInstance.cleanup();
        libraryInstance = null;
    }
    super.handleOnDestroy();
}

자연 언어橋梁이 준비되었습니다. Android Studio의 디버그 환경에서 테스트하여 모든 것이 예상대로 작동하는지 확인하세요.

테스트 및 문제 해결

디버그 모드에서 Android Studio

Android Studio

Android Studio의 디버그 모드를 활성화하여 프로젝트의 AAR 통합을 디버그하세요. build.gradle file:

android {
    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
        }
    }
}

plugin 메서드에서 데이터 흐름을 추적하고 잠재적인 문제를 식별하기 위해 브레이크 포인트를 추가하세요.

@PluginMethod
public void yourMethod(PluginCall call) {
    // Set a breakpoint here to inspect input data
    String inputValue = call.getString("key");
    // Another breakpoint here to check method calls to the AAR
    libraryInstance.someMethod(inputValue);
}

Android Studio의 Debug 패널을 사용하여 주요 영역을 모니터링하세요.

debugging 영역검사할 항목일반적인 문제
LogcatAAR 초기화 메시지권한이 누락되거나 오류가 있는 컨텍스트
변수데이터 형식 변환Null 값 또는 타입 일치 오류
Stack Trace메서드 실행 흐름유효하지 않은 메서드 호출 또는 스레딩 문제
메모리리소스 사용량메모리 누수

__CAPGO_KEEP_0__

문제 해결 단계

디버깅만으로 문제를 해결할 수 없다면, 다음 섹션의 문제 해결 단계를 따르세요.

문제 해결 단계

디버깅만으로 문제를 해결할 수 없다면, 다음 단계를 따르세요. build.gradle 1. 의존성 충돌

configurations.all {
    resolutionStrategy {
        force 'com.google.android:android:4.1.1.4'
        // Add other forced versions as needed
    }
}

2. 원본 네이티브 라이브러리 누락

AAR이 포함하는 필요한 파일이 적절한 디렉토리에 포함되어 있는지 확인하세요. 예를 들어: .so 3. 매니페스트 병합 문제

  • jniLibs/armeabi-v7a/
  • jniLibs/arm64-v8a/
  • jniLibs/x86/
  • jniLibs/x86_64/

매니페스트 충돌이 발생하는 경우, 문제가 되는 라이브러리를 오버라이드하기 위해 다음을 파일에 포함하세요:

4. 런타임 충돌 및 메모리 관리 AndroidManifest.xml Android Studio의 Performance 탭을 사용하여 런타임 안정성을 모니터링하세요. 초기화 문제의 경우 예외를 신중하게 처리하세요:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="your.plugin.package">
    <uses-sdk tools:overrideLibrary="conflicting.library.package"/>
</manifest>

메모리 누수를 방지하기 위해 리소스가 올바르게 해제되는지 확인하세요. Android Studio의 Memory Profiler를 사용하여 힙 사용량을 추적하고 누출을 식별하세요.

요약

try {
    libraryInstance = new YourAARLibrary(getContext());
} catch (Exception e) {
    Log.e("PluginError", "Failed to initialize library: " + e.getMessage());
    return;
}

__CAPGO_KEEP_0__ 플러그인에 AAR 파일을 통합하려면 Android 환경을 설정하고 AAR 파일을 올바르게 위치시키고 Gradle을 정확하게 구성하고彻底한 테스트를 수행해야 합니다.

주요 구현 단계

To integrate AAR files into Capacitor plugins, you’ll need to set up the Android environment, place AAR files correctly, configure Gradle accurately, and test thoroughly.

3. Manifest Merger Issues

Phase요구사항성공 지표
개발 환경 설정Android Studio 4.0+, Gradle 7.0+오류 없이 빌드 완료
AAR 통합파일 위치 정상, 의존성 정확매니페스트 충돌 없음
플러그인 개발플러그인 구조 명확, 메소드 매핑 정확메소드 실행 정확
Testing에러 처리가 활성화된 디버그 모드런타임 충돌이 없음

기본적인 개념을 마스터한 후에는 더 고급된 기술을 탐색할 수 있습니다.

다음 단계

플러그인을 강화하기 위해 다음 영역에 집중하세요.

  • 성능 최적화
    Android Studio의 프로파일러를 사용하여 메모리 사용량을 모니터링하고 리소스가 올바르게 정리되는지 확인하세요.

  • 배포 준비
    모든 AAR 구성에 대한 문서를 작성하고 API 문서를 생성하고 Android API 29–34 수준과 호환성을 테스트하세요.

  • 유지 관리 전략
    테스트를 자동화하고 버전 관리를 사용하여 AAR 버전을 관리하고 변경 로그를 유지하고 오류 보고를 설정하여 생산 문제를 해결하세요.

공개로 플러그인을 공유하려면 AAR-특정 설정 및 플랫폼 제한에 대한 자세한 문서를 제공하십시오. 다른 개발자들이 플러그인을 효과적으로 사용하고 채택하기 쉽게 하십시오.

How to Use AAR Files in Capacitor Plugins에서 계속 진행하십시오.

__CAPGO_KEEP_0__를 사용 중이시면 How to Use AAR Files in Capacitor Plugins __CAPGO_KEEP_0__를 연결하여 Capgo 플러그인 디렉토리 Capgo 플러그인 디렉토리에서 제품 워크플로우 Capacitor Plugins by Capgo Capacitor Plugins by Capgo의 구현 세부 사항 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트의 구현 세부 사항 Ionic Enterprise Plugin Alternatives Ionic Enterprise Plugin Alternatives 제품 워크플로우에 대해, 그리고 Capgo 네이티브 빌드에 대해 for the product workflow in Capgo Native Builds.

Capacitor 앱에 대한 실시간 업데이트

웹-layer 버그가 활성화된 경우, 앱 스토어 승인 대기 없이 Capgo를 통해 수정을 배포하세요. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

시작하기

__CAPGO_KEEP_0__ 블로그의 최신 글

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.