안드로이드에서 서버와의 통신작업 류 혹은 동시에 어떤 작업을 할 경우 스레드는 필수입니다. 전송이 끝나거나 작업이 끝나기를 동기적으로 대기하다 보면 사용자는 엄청 불편하겠죠. 그래서 스레드 작업을 많이 하게 되는데, RPC 콜이나 단순히 API를 사용하는 스레드라면 상관 없지만, 루프문에서 같은 작업을 종료하기 전까지 무한으로 하게 되는 경우에는 사용자가 스레드를 종료해 줘야 합니다. 그래서 안드로이드는 Java기반이므로 Java 스레드 정책에 따라 종료해 보려고 해도 종료가 되지 않는 문제가 가끔 생기는 것을 발견하였습니다. 참고로, 자바에서는 Thread를 interrupt() 메소드를 이용하여 종료시킵니다. 기존에는 stop(), suspend() 등을 사용하였으나 동기화에 있어 문제가 생길 수 있..
제5회 안드로이드사이드 세미나&친목 모임 일자 : 2011년 4월 16일 토요일 장소 : 상암 DMC 규모 : 100명 이상 회비 : 5,000원 또는 10,000원 (뒷풀이 비용 별도) 주제 : 1. 네이버톡의 핵심기술. C2DM이란 무엇인가? - 리칼님 2. 베일에 쌓여 있는 SMS. 관련 기술을 파헤치다. - 사우람님 3. 어플 제작 완료! 그런데 과연 돈을 벌 수 있을까? - 제로사우스님 4. SNS 흥망성쇠를 통해 본 보이지 않는 길 - Paranoidandroid님 5. 게임! 이거만 알면 나도 게임 개발 시작할 수 있다. - 저녁놀님 6. 뒷풀이 좋은 기회가 될 것 같습니다!
ItemizedOverlay를 extends 한 클래스를 이용하여 MapView에 marker를 띄우게 되면, 처음에 ItemizedOverlay를 생성할 때 설정해준 default 마커가 맵에 나타나는데, 마커별로 다른 그림을 넣고 싶다면 다음과 같이 addOverlays()를 변경해주면 됩니다. public void addOverlay(OverlayItem overlay) { mOverlays.add(overlay); populate(); } public void addOverlay(OverlayItem overlay, Drawable drawable) { if(drawable!=null) overlay.setMarker(boundCenterBottom(drawable)); addOverlay(ove..
안드로이드를 포함한 모바일 단말기에는 휴대성으로 인해 해상도 제약이 심하므로 추가 명령을 위한 컴포넌트가 필수적입니다. 안드로이드도 여러 방안을 제시하는데, 그 중에 하나로 OptionsMenu, 즉 소위 메뉴라고 불리는 것이 있습니다. 에뮬레이터에서는 menu버튼을 통해 동작하며, 일반적인 모바일 단말기에서는 왼쪽 하단부의 버튼을 누를 시 등장합니다. 대부분의 안드로이드 뷰가 그렇듯이, 메뉴 또한 xml, java를 이용한 두 가지 방법 모두를 지원합니다만, xml이 보다 직관적이고 사용하기 편한 것은 분명합니다. (제가 java로 하는 방법을 모르기도 합니다 ㅋㅋ) 메뉴 사용을 위한 순서를 간추려 보자면 1) xml 파일 생성하기 2) xml파일을 메뉴로 등록하기 3) 각 아이템에 대한 이벤트 설정하..
액티비티간의 이동을 위해 주로 사용되는 Intent의 종류로는 두 가지가 있습니다. 명시적(Explicit) 인텐트와 암시적(Implicit) 인텐트 입니다. 명시적 인텐트는 흔히 알고 있는 인텐트이므로 설명은 생략합니다. 암시적 인텐트는 특정 동작을 지정할 경우 안드로이드가 그에 알맞는 동작을 수행합니다. 전화걸기도 이를 이용하게 됩니다. startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+전화번호))); ※ 주의 : 전화걸기 퍼미션을 매니페스트에서 추가해 주어야 합니다.(CALL_PHONE)
안드로이드의 SQLite를 이용하여 생성한 DB의 내용을 확인하는 방법은 여러가지가 존재하지만 여기서는 adb를 이용하여 확인해 보겠습니다. 1. adb 환경변수 등록 (Windows 7 기준) 컴퓨터-(우클릭)->속성->고급시스템 설정->(고급 탭)환경 변수 Path 편집을 누르고 위와 같이 C:\abc; C:\bcd; C:\cde; 이런 형식으로 등록되어 있습니다. 끝에 세미콜론(;)을 추가하고 android sdk가 설치된 폴더의 하위 폴더 tools의 Full Path를 등록해 줍니다. 저의 패쓰는 C:\Program Files\Java\android-sdk-windows\tools 입니다. (이 과정을 생략하고 직접 커맨드라인으로 폴더에 들어가서 다음 단계를 진행해도 됩니다) 2. adb she..
컨텐트 프로바이더는 여러 애플리케이션 간의 데이터를 공유할 수 있는 유일한 방법입니다. 자기 자신의 데이터를 공유하고자 한다면 자기 자신의 컨텐트 프로바이더를 만들거나, 기존의 컨텐트 프로바이더에 데이터를 추가할 수 있습니다.. 컨텐트 프로바이더 사용하기 컨텐트 리졸버를 이용합니다. 모든 컨텐트 프로바이더에 해당되는 공통의 인터페이스 입니다. 컨텐트 프로바이더에 접근하기 위해서는 URI가 필요합니다. ContactsContract.Contacts.CONTENT_URI와 같은 식으로 상수로 제공하게 됩니다. 데이터를 가져오기 위해서는 ContentResolver.query() 또는 Activity.managedQuery()를 이용하는데, 여기서는 전자를 이용하겠습니다. query()의 매개변수를 이용하여 ..
위치정보로 날씨 정보를 가져오기 위해서는 우선 GeoPoint로 지역정보를 가져와야합니다. 이를 위해서는 Geocoder를 이용합니다. 지역->GeoPoint 를 지오코딩(Geocoding)이라고 하고, GeoPoint->지역 을 역 지오코딩(Reverse geocoding)이라고 합니다. 여기서는 역 지오코딩을 이용합니다. Geocoder의 getFromLocation()을 이용하여 Address 객체를 받아올 수 있습니다. ※ 주의 : 아시다시피 GeoPoint의 위도와 경도 값은 마이크로 값이므로 int형 입니다. 하지만 getFromLocation에서 사용되는 위도와 경도는 실제 값으로 double형입니다. 그래서 10^6으로 나누어서 인자를 넣어줘야 합니다. Address 객체를 통해 지역 값을..
아이폰과 안드로이드폰의 시장 쟁탈전이 치열한 가운데 얼리 어댑터,블로거,팬보이(fanboy),네티즌들의 줄서기가 한창이다. 언론 보도를 놓고도 이들의 반응이 워낙 제각각이어서 별 생각없이 특정 진영에 유리한 기사를 썼다가는 팬보이들과 네티즌들의 집중 포화를 맞기 쉽다. 심한 경우 얼마받고 특정 진영에 유리한 기사를 썼냐는 댓글 또는 비난도 `가슴 아프게` 감수해야 한다. 그렇다면 실제 아이폰과 안드로이드폰 애플리케이션을 개발하고 있는 모바일 개발자들은 어느 쪽에 줄서기를 하고 있을까? 모바일 개발자들은 향후 아이폰(iOS)과 안드로이드 진영 가운데 어느 쪽에 승산이 있을지 냉정하게 판단한 후 애플리케이션 개발에 나설 수 밖에 없다. 별로 전망도 없는 플랫폼에 승부수를 던졌다가는 쪽박 차기 십상이다. ht..
- Total
- Today
- Yesterday
- statistical learning
- 카타르 음주
- 카타르
- 알고리즘
- Discrete Mathematics
- Data Science
- Reverse Engineering
- Data Structure
- 대학원
- reversing
- 개발
- 통계학습
- 리버싱
- operating systems
- 자바
- 기계학습
- 이산수학
- Machine Learning
- Algorithms
- 리버스엔지니어링
- 데이터 사이언스
- java
- 운영체제
- 안드로이드
- linux
- 리눅스
- android
- 머신러닝
- 데이터 과학
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |