JNI 간단 소개
프로젝트에서 JNI를 써야 하는 일이 있어서 공부한 것을 정리 해 봅니다. ᅠJNI를 잘 다루는 것은 아니지만, 저처럼 처음 JNI을 접하는 사람이나, 간단한 정도로 사용을 원하는 분들이 보면 좋습니다. pdf 파일을 첨부하니 좋은 자료로 활용 하셨으면 좋겠네요~
2011.01.13
03_java.io.IOException: Unable to upload file: null
저는 이렇게 해결했습니다. 이클립스에서 Window -> Preferences -> Android -> DDMS -> "ADB connection time out (ms)"의 값을 늘려준다. apk 용량이 늘어나면 접속 시간을 늘려줘야 합니다.
2011.01.13
[04 NDK Basic] NDK Overview
소개 벌써 네번째 정리 입니다. 늦은 감이 있지만 NDK가 뭐인고? 라는 것을 정리 하지 않았군요. NDK를 이야기 하기 전에 JNI를 알고 계시나요? JNI는 C나 C++로 작성된 머신코드(Native machine code)를 Java 프로그램이 사용할 수 있도록 해주는 인터페이스(interface)입니다. 안드로이드 프로그래밍을 할때는 자바언어로 구현하죠.. 자, 그럼 답이 나왔네요. NDK는 안드로이드 응용 프로그램을 만들때 C/C++로 작성된 머신코드를 안드로이드 프로그램에서 사용할 수 있도록 해주는 도구입니다. 저는 개인적으로 자바와 C/C++쪽을 모두 잘 해야 한다고 생각 하기 때문에 NDK를 꼭 알고 싶었지요.. JNI를 기본적으로 잘 알고 있다면 NDK는 크게 어렵지 않은 것 같습니다. ..
2011.01.13
[03 NDK Basic]NDK처음 시작하기 - 복잡한 함수 만들어 보기
NDK처음 시작하기 - 복잡한 함수 만들어 보기 기존에 NDK로 HelloWorld는 찍을 수 있는 단계까지 오셔야 이해 할 수 있습니다. 지금 부터는 NDK쪽은 없을 것이며, JNI에 대해서 자세히 알아볼 것입니다. (NDK사용환경 구축하기 와NDK처음 시작하기를 참고 하세요) 네이티브코드에서 자바의 자원(객체, 객체의 변수, 함수등등)을 사용할 경우가 있습니다. 예를 들어서 핵심 모듈은 자바로 구현 되어 있고, 라이브러리는(Wrapper와 같은 경우) C++로 구현해야 하는 경우 라이브러리(C/C++)에서 다시 자바의 자원을 이용해야 합니다. 아주 간단한 프로그램을 만들어서 이를 구현해 보록 합니다. 만들 프로그램은 pass라는 함수와 javaPass라는 함수를 갖고 있습니다. pass라는 함수는 n..
2011.01.13
[02 NDK Basic] NDKExam 작성 해보기 - add 함수만들기
NDKExam 작성 해보기 - add 함수만들기 기NDK환경 구축이 다되면, NDK를 이용하여 가장 쉬운 예제를 하나 만들어 보도록 하자. 두 수의 합을 구하는 add 함수를 네이티브쪽에서 구현해 보는 예제다. 1. NDKExam프로젝트 생성하기우리가 만들 프로젝트에서는 두 정수를 입력 받아서 합을 리턴하는 함수를 C로 구현하고 그것을 안드로이드에서 사용할 것이다. 전체적으로 NDK 사용하는 법을 설명하는 페이지니 만큼 자세한 설명은 생략하도록 하겠다. (이후에 있는 상세 설명 페이지를 참고 하면 되겠다.) 먼저, 다음과 같은 프로젝트를 생성하고 코드를 작성한다. package org.example.ndk; import android.app.Activity; import android.os.Bundle;..
2011.01.13
[00 NDK Basic]들어가기에 앞서
NDK에 대해서 함께 공부해 봅시다. 자바와 네이티브 환경의 라이브러리를 연결하기 위해서 안드로드가 제공하는 Navtive Development Kit에 대해서 정리해 놓은 공간입니다. 저도 처음 공부하면서 개발에 도움이 되고자 정리 하고 있습니다. 개발하면서 격게 되는 문제점과 여러가지 이슈들에 대해서 정리 하려고 합니다. 창조적인 내용은 없을지 모르더라도 최선을 다해 정리 하고 있습니다. 여러분께서도 함께 하고 싶으시다면 많은 댓글 달아 주시기 바랍니다.
2011.01.12
[01 NDK Basic] Setting up NDK enviroment
1. Install NDK NDK는 안드로이드 개발 환경이 이미 구축되어 있어야지 사용 가능하다. 안드로이드 개발 환경이 구축되어 있지 않다면, 먼저 안드로이드 개발 환경 구축부더 하기를 바란다.(자바, 이클립스, 안드로이드 설치방법 참고) 다음의 링크로 가서 리눅스용 NDK 압축파일을 다운로드 한다. - http://developer.android.com/sdk/ndk/index.html 받은 압축파일을 푼다. 압축푸는 경로는 아무래도 상관 없다( 앞으로 압축 푼 경로를 라고 언급하겠다.) $ unzip android-ndk-(버전정보).zip /ndk-buile 실행파일을 실행 시켜서 다음과 같은 결과가 나오면 확경 구축 끝!!! 기타 - 우분투에서 디바이스 인식이 안될 경우Declare your a..
2011.01.12
Porting Opencv to Android
들어가기에 앞서... 이 글은 http://ukzzang.tistory.com/46aq=f&aqi=&aql=&oq=&gs_rfai=&pbx=1&fp=275f4b8818acb2f7 을 그대로 옮긴 내용입니다. 글쓴분께 감사의 말씀을 드립니다. Android 어플에서 객체인식 및 특징점 검출, 카메라 핸들링, 이미지 처리 등 많은 부분에서 유용하게 쓰이는 OpenCV가 Android로 포팅이 가능한 android-opencv가 code.google.com에 올라와서 간단히 정리해 본다. 이 내용은 http://code.google.com/p/android-opencv/ 내 용을 기반으로 정리한 것이다. 위 code.google.com의 페이지에 보듯이 opencv를 android에 포팅하기 위해서는 미리 준..
2011.01.12
[Eclipse] Workspace 바꾸기
프로젝트 여러 개가 묶여있는 곳이 워크스페이스(Workspace)입니다. 이클립스를 처음 시작할 때 물어보는 경로가 워크스페이스의 기준 위치입니다. 재밌는 것은 이클립스의 설정값들이 여기에 저장됩니다. 그래서 이클립스의 버전을 바꿔도 같은 워크스페이스를 부르면 설정값들을 그대로 보존하고 있죠. 이클립스 업그레이드 하기가 쉬운 편입니다. 워크스페이스를 새로 지정하면 모든 설정값들을 다시 세팅해주어야 됩니다. 설정값의 내보내기 가져오기 기능은 나중에 알아보겠습니다. 팀에서 필요한 기능이니까요. 오늘 은 워크스페이스를 바꾸는 것을 말씀드리려합니다. Switch Workspace 간단합니다. 메뉴에서 File > Switch Workspace 를 클릭하면 이제까지 작업했던 워크스페이스들이 나타납니다. 저는 4개..
2011.01.12