자마린(Xamarin)

[자마린학원/자마린교육/자마린영상]자마린독학]2. xamarin.android 2.5 xamarin.android(with .…

2.5.4 Xamarin.Android Using Native Libraries(자마린에서 안드로이드 네이티브 라이브러리(dynamic shared library, .so) 사용하기)

n  Xamarin.Android는 표준 PInvoke 메커니즘을 통해 기본 라이브러리의 사용을 지원한다. 또한 OS의 일부가 아닌 추가 원시 라이브러리를 .apk로 묶을 수도 있다.

n  Xamarin.Android 응용 프로그램과 함께 네이티브 라이브러리를 배포하려면 라이브러리 바이너리를 프로젝트에 추가하고 빌드작업(Build Action) 속성을 AndroidNativeLibrary로 설정한다.

n  Xamarin.Android 라이브러리 프로젝트로 기본 라이브러리를 배포하려면 라이브러리 바이너리를 프로젝트에 추가하고 빌드작업(Build Action) 속성을 EmbeddedNativeLibrary로 설정한다.

n  Android는 여러 Application Binary Interface (ABI)를 지원하므로 Xamarin.Android는 기본 라이브러리가 구축 된 ABI를 알아야합니다. 이 작업을 수행하는 데는 두 가지 방법이 있습니다.

n  Android는 여러 Application Binary Interface (ABI)를 지원하므로 Xamarin.Android는 기본 라이브러리가 구축 된 ABI를 알아야 한다. 이 작업을 수행하는 데는 두 가지 방법이 있다.

l  Path "sniffing"

l  Path "sniffing"을 사용하면 기본 라이브러리의 상위 디렉토리 이름을 사용하여 라이브러리가 대상으로하는 ABI를 지정할 수 있다. 따라서 lib/armeabi/libfoo.so를 프로젝트에 추가하면 ABI armeabi "스니핑" 됩니다.

l  Using a //AndroidNativeLibrary/Abi element within the project file

 

ABI에서 사용할 프로젝트 파일을 명시 적으로 편집 할 수 있습니다.

 

<ItemGroup>

    <AndroidNativeLibrary Include = "path/to/libfoo.so">

        <Abi>armeabi</ Abi>

    </AndroidNativeLibrary>

</ ItemGroup>

n  Visual Studio 2015 이상을 사용하는 경우 위에 설명한대로 프로젝트 파일을 수정할 필요가 없다. C++ Dynamic Shared Library (Android) 프로젝트에 프로젝트 참조를 추가하기 만하면 Xamarin.Android 솔루션에서 C++를 빌드하고 디버깅 할 수 있다.

n  Visual Studio 2015 이상에서는 Android, iOS Windows 플랫폼을 대상으로 할 수있는 C/C ++ 프로젝트 개발을 지원한다. 설치 중에 Xamarin Visual C++ for Cross-Platform Mobile Development 를 선택하면 된다.

n  Cqw

n  R

n  W

n  r

 

컴파일된 자바 코드

Comments