SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
www.topcredu.co.kr 자마린 실습 자료
작성 : 이 종 철
2.5.3 Xamarin.Android .AAR Binding
안드로이드 .AAR File을 자마린 바인딩 자바 라이브러리로 구현 후
Xamarin.Android 프로젝트에서 호출하기
 안드로이드 아카이브(.AAR) 파일은 안드로이드쪽의 라이브러리 형식의 파일이며 아래 내용을
포함하는 ZIP 아카이브 형식의 파일이다.
 컴파일된 자바 코드
 리소스 ID
 자원
 메타 데이터(Activity 선언, 사용권한등)
 자마린쪽의 바인딩 프로젝트에는 하나의 .AAR 파일 만 포함될 수 있으므로 다른 .AAR에 대
한 .AAR 종속성이있는 경우, 바인딩 프로젝트에 포함 된 다음 참조되어야 한다.
1. 안드로이드 스튜디오에서 .AAR 파일 생성
 “HelloAAR”이라는 이름으로 새프로젝트 생성
 다음 화면에서 “Phone And Tablet” 선택
 “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를 삭제한다.
 우상단 “Gradle” 버튼을 클릭하여 assembleRelease 태스크를 더블 클릭하여 실행하자.
 프로젝트 >> app >> build >> outputs >> aar >> app-release.aar 파일이 생성됨을 확인.
2. 자마린쪽 바인딩 라이브러리 만들기
 Visual Studio에서 Android >> 바인딩 라이브러리(Android)를 선택하여 “SayHelloLib” 이라는
이름의 바인딩 라이브러리 프로젝트를 생성하자.
 생성된 프로젝트에서 “Jars” 폴더에서 우측마우스 클릭 >> 추가 >> 기존항목 추가 선택 후
이전에 만든 .AAR 파일을 추가한다.
 추가된 app-release.aar 파일을 선택 후 하단의 속성창의 빌드 작업(Build Action) 속성에서
“LibraryProjectZip”을 선택. (.AAR파일용)
 만약 .AAR 파일이 안드로이드 API를 사용하는 경우 적합한 Android API 레벨을 선택해야 하
며 본 예제에서는 Android API를 사용하지 않았으므로 마음대로 최신 API 레벨을 사용할 수
있다.
 프로젝트를 빌드하면 DLL이 생성된다. (이 DLL을 Xamarin.Android 프로젝트에서 참조 추가해
SayHelloImple의 sayHello() 메소드를 호출한다.)
3. Xamarin.Android 응용프로젝트를 생성 후 DLL에 포함된 .AAR파일의 sayHello() 메소드를 호
출하자.
 “UseSayHelloLib” 이라는 이름의 Xamarin Android, 비어있는 앱(Android) 응용 프로젝트를
생성하자.
 참조 >> 참조추가에서 2번 단계에서 작성한 “SayHelloLib.dll” 파일을 참조추가 하자.
(SayHelloLib >> bin >> debug)
 Resources >> layout >> Main.axml 파일을 열어 간단히 UI를 구성하자. Button, Text(Large)
두 컨트롤을 드래그 해서 올리고 이름은 기본값인 button1, textView1로 그대로 두자.
 MainActivity에서 Button의 클릭 이벤트를 작성하고 sayHello() 메소드를 호출해 보자.
 2번 단계의 바인딩 라이브러리인 DLL이 만들어 질 때 원래 .AAR 파일에서 만든 자바 인터페
이스 이름의 앞에는 “I”가 붙어 iSayHello로 변하고, 자바의 패키지명의 첫글자가, sayHello()
메소드명도 SayHello()로 첫글자가 대문자로 래핑된다.
 실행화면

Contenu connexe

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

C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌
C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌
C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)YoungSu Son
 
Youtube를활용한app만들기
Youtube를활용한app만들기Youtube를활용한app만들기
Youtube를활용한app만들기DaeHee Jang
 
Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)Tae Young Lee
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1jangpd007
 
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...Amazon Web Services Korea
 

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

2. xamarin.android 2.5 xamarin.android(with .jar, .aar, native android librar...
2. xamarin.android 2.5 xamarin.android(with .jar, .aar, native android librar...2. xamarin.android 2.5 xamarin.android(with .jar, .aar, native android librar...
2. xamarin.android 2.5 xamarin.android(with .jar, .aar, native android librar...
 
C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌
C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌
C#,자마린실습(Hello 안드로이드,이뮬레이터와 휴대폰에서 직접실행)_닷넷기초/C#기초/자마린,Xamarin 앱개발강좌
 
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
 
Youtube를활용한app만들기
Youtube를활용한app만들기Youtube를활용한app만들기
Youtube를활용한app만들기
 
Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)
 
2. xamarin.android 2.2 hello xamarin android 구조
2. xamarin.android 2.2 hello xamarin android 구조2. xamarin.android 2.2 hello xamarin android 구조
2. xamarin.android 2.2 hello xamarin android 구조
 
Final report201101
Final report201101Final report201101
Final report201101
 
AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1
 
Introducing Fragments
Introducing FragmentsIntroducing Fragments
Introducing Fragments
 
2. xamarin.android 2.1 hello android(xamarin.android application) example part.1
2. xamarin.android 2.1 hello android(xamarin.android application) example part.12. xamarin.android 2.1 hello android(xamarin.android application) example part.1
2. xamarin.android 2.1 hello android(xamarin.android application) example part.1
 
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
 

Plus de 탑크리에듀(구로디지털단지역3번출구 2분거리)

[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Plus de 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
 

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

  • 1. www.topcredu.co.kr 자마린 실습 자료 작성 : 이 종 철 2.5.3 Xamarin.Android .AAR Binding 안드로이드 .AAR File을 자마린 바인딩 자바 라이브러리로 구현 후 Xamarin.Android 프로젝트에서 호출하기
  • 2.  안드로이드 아카이브(.AAR) 파일은 안드로이드쪽의 라이브러리 형식의 파일이며 아래 내용을 포함하는 ZIP 아카이브 형식의 파일이다.  컴파일된 자바 코드  리소스 ID  자원  메타 데이터(Activity 선언, 사용권한등)  자마린쪽의 바인딩 프로젝트에는 하나의 .AAR 파일 만 포함될 수 있으므로 다른 .AAR에 대 한 .AAR 종속성이있는 경우, 바인딩 프로젝트에 포함 된 다음 참조되어야 한다. 1. 안드로이드 스튜디오에서 .AAR 파일 생성  “HelloAAR”이라는 이름으로 새프로젝트 생성
  • 3.  다음 화면에서 “Phone And Tablet” 선택  “Add No Activity” 선택
  • 5.  AndroidManifest.xml에서 android:theme="@style/AppTheme"를 삭제, values >> styles.xml을 삭제한다. (AppTheme를 참조하므로 Xamarin.Android App에서 AppTheme를 찾 을 수 없다는 오류가 발생한다.)  build.gradle(Module:app)에서 플러그인을 com.android.library로 변경, defaultConfig의 applicationId를 삭제한다.
  • 6.  우상단 “Gradle” 버튼을 클릭하여 assembleRelease 태스크를 더블 클릭하여 실행하자.
  • 7.  프로젝트 >> app >> build >> outputs >> aar >> app-release.aar 파일이 생성됨을 확인. 2. 자마린쪽 바인딩 라이브러리 만들기  Visual Studio에서 Android >> 바인딩 라이브러리(Android)를 선택하여 “SayHelloLib” 이라는 이름의 바인딩 라이브러리 프로젝트를 생성하자.
  • 8.  생성된 프로젝트에서 “Jars” 폴더에서 우측마우스 클릭 >> 추가 >> 기존항목 추가 선택 후 이전에 만든 .AAR 파일을 추가한다.
  • 9.  추가된 app-release.aar 파일을 선택 후 하단의 속성창의 빌드 작업(Build Action) 속성에서 “LibraryProjectZip”을 선택. (.AAR파일용)  만약 .AAR 파일이 안드로이드 API를 사용하는 경우 적합한 Android API 레벨을 선택해야 하
  • 10. 며 본 예제에서는 Android API를 사용하지 않았으므로 마음대로 최신 API 레벨을 사용할 수 있다.  프로젝트를 빌드하면 DLL이 생성된다. (이 DLL을 Xamarin.Android 프로젝트에서 참조 추가해 SayHelloImple의 sayHello() 메소드를 호출한다.) 3. Xamarin.Android 응용프로젝트를 생성 후 DLL에 포함된 .AAR파일의 sayHello() 메소드를 호 출하자.  “UseSayHelloLib” 이라는 이름의 Xamarin Android, 비어있는 앱(Android) 응용 프로젝트를 생성하자.
  • 11.  참조 >> 참조추가에서 2번 단계에서 작성한 “SayHelloLib.dll” 파일을 참조추가 하자. (SayHelloLib >> bin >> debug)
  • 12.  Resources >> layout >> Main.axml 파일을 열어 간단히 UI를 구성하자. Button, Text(Large) 두 컨트롤을 드래그 해서 올리고 이름은 기본값인 button1, textView1로 그대로 두자.
  • 13.  MainActivity에서 Button의 클릭 이벤트를 작성하고 sayHello() 메소드를 호출해 보자.  2번 단계의 바인딩 라이브러리인 DLL이 만들어 질 때 원래 .AAR 파일에서 만든 자바 인터페 이스 이름의 앞에는 “I”가 붙어 iSayHello로 변하고, 자바의 패키지명의 첫글자가, sayHello() 메소드명도 SayHello()로 첫글자가 대문자로 래핑된다.  실행화면