Category Archives: Android

Int 데이터 값 주고 받기

앞으로 몇 개의 튜토리얼을 통해서 데이터를 자바 레이어에서 네이티브 레이어로 전달하고 어떤 연산을 거친 후 되돌려 받는 예제를 작성할 것이다. 우선 Int 형을 주고 받는 예제를 작성해 보자.

메서드 등록

네이티브 라이브러리를 만들기 위해서 항상 javah로 자바의 클래스 파일을 사용해 헤더 파일을 뽑아 내야 하는 것은 아니다. 네이티브 라이브러에서 자바 클래스를 조사하여 네이티브 라이브러리를 등록할 수 있다. 이 방법을 사용하면 지저분한 패키지명+함수명을 담은 헤더 파일과 함수 이름이 필요없게 된다. 코드를 좀 더 깔끔하게 유지할 수 있다. 더 편하게 읽기 : http://skyfe79.gitbooks.io/jni-tutorial/content/chapter2.html 메서드를 등록하려면 JNI_OnLoad 함수에서 JavaVM을… Read More »

HelloJNI

맥에서 Hello JNI!를 출력하는 자바 응용프로그램을 개발해 보자. 단 이 응용프로그램은 문자열을 출력하는 부분을 C++ 로 작성할 것이다. 네이티브 라이브러를 사용하는 자바 클래스 작성하기 더 편하게 읽기 : http://skyfe79.gitbooks.io/jni-tutorial/content/chapter1.html

JNI 튜토리얼

안드로이드 NDK 프로그래밍을 하기 전에 Java와 C/C++을 잇는 JNI에 먼저 익숙해 지는 것이 먼저일 것이다. 틈나는 대로 예제 중심의 JNI 튜토리얼을 만들어 봐야 겠다. 생각나는 대로 적기에 올바른 순서는 없다. 개발환경은 MacOSX 이다.

From Left To The Right

안드로이드 프로젝트를 진행하면서 항상 고민했던 점은 Java가 안드로이드에 어울리는 언어인가? 였다. iOS를 개발하면서 즐겨 사용했던 “카테고리”, “null 객체에 메시지를 보낼 수 있음으로 해서 피할 수 있는  Null Pointer Exception(NPE)” 등이 그리웠기 때문이다. 또한 애플이 Swift를 발표하는 것을 보며 안드로이드에서도 좀 더 유연하고 간결한 언어가 있었으면 좋겠다라는 바램이 있었다. 처음에 살펴본 것은 Xamarin 이었지만 너무 비싼… Read More »

AnroidStudio 에서 Kotlin 으로 안드로이드앱 개발하기

Kotlin이 M11이 되면서 안드로이드 개발이 수월해 졌다. M11부터 여러개의 생성자를 만들 수 있어 커스텀뷰를 만드는데 아무런 불편함이 없다. 너무나 편리한 Kotlin. AndroidStudio에서 사용하려면 어떻게 해야할까? Kotlin의 개발사인 IntelliJ의 IDE 기반이라서 너무나도 쉽게 Kotlin으로 안드로이드 개발을 시작할 수 있다. 1. AndroidStduio를 실행한다. 2. Cofigure -> Plugins 를 선택한다. 3. Kotlin Plugin을 설치한다. 4. Blank Activity를 갖는… Read More »

I love Kotlin!

안드로이드 개발을 위해서 Kotlin 을 적극 사용하기로 했다. Scaloid를 이용해서 scala 기반으로 개발할 수 있겠으나 scala의 라이브러리 크기가 커서 일단 보류하였다. Kotlin을 선택한 이유는 아래와 같다. Relatively fast learning curve: compared to Scala for instance, we are moving in a much simpler scope. Kotlin is much more limited, but it´s easier to start if you´ve… Read More »

Silver! 모바일 앱 개발은 Swift로 대동단결!

RemObjects 사에서 Silver 라는 것을 내 놓았다. Xamarin 과 같은 방식으로 크로프플랫폼 앱 개발 도구 Silver를 내 놓았다. Xamarin 과 다른 점은 Apple의 Swift로 코드를 작성해서 iOS, Android, Windows Mobile App 등을 작성할 수 있다는 점이다. Silver용 전용 IDE도 제공한다. http://elementscompiler.com/elements/silver/ 에서 베타 버전 Silver를 받아 앱을 작성해 볼 수 있다. https://medium.com/@rom1_ubidreams/a-first-look-at-remobjects-silver-how-to-write-a-crossplatform-ios-android-app-in-swift-56fc358ebc37 에서 swift 로 iOS와 Android용… Read More »

Xamarin for the Cross-Platform Mobile Development

Android, iOS 앱을 동시에 개발 할 수 있는 방법은 없을까? 고민하던 차에 Xamarin 3.0 이 나온지 얼마 안되었길래 살펴보았다. 주말 내내 문서를 읽어보며 맥에서 Xamarin Studio 를 가지고 놀아 보았는데 정말 만족스럽다. C# 언어를 바탕으로 펼쳐지는 멋진 권법을 배우는 듯한 느낌이었다. PCL – Portable Class Library Xamarin.Forms ( 아직 얼마 되지 않았지만 앞으로 발전 가능성이… Read More »

이벤트 기반 프로그래밍

이벤트 기반 프로그래밍은 프로그래밍 패러다임 중 하나로 프로그램의 흐름이 특정 이벤트에 따라 결정되는 것을 말한다.

위 두 코드 중 아래의 코드가 이벤트 기반 프로그래밍이다. 첫번째것은 수행할 작업을 배치해 놓고 배치 순서대로 실행하고 프로그램을 종료한다. 아래의 코드는 무한 루프를 돌면서 사용자의 키입력을 기다리고 키입력에 따라 특정 작업을 수행한다. 두 코드의 가장 차이점은 무한 루프가… Read More »

Android Studio AAR 파일 만들기 (3/3)

이전 글에서 앱모듈을 수정해서 aar 라이브러리를 만들어 보았는데 라이브러리 작성 후 액티비티 등에 올려 테스트할 방법이 마땅치 않았다. 좀 더 알아본 결과 안드로이드 스튜디오에서 서브 모듈을 추가하는 방식으로 aar 라이브러리와 테스트 앱을 동시에 개발할 수 있었다. 우선 라이브러리 개발을 위해 프로젝트를 만든다. 예를 들어 SayLib 라이브러리를 만든다고 한다면 테스트 앱은 kr.pe.burt.saylib 의 app 모듈로 만들고… Read More »

안드로이드 프래그먼트

안드로이드에서 프래그먼트를 이해하는 일은 매우 중요하다. 동적 UI  구성 및 네비게이션을 위해 없어서는 안될 존재이기 때문이다. ‘이것이 안드로이드이다’의 저자가 만든 카페에 가입하면 프래그먼트에 대한 자세한 글을 볼 수 있다. 카페에 가입하면 무료로 볼 수 있기 때문에 꼭 보기를 권장한다. 아래는 프래그먼트의 생명 주기와 맛보기로 프래그먼트를 설명하는 글타래 중 첫번째이다.

Android Studio 코드 네비게이션

코딩을 할 때 코드 네비게이션이 쉬워야 한다. 코드 네비게이션을 위해서 마우스를 사용해야 한다면 그것처럼 작업의 흐름을 끊는 것이 따로 없다. 이 글에서는 Android Studio 의 코드 네비게이션을 정리해 보려고 한다.

65K 메서드 제한 해결하기

안드로이드 앱을 작성하다 보면 여러 라이브러리를 사용하기 때문에 메서드 개수가 65K를 넘을 경우가 많습니다. 이 때는 multi dex 라는 기법으로 앱을 패키징하면 문제를 해결할 수 있습니다. 아래처럼 gradle 을 작성해 주시면 됩니다.

Javah를 AndroidStudio에서 사용하기

NDK 개발을 하면서 귀찮은 점은 classes 파일에서 JNI 형식에 맞는  C 언어 헤더파일을 만드는 일이다. 이 것을 자동으로 해주는 것이 javah 인데, 이클립스에서는 쉽게 연동이 가능해 쉽게 사용할 수 있다. AndroidStudio 에서도 이클립스처럼 쉽게 할 수 있는 방법이 있다. 바로 External Tools 로 등록해서 사용하는 것이다. 아래 그림처럼 Android Studio -> Preferences… 메뉴를 선택한다.