전체 (154) 썸네일형 리스트형 JNI 실습 (C++에서 자바 클래스에 메서드 구현) 이번 포스트 내용은 JNI Tutorial의 Chapter2 예제를 따라하면서 제 나름대로의 설명이 약간 추가된 것입니다. 메서드 등록 | JNI Tutorialvoid f5(int, String [], char)sungcheol-kim.gitbook.io그리고 원활한 컴파일을 위해 이전 포스트를 먼저 테스트하는 것을 추천드립니다.이번 포스트에선 C++에서 특정 자바 클래스에 메서드를 추가해 보겠습니다. JNI 코드에서 자바 클래스 파일을 찾아 해당 클래스에 있는 네이티브 메서드 선언에 메서드 정의를 바인딩할 수 있습니다. 메서드를 정의를 바인딩하려면 JNI_OnLoad 함수에서 JavaVM을 사용해야 합니다. 다른 위치에서도 바인딩을 할 수 있지만, 모든 JNI 라이브러리를 로드할 때 JNI_Onloa.. JNI 실습 (Java에서 C++ 함수 호출) 이번 포스트 내용은 JNI Tutorial의 HelloJNI 예제를 따라하면서 제 나름대로의 설명이 약간 추가된 것입니다. Hello JNI | JNI Tutorial맥에서 Hello JNI!를 출력하는 Java 응용프로그램을 개발해 보자. 단 이 응용프로그램은 문자열을 출력하는 부분을 C++ 로 작성할 것이다. 네이티브 라이브러를 사용하는 Java 클래스 작성하기 java 코sungcheol-kim.gitbook.ioJava Native Interface 자바에서 저수준 코드(C, C++)와 상호작용(사용하고 사용당하고)할 수 있게 해주는 자바 인터페이스입니다. 자바의 관리 오버헤드를 줄이고 성능을 높일 수 있고, 하드웨어를 제어할 수 있지만, 코드가 복잡해지고 관리가 어렵습니다. 리액트 네이티브에선 .. 리액트 네이티브가 느린 이유 리액트 네이티브는 리액트 트리를 네이티브 뷰 트리로 만들어 주는 것뿐인데, 리액트 네이티브로 앱을 개발하다 보면, 버벅거리거나 응답이 느린 현상이 자주 발생했습니다. 문제의 원인을 파악하기 위해, 지금까지 경험상 자주 사용하던 빌트인 컴포넌트와 외부 라이브러리의 코드 내부를 살펴보면서 중간중간 해결방법에 대해 정리했습니다. 코드까지 입력하면 포스트 내용이 너무 길어지기 때문에, 분석에 사용한 코드는 대부분 링크로 남겨 두었습니다.목차1. 스크롤 버벅거림 1-1. VirtualizedList 1-1-1. memo 1-1-2. maxToRenderPerBatch 1-1-3. updateCellsBatchingPeriod 1-1-4. windowWize,.. 리액트 네이티브 터치 이벤트 흐름 이전 포스트 "리액트 네이티브에서 JS와 Java가 통신하는 방법"의 내용을 기반으로 안드로이드에서 발생한 터치 이벤트가 JS로 전송되서 처리되는 과정 을 정리했습니다.목차Java에서 JS로 이벤트 전송1-1. ReactRootView1-2. JSTouchDispatcher 1-2-1. Leaf View 찾기 1-2-2. 리액트 네이티브가 생성한 View 찾기 1-2-3. UIManagerModule로 부터 EventDispatcher 얻어오기 1-2-4. EventDispatcher 1-2-5. Proxy 객체JS에서 Java 이벤트 수신 모듈 등록2-1. RCTEventEmitter2-2. ReactNativeRenderer2-3. 플러그인 2-3-1. 플러그인 등록 2-3-2. Re.. 리액트 네이티브에서 JS와 Java가 통신하는 방법 먼저 전체적인 흐름을 그림으로 표현해 봤습니다.파란색: JS → Java빨간색: Java → JS목차JS → Java1-1. Java에서 C++로 Module Registry 전달1-2. C++에서 JS에 네이티브 호출 함수 등록1-3. JS에서 C++의 Module Registry까지 요청Java → JS2-1. C++에서 JS 함수 가져오기2-2. C++에서 Java와 JS 함수 연결2-3. Java에서 JS까지느낀점리액트 네이티브는 인터페이스(C++), 자바스크립트 엔진, JVM 3개 환경이 유기적으로 상호작용하면서 동작합니다.JVM → C++JNI를 사용하여 C++에서 JVM 클래스의 메서드를 구현하고, JVM 객체에선 C++에 의해 구현된 메서드를 호출하여 초기화 또는 필요한 기능을 수행합니다... 리액트 네이티브 앱을 재시작하지 않고 일부분만 업데이트해 보자 (2. 코드 설명) 이전 편에서 소개한 dynamic-module-federation-example 프로젝트는 네비게이션을 제외하면 직접 제작한 react-native-dynamic-module-federation 라이브러리를 사용하는 코드밖에 없습니다. dynamic-module-federation-example/modules/react-native-dynamic-module-federation at main · JoonDong2/dynamic-module-federation-Contribute to JoonDong2/dynamic-module-federation-example development by creating an account on GitHub.github.com 따라서 react-native-dynamic-.. 리액트 네이티브 앱을 재시작하지 않고 일부분만 업데이트해 보자 (1. 프로젝트 소개) 목차요약최종 결과물소스코드 및 재현 방법테스트 환경문제 인식5-1. 업데이트=재시작5-2. 재시작이 필요한 업데이트의 문제점 5-2-1. 근본적인 문제 5-2-2. 기존 상태 소실해결 방법6-1. Module Federation 도입6-2. Module Federation 변조프로젝트 구조사용예마치며1. 요약리액트 네이티브 앱을 재실행없이, 앱 사용중(스크린 스택 등 기존 상태 유지)에 부분 업데이트할 수 있는 방법을 소개합니다. 마치 헐크 버스터가 "싸움 도중에" 신체의 일부를 교체하는 것 처럼요. 2. 최종 결과물host 앱과 number 앱을 독립적으로 실행number 앱을 로컬에서 변경하고 확인number 앱을 번들링하여 배포 서버에 업로드host 앱에서 업데이트 버튼을 클릭하면, 재시작 없이.. 리액트 네이티용 Module Federation 원래 리액트 네이티브는 metro라는 자체 번들러를 사용했기 때문에, 개발자가 개입할 수 있는 방법이 제한적이었습니다. 그런데 callstack 팀에서 리액트 네이티브를 위한 webpack인 repack과 리액트 네이티브를 위해 약간 수정된 ModuleFederationPlugin까지 개발해 주었습니다.목차1. 오리지널 Module Federation과 차이 1-1. Federated.importModule 1-2. Resolver 1-3. Host - Host 역할 - Host 제약 1-4 eager2. 정리3. 마치며1. 오리지널 Module Federation과 차이1-1. Federated.importModule오리지널(브라우저용) Module Federation에선 외부 모.. 이전 1 2 3 4 5 ··· 20 다음