Capacitor Native Bridge simplifies building Android plugins by connecting JavaScript and native Android code. Here’s what you need to know:
- 무엇을 하는가: 웹 앱이 카메라나 센서와 같은 네이티브 안드로이드 기능에 접근하는 양방향 브릿지로 작동합니다.
- 왜 사용하는가: 웹 기술과 네이티브 성능을 결합하여 플러그인 개발을 단순화합니다.
- 설정 필수 요소: Node.js, JDK 11+ , , and Capacitor CLI. Ensure proper environment variables and Gradle 설정
- 시작하는 방법: 사용하여
npm init @capacitor/pluginCapacitor 플러그인 scaffold, Java 메서드를 정의하고 Android Studio 또는 실제 장치에서 테스트하는 방법을 설명합니다. - Capgo CapacitorIntegration
: Capacitor 플러그인 배포를 위한 실시간 업데이트, 롤백 및 분석을 활성화합니다.
- 빠른 설정 체크리스트:
- Configure Gradle for API 22+ and Capacitor dependencies.
- Gradle을 Capacitor 22+ 및 CLI 의존성을 위해 구성합니다.
- 에뮬레이터와 실제 기기에서 테스트합니다.
Capacitor은 웹과 네이티브 안드로이드를 연결하는 신뢰할 수 있는 방법을 제공하여 개발자들이 고성능 플러그인을 만들 수 있도록 합니다.
Ionic에서 Native iOS/Android Code을 실행하는 방법
설치 및 설정
네이티브 안드로이드 플러그인을 개발하기 위해 __CAPGO_KEEP_0__을 시작하려면 환경을 신중하게 설정해야 합니다. 여기서 모든 것을 준비하는 방법을 알려드리겠습니다. Capacitor Android plugin다음 도구가 설치 및 구성되어 있는지 확인하세요:
Node.js와 __CAPGO_KEEP_0__
: Node.js 버전 14.0 이상을 설치하세요.
- npmNode.js
- Java 개발 키트 (JDK): JDK 11 이상을 사용하세요.
- Android Studio: 최신 안정 버전 (2023.1.1 이상)을 설치하세요.
- Capacitor CLI: 글로벌로 npm을 설치하세요.
- Android SDK: API 레벨 22 이상이 설치되어 있어야 합니다.
시스템 환경 변수에 다음 경로를 추가하세요:
ANDROID_HOME=/Users/username/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
환경 변수가 올바르게 설정되었는지 확인하세요. 설정이 완료되면 Android Studio 프로젝트를 구성하세요.
Android Studio 프로젝트 설정

다음 단계를 따라 안드로이드 스튜디오 프로젝트를 설정하세요:
- 프로젝트 구성
업데이트하여 build.gradle 파일에 다음 설정을 추가하세요:
android {
compileSdkVersion 33
defaultConfig {
minSdkVersion 22
targetSdkVersion 33
}
}
- 플러그인 의존성 추가
Capacitor 의존성을 포함하여 필요한 의존성을 파일에 추가하세요: build.gradle 매니페스트 파일 구성
dependencies {
implementation '@capacitor/android:5.0.0'
implementation '@capacitor/core:5.0.0'
}
- 필요한 권한과 설정을 파일에 추가하세요:
__CAPGO_KEEP_0__ AndroidManifest.xml __CAPGO_KEEP_0__
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:label="@string/app_name">
<!-- Additional configurations -->
</application>
</manifest>
호환성 표
이 표는 주요 구성 요소의 최소 및 권장 버전을 간단하게 설명합니다.
| 구성 요소 | 최소 버전 | 권장 버전 |
|---|---|---|
| Android Studio | 2023.1.1 | 2023.2.1 |
| JDK | 11 | 17 |
| Gradle | 7.3 | 8.0 |
| Android SDK | API 22 | API 33 |
최적화 Gradle 설정

성능과 호환성을 향상하기 위해 __CAPGO_KEEP_0__을 업데이트하여 다음 설정을 파일에 추가하세요: gradle.properties Android Studio에서 자동 임포트 및 실시간 컴파일을 활성화하여 문제를 신속하게 식별하고 해결하세요. 이러한 단계는 개발을 원활하게하고 자원 사용을 효율적으로 하도록 합니다.
org.gradle.jvmargs=-Xmx2048m
org.gradle.parallel=true
android.useAndroidX=true
첫 번째 안드로이드 플러그인을 만들기
__CAPGO_KEEP_0__을 사용하여 첫 번째 안드로이드 플러그인을 빌드하는 방법을 배워보세요. 이 안내서에서는 단계별로 설명하고 실제적인 팁을 제공합니다.
Learn how to build your first Android plugin using Capacitor. This guide walks you through the steps and shares practical tips.
__CAPGO_KEEP_0__과 __CAPGO_KEEP_1__을 사용하여 플러그인 scaffold를 생성하세요:
Start by generating the plugin scaffold with the Capacitor CLI:
npm init @capacitor/plugin your-plugin-name
cd your-plugin-name
npm install
__CAPGO_KEEP_1__ package.json __CAPGO_KEEP_0__
{
"name": "your-plugin-name",
"version": "1.0.0",
"capacitor": {
"android": {
"src": "android"
}
}
}
이 설정은 Capacitor가 플러그인을 인식하고 Android 소스 파일을 인식하도록 합니다.
플러그인 디렉토리 구조
프로젝트는 이 구조를 따릅니다.
your-plugin-name/
├── android/
│ ├── src/main/
│ │ ├── java/com/yourcompany/plugin/
│ │ │ └── YourPlugin.java
│ ├── build.gradle
│ └── proguard-rules.pro
├── src/
│ ├── definitions.ts
│ └── web.ts
├── package.json
└── README.md
각 키 파일의 역할은 다음과 같습니다.
| 파일 | 목적 |
|---|---|
YourPlugin.java |
Android 논리 처리 |
definitions.ts |
TypeScript 인터페이스 정의 |
web.ts |
웹 기반 fallback 기능 제공 |
package.json |
플러그인 종속성 및 메타데이터 관리 |
플러그인 메서드 작성
플러그인 메서드를 정의하는 곳 YourPlugin.java 파일을 열어보세요. 예를 들어, 간단한 메서드를 보세요:
@PluginMethod
public void echo(PluginCall call) {
String value = call.getString("value");
JSObject ret = new JSObject();
ret.put("value", value);
call.resolve(ret);
}
각 메서드는 @PluginMethod annotation을 필요로 하며 PluginCall 객체를 사용하여 매개 변수와 결과를 처리합니다. 에러 처리를 포함한 또 다른 예를 보세요:
@PluginMethod
public void getData(PluginCall call) {
String id = call.getString("id", null);
if (id == null) {
call.reject("Must provide an id");
return;
}
int limit = call.getInt("limit", 10); // Default value
JSObject result = new JSObject();
result.put("id", id);
result.put("limit", limit);
call.resolve(result);
}
더 복잡한 로직을 처리하려면 예외를 처리하여 안정성을 보장하세요:
@PluginMethod
public void processData(PluginCall call) {
try {
// Processing logic here
call.resolve();
} catch (Exception e) {
call.reject("Error processing data: " + e.getMessage());
}
}
플러그인 테스트
Android Studio의 debugging 도구를 사용하여 각 메서드를 철저히 테스트하세요. 메서드는 특정 작업에 집중하여 code을 깨끗하고 유지 관리하기 쉽게 유지하세요. 디버깅이 완료되면 실제 Android 기기를 사용하여 플러그인을 테스트하여 모든 것이 예상대로 작동하는지 확인하세요.
플러그인 테스트 가이드
Android 기기에서 테스트
Android 플러그인을 효과적으로 테스트하려면 에뮬레이터와 실제 기기를 모두 사용하세요. Android Studio의 AVD Manager는 다양한 API 수준과 화면 크기를 시뮬레이션하는 훌륭한 도구입니다.
테스트를 위해 다음 명령어를 실행하세요:
npx cap open android
npm run build
npx cap sync
USB 디버깅이 활성화되어 있고 장치 연결을 확인하세요: adb devices. 테스트 매트릭스를 만들기 위해 주요 안드로이드 버전을 포함하세요:
| 안드로이드 버전 | 테스트 우선순위 | 중요한 영역 |
|---|---|---|
| 안드로이드 14 | 높음 | API의 최신 안정성 |
| 안드로이드 13 | 높음 | 기본 기능 |
| 안드로이드 12 | 미디엄 | 뒤로 호환성 |
| 안드로이드 11 | 낮음 | 레거시 지원 |
일반적인 플러그인 문제를 해결하는 방법
메모리 누수
Android Studio에서 메모리 프로파일러를 사용하여 메모리 누수를 식별하고 해결하세요. 주의할 점은:
- 등록되지 않은 브로드캐스트 수신자
- 닫지 않은 데이터베이스 연결
- 액티비티 또는 컨텍스트에 대한 강한 참조
플러그인 등록 문제
플러그인이 등록되지 않을 경우 다음 사항을 확인하세요.
- 플러그인 등록
MainActivity.java - 패키지 이름 일관성
- Gradle 의존성 설정
성능 문제
CPU Profiler 를 사용하여 성능 문제를 해결하세요. 성능 최적화에 대한 일반적인 방법은 다음과 같습니다.
- 플러그인 메소드를 가볍게 유지하세요.
- 중요한 작업은 백그라운드 스레드에서 실행하세요.
- 에러 처리 메커니즘을 추가하세요.
실시간 테스트 및 업데이트 속도 향상
Capgo 도구 실시간 테스트 및 업데이트 를 간소화 할 수 있습니다. 이 예제를 사용하여 워크플로우를 개선하세요:
-
오류 추적 초기화:
CapacitorUpdater.notifyAppReady(); -
업데이트 실패 처리:
CapacitorUpdater.addListener('updateFailed', (info) => { console.error('Update failed:', info); }); -
빠른 수정을 위한 롤백 사용:
try { await CapacitorUpdater.rollback(); } catch (err) { console.error('Rollback failed:', err); } -
스테이지드 롤아웃 설정:
await CapacitorUpdater.setChannel({ channel: 'beta', preventAutoUpdateOnFail: true });
플러그인 개발 표준
Code 구조 지침
Java 에서 플러그인을 구조화하는 기본 템플릿입니다:
public class MyPlugin extends Plugin {
private static final String TAG = "MyPlugin";
private final Context context;
public MyPlugin(Context context) {
this.context = context;
}
@PluginMethod
public void methodName(PluginCall call) {
try {
// Method implementation
call.resolve();
} catch (Exception e) {
call.reject("Error message", e);
}
}
}
구조적 관행을 따르는 중요한 키:
- 명확하고 잘 정의된 메소드 서명 사용하여 적절한 접근 제어자 사용.
- 변수 및 메소드 이름을 사용하여 그 목적을 설명하십시오.
- 공개 API 는 완전히 문서화되어야 합니다.
- 사업 로직과 UI 관련 컴포넌트를 분리하세요.
성능 팁
구성良好的 플러그인은 유지 보수성뿐만 아니라 성능도 향상시킵니다. 다음은 최적화 전략입니다.
| 주목할 점 | 권장하는 방법 |
|---|---|
| 스레드 관리 | 중요한 작업을 백그라운드 스레드에 오픈하세요. |
| 메모리 사용 | 리소스를 제대로 정리하여 누수 방지를 위해 |
| 네트워크 호출 | 응답을 캐시하고 재시도 메커니즘을 구현하세요. |
| 리소스 로딩 | 대용량 리소스에 대해 느긋한 로딩을 사용하세요. |
대량 리소스를 요구하는 작업에 대해 고려해 보세요:
@PluginMethod
public void heavyOperation(PluginCall call) {
taskQueue.execute(() -> {
try {
// Perform intensive operation
JSObject result = new JSObject();
call.resolve(result);
} catch (Exception e) {
call.reject("Operation failed", e);
}
});
}
에러 관리
에러 관리를 위한 강력한 에러 처리를 통해 플러그인은 안정적이고 신뢰할 수 있는 상태를 유지합니다:
@PluginMethod
public void criticalOperation(PluginCall call) {
try {
// Operation code
if (!operationSuccessful) {
throw new PluginException("Operation failed");
}
call.resolve();
} catch (Exception e) {
Logger.error(TAG, "Critical operation failed", e);
handleRollback();
call.reject("Operation failed", e);
}
}
에러 관리를 위한 베스트 프랙티스:
- 에러를 올바른 심각도 수준으로 로깅하세요.
- 에러 메시지에 의미 있는 컨텍스트를 포함하여 디버깅을 도와주세요.
- 에러 빈도수를 모니터링하고 반복적인 문제를 식별하세요.
- 에러를 자동으로 보고하여 문제를 일찍 발견하세요.
중요한 작업에 대해 롤백 메커니즘을 사용하는 것이 필수적입니다. 예를 들어:
private void handleRollback() {
try {
bridge.triggerJSEvent("rollbackRequired", "{}");
} catch (Exception e) {
Logger.error(TAG, "Rollback failed", e);
}
}
Capgo의 에러 추적 및 롤백 도구를 사용하여 빠르게 실패로부터 복구할 수 있습니다. [1].
Capgo 통합 가이드

실시간 테스트 결과에 따라 Capgo를 통합하면 업데이트의 배포를 단순화할 수 있습니다.
Capgo 기능 개요
Capgo는 실시간 업데이트를 관리하는 필수 도구를 제공하여 smooth한 성능을 보장합니다. 또한 앱 스토어 승인 없이 Capacitor Android 플러그인을 즉시 업데이트할 수 있습니다. Capgo는 다음과 같은 기능을 제공합니다:
| 기능 | 설명 |
|---|---|
| 끝-to-끝 암호화 | 컨텍스트: Capgo 솔루션 마케팅 페이지. 역할: 섹션 또는 페이지 제목. 보는 곳: 페이지 솔루션/금융.astro. 메시지 키 `solutions_fintech_cert3_title` (Solutions Fintech Cert3 Title). | 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 섹션 또는 페이지 제목. 보는 곳: 페이지 솔루션/금융.astro. 메시지 키 `solutions_fintech_sol3_title` (Solutions Fintech Sol3 Title). | 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 보는 곳: 페이지 솔루션/금융.astro. 메시지 키 `solutions_fintech_badge_e2e` (Solutions Fintech Badge E2e). | 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 보는 곳: 페이지 솔루션/건강.astro. 메시지 키 `solutions_healthcare_badge_e2e` (Solutions Healthcare Badge E2e). |
| 업데이트의 안전한 전달을 보장합니다. | 부분 업데이트 |
| 수정된 컴포넌트만 다운로드합니다. | __CAPGO_KEEP_0__ |
| 실시간 분석 | 업데이트 성능 모니터링 |
| 일회성 롤백 | 문제 발생 시 빠른 복구 |
| CI/CD 통합 | Compatible with GitHub Actions, GitLab CI, and Jenkins |
Capgo 설정
Capgo를 사용하기 위해 다음 명령어를 실행하세요.
npx @capgo/cli init
빌드 프로세스에 플러그인을 추가하세요. Capgo는 배경에서 자동으로 업데이트를 처리하며 내장 분석 및 롤백 기능을 사용합니다.
채널 시스템을 사용하여 프로덕션, 베타, 개발 환경의 롤아웃을 관리할 수 있습니다. 부분 업데이트 기능을 사용하여 대역폭 사용량을 줄이고 필요한 변경 사항만 전달할 수 있습니다.
Capgo는 Capacitor 버전 6과 7을 지원합니다.
우리는 Capgo를 통해 지속적으로 사용자에게 제공하는 것을 mission-critical로 간주합니다. [1]
개요
Capacitor Native Bridge는 강력한 네이티브 기능과 개발이 단순화된 Android 플러그인을 강화합니다. 이 접근 방식은 750개의 프로덕션 앱에서 23.5백만 업데이트를 포함하여 강력한 결과를 제공합니다. [1].
이 플랫폼의 성능 지표는 업데이트 배포의 전 세계 성공률 82%, 전 세계 CDN을 통해 5MB의 패키지를 다운로드하는 평균 시간 114ms, 그리고 24시간 내에 업데이트를 받는 활성 사용자의 95%를 보여줍니다. [1].
이러한 결과를 달성하기 위해 다음의 중요한 관행을 따르는 것이 중요합니다:
| 최선의 관행 | 혜택 |
|---|---|
| 실시간 업데이트 구현 | 수정 및 기능을 빠르게 배포 |
| 채널 시스템 사용 | 업데이트를 선택적으로 배포하고 베타 테스트 |
| 분석 모니터링 | 성능과 사용자 수용성을 평가하십시오. |
| 자동 롤백을 활성화하십시오. | 가능한 문제에서 빠르게 복구하십시오. |
개발자들은 이러한 도구를 높이 평가했습니다. 베시 코퍼(Bessie Cooper)는 다음과 같이 말했습니다. “Capgo은 개발자가 생산성을 높이고자 하는 개발자들에게 필수적인 도구입니다. 버그 수정에 대한 리뷰를 피하는 것은 금이다.” [1]
오류 추적, 성능 모니터링, 종단 간 암호화, 그리고 무결점 CI/CD 통합과 같은 기능은 높은 업데이트 성공률과 smooth한 성능을 제공합니다. 이 도구들은 함께 native 기능과 빠른, 신뢰할 수 있는 업데이트와 함께 platform의 강점을 보여줍니다.
Capacitor Native Bridge: Android Plugin Basics에서 계속 진행하십시오.
__CAPGO_KEEP_0__ Native Bridge: Android Plugin Basics를 사용하고 있다면 Capacitor Plugin Directory와 연결하십시오. __CAPGO_KEEP_0__ Plugin Directory에서 제품 워크플로우를 연결하십시오. Capgo Plugin Directory Capgo Capacitor 플러그인들에 의해 Capgo Capacitor 플러그인들에 의해 Capgo의 구현 세부 사항을 위해 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트의 구현 세부 사항을 위해 아이오닉 엔터프라이즈 플러그인 대체 아이오닉 엔터프라이즈 플러그인 대체의 제품 워크플로우를 위해 Capgo 네이티브 빌드 Capgo 네이티브 빌드의 제품 워크플로우를 위해