자마린(Xamarin)

자마린.안드로이드(Xamarin.Android) 안드로이드 AAR 파일을 자마린,안드로이드에서 바인딩 , Xamarin.And…

FSP 0 107 01.28 16:54

자마린.안드로이드(Xamarin.Android) 안드로이드 AAR 파일을 자마린,안드로이드에서 바인딩 , Xamarin.Android .AAR Binding,바인딩 자바라이브러리

Xamarin.Android .AAR Binding(안드로이드 .AAR File을 자마린 바인딩 자바 라이브러리로 구현 후 Xamarin.Android 프로젝트에서 호출하기)

n 안드로이드 아카이브(.AAR) 파일은 안드로이드쪽의 라이브러리 형식의 파일이며 아래 내용을 포함하는 ZIP 아카이브 형식의 파일이다.

l 컴파일된 자바 코드

l 리소스 ID

l 자원

l 메타 데이터(Activity 선언, 사용권한등)

n 자마린쪽의 바인딩 프로젝트에는 하나의 .AAR 파일 만 포함될 수 있으므로 다른 .AAR에 대한 .AAR 종속성이있는 경우, 바인딩 프로젝트에 포함 된 다음 참조되어야 한다.

1. 안드로이드 스튜디오에서 .AAR 파일 생성

n “HelloAAR”이라는 이름으로 새프로젝트 생성

n 다음 화면에서 “Phone And Tablet” 선택

n “Add No Activity” 선택

인터페이스(SayHello.java), 구현클래스(SayHelloImpl.java) 작성

AndroidManifest.xml에서 android:theme="@style/AppTheme"를 삭제, values >> styles.xml을 삭제한다. (AppTheme를 참조하므로 Xamarin.Android App에서 AppTheme를 찾을 수 없다는 오류가 발생한다.)

build.gradle(Module:app)에서 플러그인을 com.android.library로 변경, defaultConfig의 applicationId를 삭제한다.

n 우상단 “Gradle” 버튼을 클릭하여 assembleRelease 태스크를 더블 클릭하여 실행하자.

n 프로젝트 >> app >> build >> outputs >> aar >> app-release.aar 파일이 생성됨을 확인.

2. 자마린쪽 바인딩 라이브러리 만들기

n Visual Studio에서 Android >> 바인딩 라이브러리(Android)를 선택하여 “SayHelloLib” 이라는 이름의 바인딩 라이브러리 프로젝트를 생성하자.

n 생성된 프로젝트에서 “Jars” 폴더에서 우측마우스 클릭 >> 추가 >> 기존항목 추가 선택 후 이전에 만든 .AAR 파일을 추가한다.

portLists]>n 추가된 app-release.aar 파일을 선택 후 하단의 속성창의 빌드 작업(Build Action) 속성에서 “LibraryProjectZip”을 선택. (.AAR파일용)

n 만약 .AAR 파일이 안드로이드 API를 사용하는 경우 적합한 Android API 레벨을 선택해야 하며 본 예제에서는 Android API를 사용하지 않았으므로 마음대로 최신 API 레벨을 사용할 수 있다.

n 프로젝트를 빌드하면 DLL이 생성된다. (이 DLL을 Xamarin.Android 프로젝트에서 참조 추가해 SayHelloImple의 sayHello() 메소드를 호출한다.)

3. Xamarin.Android 응용프로젝트를 생성 후 DLL에 포함된 .AAR파일의 sayHello() 메소드를 호출하자.

n “UseSayHelloLib” 이라는 이름의 Xamarin Android, 비어있는 앱(Android) 응용 프로젝트를 생성하자.

n 참조 >> 참조추가에서 2번 단계에서 작성한 “SayHelloLib.dll” 파일을 참조추가 하자.

(SayHelloLib >> bin >> debug)

Resources >> layout >> activity_main 파일을 열어 간단히 UI를 구성하자. Button, Text(Large) 두 컨트롤을 드래그 해서 올리고 이름은 기본값인 button1, textView1로 그대로 두자.

MainActivity에서 Button의 클릭 이벤트를 작성하고 sayHello() 메소드를 호출해 보자.

n 2번 단계의 바인딩 라이브러리인 DLL이 만들어 질 때 원래 .AAR 파일에서 만든 자바 인터페이스 이름의 앞에는 “I”가 붙어 ISayHello로 변하고, 자바의 패키지명의 첫글자가, sayHello() 메소드명도 SayHello()로 첫글자가 대문자로 래핑된다.

n 실행화면

#안드로이드AAR, #자마린바인딩라이브러리, #AAR바인딩, #자마린AAR바인딩, #자마린, #자마린교육, #자마린강좌, #Xamarin, #Xamarin교육, #자마린강의, #XamarinForms

, , , , , , , , , ,

Comments