안드로이드 스튜디오 설치 구글에서 안드로이드 스튜디오를 오픈한지도 꽤 되었네요. 앞으로 이클립스의 안드로이드 앱 개발툴의 지원이 점차 줄어들 것으로 예상되므로 서서히 개발 툴을 옮겨보는 것도 괜찮을 듯 합니다. 안드로이드 스튜디오는 IntelliJ 기반으로 기존 이클립스에 ADT, SDK를 설치하던 복잡한 과정을 줄일 수 있고, 안정성이나 성능 면에서도 더 뛰어나다고 합니다. 안드로이드 사이트에서 윈도우나 맥용으로 다운로드 할 수 있습니다. 안드로이드 스튜디오 다운로드 맥에서 설치시 sys-img-x86-addon-google_apis-google-22 오류 해결 맥에서 안드로이드 스튜디오를 다운로드해서 설치하다보면 다음과 같은 오류가 나옵니다. The following SDK components wer..
웹과 인터넷 환경에서 검색은 가장 중요한 플랫폼이었다. 실제로 한 시대를 풍미했던 최고의 인터넷 기업들은 모두 훌륭한 검색 엔진을 보유하고 있었다. 알타비스타, 야후, 그리고 구글까지 당시 최고의 기술로 검색 서비스를 제공했다. 국내에서도 한미르, 엠파스, 심마니, 네이트, 다음, 네이버 등이 있었다. 하지만 최근 모바일 환경의 트래픽이 점차 늘어남에 따라 웹 검색 뿐만 아니라 모바일 검색에 대한 관심도 높아지고 있다. 물론 모바일 웹은 기존의 웹 검색엔진을 그대로 활용할 수 있지만 문제는 바로 모바일 앱(어플리케이션)이다. 모바일 앱 내부의 자체 검색은 할 수 있지만 여러 모바일 앱 컨텐츠를 외부의 검색으로 활용하기 어렵다는 문제를 가지고 있다. 실제로 모바일 앱 검색 서비스를 제공하던 퀵시(Quixe..
구글의 넥서스 7이 국내 출시된지도 두달여가 지났네요. 현재까지 회사 서비스와 관련된 동영상, 소개자료, App 등을 설치해 놓고 간단히 보여주는데 주로 사용하고 있는데요. 넥서스 7에서 잘 사용하지 않는 몇가지 팁들을 간단하게 소개하려고 합니다. 1. 카메라 활용넥서스 7은 전면 카메라만 부착되어 있어 사진을 찍는데 도움이 안됩니다. ㅠㅠ 스카이프와 같은 것을 활용해서 화상 통화등을 할 때 사용하거나 거울(?)로 주로 사용하던데요.. MoDaCo에서 만든 Camera Launcher for Nexus 7 을 사용하면 사진 찍기를 할 수 있습니다. 단, 주로 자기 얼굴을 찍게 되겠죠.. ^^ (주변을 찍어 보려고 하니 정말 어렵더군요.. ㅎㅎ) 물론 Instagram 어플리케이션도 구글 넥서스 7에서 사..
스마트폰 어플리케이션들이 증가하면서 각각의 디바이스에 대한 구분이 필요할 때가 있습니다. 이때 사용할 수 있는 것이 디바이스 식별자인데요. 아이폰의 경우에는 UDID라고 하는 디바이스별 식별자가 포함되어 있어 Unique하게 구분할 수 있습니다. 그러나 안드로이드에서는 고유한 식별자가 일률적이지 않아 어려움이 있는데요. 이 부분을 잘 정리해 놓은 글이 있네요. Tim Bray의 identifying App Installations 인데요. Android에서 식별자로 사용할 수 있는 항목들을 설명하고 결국 자체 UUID를 활용하는 것이 바람직하다고 되어 있네요.. 휴유님의 안드로이드의 개별 디바이스를 구분하는 방법을 보면 이 글을 한글로 잘 번역해 놓으셨네요. 그럼 내용을 다시한번 정리해 보도록 하겠습니다..
아이폰에 비해 안드로이드는 개발에 제한이 많이 없습니다. 아이폰은 Sandbox와 같은 형태로 Application 간의 영역 공유가 제한되어 있지만, 안드로이드에서는 Intent를 통해서 자유롭게 영역을 넘어들 수 있게 됩니다. 그렇다면 음성 처리와 관련되어 안드로이드에서는 어디까지 가능할까요? 관련된 API들을 한번 정리해 봤습니다. 안드로이드에서 음성을 처리하는 가장 기본적인 SDK는 바로 MediaPlayer입니다. 만약 통화 중 녹음과 같은 기능을 구현하고 싶다면 MediaRecorder와 같은 클래스를 활용하면 됩니다. MediaRecorder의 AudioSource를 활용해서 해당 기능들을 구현할 수 있을 겁니다. MediaRecorder의 state diagram은 다음 그림과 같네요. 만..
다이어로그는 프로그래밍에서 기본적으로 많이 사용하는 항목입니다. javascript의 alert();이나 VC++의 MessageBox()와 같은 형태로 많이 사용되죠.. 안드로이드에서는 다음과 같은 다이어로그를 사용할 수 있습니다. - AlertDialog: 아이콘, 메시지, 버튼 3개를 가지며 가장 많이 사용됨 - DatePickerDialog: 달력에서 날짜를 제공하며 날짜 설정을 가능하게 함 - ProgressDialog: 실행 상태를 통지하는 진행 바를 포함 - TimePickerDialog: 시간을 제공하여 시간 설정을 가능하게 함 - ZoomDialog: 줌 레벨을 선택함. 주로 지도에서 사용 이 중에서 주로 사용하는 AlertDialog에 대해서 간략하게 살펴보려고 합니다. 나머지는 관련 ..
안드로이드 개발하다보면 가끔 소스에는 전혀 오류가 없는데... 더군다나 지난번에는 제대로 사용했는데.. 오류가 나면서 컴파일이 안되는 경우가 있습니다. 이럴 때 나타나는 오류 메시지는 다음과 같습니다. Error generating final archive: Debug certificate expired on .. Debug와 관련된 인증 기간이 만료되어서 발생한 오류입니다. Debug certificate는 만들어진 후 365일이 지나면 만료되게 됩니다. 그러므로 만료된 Debug certificate를 새로 갱신해주면 되는데요.. 다음과 같은 방법으로 처리하면 됩니다. 바로 debug.keystore 파일을 찾아서 삭제한 후, 안드로이드 애플리케이션을 빌드 하면 오류는 해결됩니다. debug.keys..
지난번에는 안드로이드 옵션 메뉴에 대해서 살펴봤는데요. 2011/09/29 - [프로그래밍/안드로이드] - 안드로이드 옵션 메뉴 만들기 이번에는 컨텍스트 메뉴를 만들어 보도록 하겠습니다. 컨텍스트 메뉴는 해당 뷰를 길게 누르고 있으면 나타나는 메뉴입니다. 기본적인 개념은 옵션메뉴와 크게 다르지는 않지만, 특정한 뷰를 기반으로 하고 있다는 점이 큰 차이라고 할 수 있습니다. 컨텍스트 메뉴와 관련된 메소드는 다음과 같습니다. 컨텍스트 메뉴 생성 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 컨텍스트 메뉴 선택 public boolean onContextItemSelected(MenuI..
안드로이드 관련 기본적인 사항들을 나중에 찾기 쉽도록 하니씩 정리해 볼 계획입니다. 첫 번째로 옵션 메뉴에 대한 내용입니다. 안드로이드와 아이폰의 가장 큰 차이는 바로 이 옵션 메뉴가 별도로 있다는 건데요. 옵션 메뉴는 다음 그림과 같이 기본적으로 6개까지 나타낼 수 있습니다. 6개가 넘어게 만들 수도 있는데요.. 이런 경우, 마지막 항목에 "More.." 가 나타나게 되지요. 옵션 메뉴를 만들기 위해 필요한 메소드들을 먼저 정리해 봤습니다. 옵션메뉴 생성 public boolean onCreateOptionsMenu(Menu menu) 실행 중 옵션메뉴 변경 public boolean onPrepareOptionsMenu(Menu menu) 메뉴항목 선택 public boolean onOptionsIt..
아이폰에 이어 안드로이드까지 요즘 모바일 어플리케이션 개발이 대세인 듯합니다. 일단 기존 개발자들이 개발에 대한 접근이 쉽다는 장점이 있어 더욱 많아지는 것 같습니다. 아이폰의 경우, Objective-C라는 언어를 별도로 학습해야 하지만 안드로이드는 Java 기반 개발자들에게는 별 어려움 없이 적응 할 수 있기도 하죠. 실제로 자료를 보면 점차 안드로이드 점유율이 높아질 거라 예상하고 있기도 하네요. 저희도 개발하면서 느끼는 거지만 모바일 어플리케이션은 왠지 모르게 느리다는 느낌이 있습니다. 게임이나 내부에서 동작하는 어플리케이션은 조금 낫지만 서버를 접속해야 하는 경우에 특히 이런 경우가 많습니다. 아무래도 3G 네트워크 환경에서의 속도 때문인데요.. 실제 개발할 때는 보통 WIFI 환경에서 개발을 ..