메인 콘텐츠로 바로가기

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

웹 앱을 Native Android 기능으로 강화하기 위해 AAR 파일을 Capacitor 플러그인에 통합하는 방법에 대한 단계별 가이드를 학습하세요.

Martin Donadieu

Martin Donadieu

콘텐츠 마케터

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

__CAPGO_KEEP_0__ 앱에 Android 기능을 통합하고 싶으신가요? Capacitor 앱? 이 안내서에서는 Android Archive (AAR) 파일을 사용하여 Capacitor 플러그인

을 사용하여 네이티브 안드로이드 기능을 크로스 플랫폼 웹 앱과 결합하는 방법을 설명합니다.

빠른 단계:

  1. 환경 설정: 필요한 도구를 설치하고 Android Studio를 구성하세요.
  2. 프로젝트를 조직하세요: 자신의 __CAPGO_KEEP_0__ 플러그인을 명확한 구조로 만드세요. Capacitor plugin.
  3. AAR 파일 추가: 그것들을 android/libs Gradle 의존성을 업데이트하십시오.
  4. code 플러그인에 __CAPGO_KEEP_0__의 __CAPGO_KEEP_1__를 사용하여 AAR 기능과 JavaScript를 연결하십시오. Capacitor’s API.
  5. Android Studio의 디버거를 사용하여 smooth한 통합을 확인하십시오. __CAPGO_KEEP_0__ 플러그인에 AAR 파일을 완벽하게 통합하여 웹 앱에 native Android 기능을 활성화하십시오.

By following this guide, you can seamlessly incorporate AAR files into your Capacitor plugins, unlocking native Android capabilities for your web apps.

__CAPGO_KEEP_0__ capacitor __CAPGO_KEEP_0__

capacitor

개발 환경 설정 요구 사항

AAR 파일과 작업하기 전에 개발 환경이 올바르게 구성되어 있지 않은 경우 문제가 발생하지 않도록 하십시오.

필요한 소프트웨어

AAR 파일과 Capacitor 플러그인에서 작업하기 위해 필요한 소프트웨어입니다:

소프트웨어최소 버전목적
Android Studio2022.1.1 이상Android 개발의 주 IDE
Java 개발 도구11 이상__CAPGO_KEEP_0__ 및 __CAPGO_KEEP_1__ 패키지 관리를 위한 Android 개발에 필요
Node.js14.0 이상Capacitor와 npm 패키지 관리를 위한
Gradle7.3 이상Android 빌드 도구
Git2.30 이상__CAPGO_KEEP_0__와 __CAPGO_KEEP_1__ 패키지 관리를 위한 버전 관리

다음 구성 요소가 포함된 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. Android Studio 설정을 구성하세요

Android Studio를 실행하고 다음 설정을 조정하세요:

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

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

파일을 업데이트하여 AAR 파일 지원을 포함하세요: android/build.gradle 버전 관리를 설정하세요.

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. 프로젝트 디렉토리에서 Git을 초기화하고 불필요한 파일을 제외하기 위한 파일을 생성하세요. 예를 들어:

이러한 단계가 완료되면 AAR 파일을 추가하는 단계로 넘어가실 수 있습니다. .gitignore AAR 파일을 플러그인에 추가하세요. .gitignore:

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

AAR 파일을 가져오세요.

AAR 파일은 세 번째-party SDK, 커스텀 라이브러리, 또는 Maven 의존성을 통해 가져올 수 있습니다. AAR 파일의 원본, 버전, 목적을 문서화하는 것이 좋습니다.

버전 관리를 설정하세요.

프로젝트 디렉토리에서 Git을 초기화하고 불필요한 파일을 제외하기 위한 파일을 생성하세요. 예를 들어: README 파일이 위치한 디렉토리. libs 디렉토리.

소스 타입설명최선의 방법
제 3 자 SDK제 3 자 SDK제 3 자 SDK에서 제공하는 미리 컴파일된 라이브러리
제 3 자 SDK의 버전 정보를 README에 기록하십시오.커스텀 안드로이드 라이브러리자체 개발한 안드로이드 모듈
빌드 프로세스를 문서화하십시오.remote 저장소에서 변환오프라인 빌드에 대한 로컬 캐싱

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

__CAPGO_KEEP_0__ 플러그인에 AAR 파일을 통합하기 위해 Gradle을 적절히 구성해야 합니다. 시작하려면 다음 저장소 설정을 추가하세요.

Gradle 구성 단계

Gradle 빌드 도구 인터페이스

build.gradle을 업데이트하세요:

To integrate AAR files into your Capacitor plugin, you need to configure Gradle appropriately. Start by adding these repository settings to android/build.gradle:

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

Gradle dependencies AAR 파일을 __CAPGO_KEEP_0__ 플러그인에 통합하려면 다음 블록에 종속성을 포함해야 합니다:

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'
    }
}

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

Gradle Sync 실행

Android Studio에서 프로젝트를 열고 Gradle이 자동으로 싱크를 시작할 때까지 기다립니다. 만약 자동으로 시작하지 않는다면, 툴바의 "Gradle 파일과 프로젝트를 싱크" 버튼을 클릭하세요.

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

점검 항목기대 결과일반적인 문제
빌드 출력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 기능을 연결하기 위해 플러그인 클래스를 확장하는 시간입니다. 플러그인 class. 이 단계는 자바스크립트를 네이티브 안드로이드 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());
    }
}

AAR 라이브러리를 초기화하는 데 필요한 것은 다음과 같습니다:

컴포넌트목적Implementation Note
컨텍스트안드로이드 앱 컨텍스트사용 getContext() 플러그인 클래스
설정라이브러리 설정플러그인에서 옵션을 전달하세요
라이프 사이클플러그인 상태 관리Override load() 그리고 handleOnDestroy()

플러그인 메소드 만들기

다음으로 플러그인 메소드를 정의하세요. 이 메소드는 JavaScript와 Java 간 데이터 교환을 처리합니다. @PluginMethod 비동기적으로 실행해야 하는 작업에 대해:

@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);
    }
}

JavaScript와 Java 간 일반적인 타입은 다음과 같이 변환됩니다:

@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);
        }
    });
}

JavaScript 타입

Java 타입For tasks that need to run asynchronously:__CAPGO_KEEP_0__변환 방법
ObjectJSObjectcall.getObject()
배열JSArraycall.getArray()
문자열문자열call.getString()
숫자정수/실수call.getInt()/call.getDouble()
call.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
        }
    }
}

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

@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의 디버그 패널을 사용하여 주요 영역을 모니터링하세요:

디버깅 영역확인해야 할 사항일반적인 문제
로그캣AAR 초기화 메시지권한이 없거나 잘못된 컨텍스트
변수데이터 타입 변환null 값 또는 타입 불일치
스택 트레이스메소드 실행 흐름유효하지 않은 메소드 호출 또는 스레딩 문제
메모리리소스 사용메모리 누수

__CAPGO_KEEP_0__

문제 해결 단계

__CAPGO_KEEP_1__

1. 의존성 충돌

버전 충돌이 있는지 확인하세요. 의존성 버전을 강제로 지정하여 충돌을 해결할 수 있습니다. build.gradle 2. 미리 컴파일된 네이티브 라이브러리 누락

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

AAR에 필요한 파일이 포함되어 있는지 확인하세요. 예를 들어:

3. 매니페스트 병합 문제 .so 매니페스트 충돌이 발생하는 경우 다음 항목을 프로젝트에 포함하세요.

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

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__ AndroidManifest.xml 문제가 있는 라이브러리를 오버라이드하는 파일:

<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>

4. 런타임 충돌 및 메모리 관리

안드로이드 스튜디오의 Performance 탭을 사용하여 런타임 안정성을 모니터링하고 초기화 문제의 경우 예외를 주의 깊게 처리하십시오:

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

메모리 누수를 방지하기 위해 자원들이 올바르게 해제되도록 보장하십시오. 안드로이드 스튜디오의 Memory Profiler를 사용하여 힙 사용량을 추적하고 누수를 식별하십시오.

요약

Capacitor 플러그인을 통합하기 위해 AAR 파일을 통합하려면 안드로이드 환경을 설정하고 AAR 파일을 올바르게 위치시키고 Gradle을 정확하게 구성하고 철저히 테스트해야 합니다.

주요 구현 단계

단계요구 사항성공의 지표
개발 환경 설정안드로이드 스튜디오 4.0+, Gradle 7.0+오류가 없는 빌드 완료
AAR 통합파일 위치가 올바르며 의존성이 정확합니다.매니페스트 충돌이 없습니다.
플러그인 개발플러그인의 구조가 명확하며 메소드 매핑이 정확합니다.메소드가 예상대로 실행됩니다.
테스트디버그 모드가 활성화되어 효과적인 오류 처리가 이루어집니다.런타임 충돌이 없습니다.

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

다음 단계

__CAPGO_KEEP_0__을 강화하기 위해 다음 영역에 집중하세요:

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

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

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

공개로 플러그인을 공유하려면 AAR-특정 설정에 대한 자세한 문서와 플랫폼 제약 조건을 제공하세요. 다른 개발자들이 플러그인을 효과적으로 사용하고 채택하기 쉽게 만드세요.

Capacitor 앱에 실시간 업데이트

웹-layer 버그가 활성화된 경우 Capgo을 통해修정을 배포하여 앱 스토어 승인 대기일을 기다리지 말고.

Get Started Now

최신 블로그 기사

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