android ndk 예제

By in Non classé on 2 août 2019

다음은 여러 아키텍처의 지원을 대상으로 네이티브 프로그램(또는 JNI에서 사용하는 공유 라이브러리)을 빌드하는 예제입니다. 내가 만난 문제는 OpenCL 가속 네이티브 코드가있는 Android 응용 프로그램을 개발하는 동안이었습니다. (OpenCL을 모르는 사람들을 위해: OpenCL은 크로노스 그룹이 관리하는 이기종 컴퓨팅을 위한 개방형 사양입니다. 최신 데스크탑 CPU, GPU 및 최신 세대 모바일 GPU의 대부분은 OpenCL을 지원하므로 OpenCL을 사용하여 OpenCL의 성능을 활용할 수 있습니다. 알고리즘을 가속화하는 GPU의 병렬 아키텍처입니다.). OpenCL이 작동하는 방식은 SoC 칩 공급업체가 공유 라이브러리의 드라이버, 컴파일러를 포함한 OpenCL 소프트웨어 스택을 구현하는 것입니다. 여기서 문제는 다른 공급업체에서 제공하는 응용 프로그램 SoC 칩셋이 있는 다른 장치의 경우 일반적으로 /system/vendor/lib 또는 /system/와 같은 디렉터리에 있는 공유 라이브러리인 드라이버 라이브러리에서 OpenCL 지원을 사용할 수 있다는 것입니다. lib 또는 일부 다른 디렉토리를 참조하십시오. 따라서 모바일 장치(스마트폰 또는 태블릿)에서 사용되는 다른 칩셋의 경우 공유 라이브러리가 매우 다릅니다. OepnCL 프로그램을 빌드하는 문제는 응용 프로그램에서 호출한 OpenCL API 함수를 연결하는 동안 해결할 수 있도록 이러한 OpenCL 드라이버 라이브러리에 동적으로 연결해야 한다는 것입니다. 모든 기술이 쉽고 간단할 수 있지만, 이 모든 기술을 함께 결합하면 강력할 뿐만 아니라 효율적인 빌드 스크립트를 만들 수 있을 것이라고 확신합니다.

github에서 예제를 다운로드하고 그들에게 시도를 제공하십시오, 당신이 필요로하는 것은 안드로이드 NDK, 안드로이드 장치 (또는 Genymotion와 같은 가상 장치)입니다. 어떤 사람들은 Android.mk 포함되는 다른 트릭을 사용하며, 가장 먼저 중요한 것은 LOCAL_PATH 변수를 임시 변수에 백업하고 종료하기 전에 LOCAL_PATH를 복원하는 것입니다. 예를 들어: 가장 유용한 부분은 /cygdrive/d/개발/android-ndk-r10d/arm-linux-androideabi-4.8/미리 빌드/윈도우-x86_64/bin/arm-linux-androideabi-g++로 시작하는 라인입니다. 이것은 기본적으로 대상 출력을 빌드하는 데 정확히 사용되는 명령줄을 보여줍니다.

Comments are closed.