Android NDK에선 기본적으로 C언어를 사용가능합니다. 별도의 정의를 통해서 C++를 사용할 수 있습니다. .cpp로 끝나는 파일을 생성하더라도 이 정의를 하지 않으면 사용이 불가능합니다. 어렵지 않기에 간단히 알아보고 있습니다. C++ 정의 C++ 정의를 하기위한 코드는 1줄만 필요합니다. Application.mk 파일을 jni 폴더 아래 새로 생성해야 합니다. Application.mk에 어떤 CPU의 라이브러리로 정의할 것인지를 선택할 수 있습니다. 그리고 C또는 C++로 빌드하기 위한 옵션등을 지정할 수 있습니다. CPU에 대하여 정의하지 않으면 모든 CPU에서 동작가능한 라이브러리가 생성되지만 x86 에서만 동작하도록 정의할 수도 있습니다.CPU 정의 예) 모든 CPU 허용 APP_ABI..
NDK 작업을 하면서 C로 작성을 하는데 printf 등을 통해 로그를 찍을 수는 없습니다. Android DDMS 툴에서는 로그가 보이지 않으니깐요. 파일로 출력할 수도 있지만 그것도 매번 파일을 꺼내서 열어보는 불편함이 있습니다. 다양한 방법으로 단순한 로그를 출력해볼 수 있겠지만 이번에 소개해드릴 NDK에서의 로그를 찍는 방법은 안드로이드에서 제공하는 방법을 사용하게 됩니다. #define를 통해 사용하기 편리하게 적용해두고 사용하는게 편리하게 사용할 수 있습니다. 이런 부분은 ndk 예제를 열어보면 확인할 수 있습니다. 주로 사용하는 로그들을 간단히 출력된 화면을 확인해보겠습니다. NDK에서 Log 찍기 NDK에서 로그를 찍는 방법은 2개의 include와 1개의 로그 찍는 라인의 추가를 해줘야 ..
이전에 NDK를 리눅스에서 빌드하는 방법을 올린적이 있습니다. 최근 다시 NDK를 제대로 해야할 일이 생겨 Eclipse를 통해 NDK 빌드하는 방법을 올리게 되었습니다. 이후 NDK에서 로그 찍는 방법이나 NDK에서 C++을 컴파일하는 아주 간단한 방법의 글들을 작성하려고 합니다. 우선 Eclipse에서 NDK 빌드하는 방법을 작성합니다. 최근 NDK가 업데이트 되면서 굳이 SDK를 사용하지 않고, UI까지 모두 NDK에서 처리하는 방식을 사용할 수 있게되었지만 아직 시도 해본적이 없어 이글을 우선 작성합니다. NDK 다운로드 안드로이드 개발자 사이트로 접속하여 NDK를 다운 받습니다. NDK는 윈도우, 맥, 리눅스에서 다운 받을 수있으면 모두 32 bit와 64 bit용으로 분리되어 있습니다.NDK ..
Android Softkeyboard를 컨트롤 하는 간단한 예제코드입니다. 버튼을 눌렀을 때 키보드를 불러오고, 내리는 간단한 코드와 InputKeyboard List를 불러오는 2가지 방법을 작성해보겠습니다. 작성한 예제 화면 키보드 Show/Hidden 예제 InputMethodManager와 INPUT_METHOD_SERVICE를 이용하여 키보드를 컨트롤하는 예제입니다. 간단한 예제이니 사용한 코드는 아래와 같습니다. 이 예제는 EditText가 화면에 표시되어있어야 사용이 가능합니다. InputMethodManager mInputManager = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); //Show Keyboard mInputMan..
안드로이드 3.0 부터 하드웨어 버튼이 아닌 소프트웨어 네비게이션 버튼 사용도 가능하도록 변경되었습니다. 특히 넥서스 시리즈에 적용된 것이죠. 이런 소프트웨어 버튼은 View를 상속 받은 레이아웃 또는 위젯을 통해 컨트롤 할 수 있습니다. Low Profile 또는 네비게이션 버튼을 숨길 수 있습니다. 적용 방법도 간단하며 이미 구글에서 제작한 앱들 중 동영상을 재생하는 프로그램은 모두 적용되어 있으며, 이 소프트웨어 버튼을 숨길 수 있는 메소드를 제공합니다. View의 API를 확인하면 setSystemUiVisibility을 제공하고 있습니다. View를 상속받는 모든 Method는 사용이 가능합니다. 제가 작성한 예제는 LinearLayout을 사용하여 네비게이션 버튼을 숨기거나 약간 어둡게 처리하..
지난 글에서 Swipe Views를 생성하는 방법과 기본적인 코드 동작방식을 설명한데 이어서 직접 예제를 작성해보았습니다. XML을 통한 UI구성이기 때문에 간단한 코드를 통해 Fragment를 상속받아 Swipe Views를 작성해보았습니다. Swipe Views의 기본적인 설명 글은 아래 글을 참고하세요. http://www.thdev.net/373 작성한 예제코드 작성한 예제코드는 ActionBar를 사용하였기에 API 11(3.0)이상에서 동작합니다. Swipe Views를 생성하고, 각 페이지별로 Fragment 3개를 생성합니다. Fragment 별로 XML을 각각 불러오고 상황에 따라서 해당 Fragment에서 값을 처리합니다. 각 페이지는 이전에 작성한 예제들과 웹뷰를 구성하였습니다. 웹뷰..
Android Settings를 컨트롤 할 수 있는 Provider가 있습니다. JellyBean 4.2부터는 Global속성이 추가되었고, 이 속성은 기존의 Settings.System 또는 Settings.Secure 변수들이 모두 Settings.Global로 통합 이관되었습니다. 소스코드 작성을 하다보면 Settings.System 또는 Settings.Secure로 작성하게되면 줄이 그어집니다. 줄이 그어지는 이유야 추후에 삭제될 수도 있는 변수의 표시이니 Settings.Global로 동작하게하면 될 것 같습니다. 제가 작성한 API 버전은 4.2인 API 17 버전입니다. 해당 내용은 아래 사이트로 접속하여 Global 로 검색하시면 확인 가능합니다. http://developer.andro..
ICS부터 추가된 목록을 왼쪽 또는 오른쪽으로 밀어내서 지우는 Swipe to Dismiss를 ListView에 적용하는 오픈 소스를 소개하려고 합니다. 구글에서 검색하면 "Stack Overflow"에 1개가 있습니다. 아래는 ICS이상에서 볼 수 있는 Swipe 기능입니다. 최근에는 Gamil 어플에도 포함되어 있구요. 아직 해당 기능에 대한 API가 제공되고 있지 않기에 만들어서 사용해야 합니다. 오픈소스가 있으니 쉽게 적용할 수도 있습니다.^^ 해당 방법을 간단하게 소개하려고 합니다. Swipe to Dismiss 소스코드 다운로드 해당 코드는 "Roman Nurik" 이라는 구글 UI 개발자 분이 만드셨습니다. 구글+ 페이지를 통해서 확인이 가능하며, GitHub에 소스코드가 등록되어 있습니다...