* 이번에는 자동 로그인 등과 같은 기능을 구현할 때 유용하게 사용할 수 있는 기능인 SharedPreference에 대하여 알아보도록 하자. - 이전 글 2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기 2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기 2012/11/21 - [Android(안드로이드) 앱 개발 기초] Activity 라이프사이클 공부 2012/11/24 - [Android(안드로이드) 앱 개발 응용] Google Map API로 지도 보여주기(MapView), Overlay Item 그려주기 예제 2012/11/28 - [Android(안..
* 이번에는 음악 재생을 위하여 사용하게 되는 MediaPlayer의 개발자 매뉴얼을 살펴보도록 하자. 음악을 재생할 때 주의할 점들과 각종 상황들에 대한 다양한 팁들을 포함하고 있어서 읽어보면 매우 유익할 것이다. - 이전 글2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기2012/11/21 - [Android(안드로이드) 앱 개발 기초] Activity 라이프사이클 공부2012/11/24 - [Android(안드로이드) 앱 개발 응용] Google Map API로 지도 보여주기(MapView), Overlay..
* DB로 직접 접근하기 vs ContentProvider 사용하기?: 안드로이드에서는 기본적으로 SQLite를 사용할 수 있도록 API를 다양하게 편리하게 제공해주고 있다. 하지만, 이러한 SQLite는 기본적으로 해당 DB를 생성한 앱에서만 접근이 가능한 제약 사항이 있기 때문에, 앱간의 공유가 어려웠었다. 하지만, 이제는 안드로이드에서 기본적으로 주소록이나 콜로그 등에 대해서 ContentProvider를 통해서 데이터를 제공해주고 있고, Android SDK에서도 해당하는 내용을 사용할 것을 권하고 있다. 만약 앱에서 데이터를 내부적으로만 사용한다면, 굳이 ContentProvider를 사용하지 않아도 되고, 사실 ContentProvider를 처음에 접하게 되면 익숙하지 않기도 하고 제대로 된 ..
* 이번에는 기존 안드로이드 개발자들도 다소 생소할 Fragment에 대해서 공부해보자. Fragment는 디바이스가 워낙에 다양해졌기 때문에 작은 모바일 화면, 중간 사이즈 모바일, 그리고 태블릿까지 지원해주기 위하여 코드 재사용성을 높여주기 위한 새로운 개발 디자인이기 때문에 기존의 Activity 기반의 화면 구성보다 더 발전되고 호환성이 있는 디자인을 꾸밀 수가 있게 됐다. - 이전 글 2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기 2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기 2012/11/21 - [Android(안드로이드) 앱 개발 기초] ..
* 이번에는 저번의 GPS 위치 가져오기 이후에 지도 위에 말풍선을 띄우는 것을 한번 공부해보자. - 이전 글 목록2012/11/05 - [Android(안드로이드) 앱 개발 기초] Eclipse 개발환경 설정하기, Android SDK 설치하기2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기2012/11/21 - [Android(안드로이드) 앱 개발 기초] Activity 라이프사이클 공부2012/11/24 - [Android(안드로이드) 앱 개발 응용] Google Map API로 지도 보여주기(MapView..
* 이번에는 이전의 라이프사이클에 이어서 앱을 실행 중일때 설정이 바뀌는, 대표적인 예로 화면 회전이 일어나는 경우 처리하는 방법에 대해서 알아보자. 2012/11/05 - [Android(안드로이드) 앱 개발 기초] Eclipse 개발환경 설정하기, Android SDK 설치하기2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기2012/11/21 - [Android(안드로이드) 앱 개발 기초] Activity 라이프사이클 공부2012/11/24 - [Android(안드로이드) 앱 개발 응용] Google Map ..
* 이번에는 Location Manager를 이용해서 현재 사용자의 위치를 측정하는 방법을 공부해보자. 2012/11/05 - [Android(안드로이드) 앱 개발 기초] Eclipse 개발환경 설정하기, Android SDK 설치하기2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기2012/11/21 - [Android(안드로이드) 앱 개발 기초] Activity 라이프사이클 공부2012/11/24 - [Android(안드로이드) 앱 개발 응용] Google Map API로 지도 보여주기(MapView), Ove..
* 이론공부는 지긋하다! 잠시 외도를 해서 Google Map API를 활용하는 방법을 공부해보자! 2012/11/05 - [Android(안드로이드) 앱 개발 기초] Eclipse 개발환경 설정하기, Android SDK 설치하기 2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기 2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기 2012/11/21 - [Android(안드로이드) 앱 개발 기초] Activity 라이프사이클 공부 * Google Map API 설치하기 : Google Map API는 Google API에 포함되어 있으며, Android SDK..
* 이번에는 안드로이드 앱의 기초 단위인 Activity의 lifecycle에 대해서 공부해보자. 2012/11/05 - [Android(안드로이드) 앱 개발 기초] Eclipse 개발환경 설정하기, Android SDK 설치하기2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기2012/11/10 - [Android(안드로이드) 앱 개발 기초] 간단한 인터페이스 구현과 다른 Activity로 넘어가기 * Activity 라이프 사이클: 사용자가 앱을 시작하고 앱 안에서 앞으로 뒤로 이동하고 다른 앱을 실행하는 등의 행위를 컨트롤하는 것이 바로 Activity이다. 이러한 Activity는 처음 시작할때, 전면에 나와서 사용자의 포커스를..
* 이번에는 간단한 인터페이스 구현과 다른 Activity로 넘어가는 방법을 알아보자. 2012/11/05 - [Android(안드로이드) 앱 개발 기초] Eclipse 개발환경 설정하기, Android SDK 설치하기 2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이드 프로젝트 생성하고 에뮬레이터로 앱 실행하기 * 인터페이스 구성 : 안드로이드의 인터페이스는 XML을 기반으로한 문법으로 ViewGroup과 View가 구조적 엮어져 있는 구성을 하고 있다. : ViewGroup은 Linear layout과 같이 보이지 않는 컨테이너를 나타내고, View는 button 또는 text field와 같은 UI 위젯을 나타낸다. * Linear layout 구성하기 : 다시 Eclip..
* 이번에는 기본 앱을 생성해서 에뮬레이터로 실행해보는 것을 해보자. 2012/11/05 - [Android(안드로이드) 앱 개발 기초] Eclipse 개발환경 설정하기, Android SDK 설치하기 * 이클립스로 프로젝트 생성: New > Android Application Project 선택 : 새로운 프로젝트의 이름과 패키지를 입력하고 빌드에 사용할 SDK와 최소요구 SDK를 선택한다.* 최소요구 SDK의 기능들을 기준으로 컴파일이 되기 때문에 대상으로 하는 SDK를 잘 선정해야한다. 어떠한 제품군을 대상으로 개발을 할 것인지, 현재 운영체제 버전별 분포도가 어떻게 되는지에 따라 조사를 하고 결정하는 것이 좋을 것이다. : 버전별 분포 관련글 참고2012/11/07 - [Programming/An..
* 구글에서 제공하는 정보 사이트에서 정보를 확인할 수 있다. http://developer.android.com/about/dashboards/index.html : 아래는 최근 14일간 구글 플레이에 접속한 안드로이드의 버전별로 모든 데이터이다. * 2012년 11월 1일 데이터 : Gingerbread가 54%, ICS가 25%, Froyo가 12%, Eclair가 3.1%, Jelly Bean이 2.7%의 분포를 보여주고 있다. * 2.1버전은 조금씩 도태되고 있는 것이 보이고 있고, 아직은 2.2버전은 호환하는 앱을 만드는 것이 좋을 것 같다. 앱 개발을 약 3개월 완성을 고려한다면 2.3.3만 지원해도 괜찮을 것 같기도 하다. : 아래는 화면크기와 해상도에 대한 분포도이다. 화면은 당연히 일단..
* 안드로이드 프로젝트를 생성했는데 생성 시작부터 아무것도 안했는데 에러가 난무하고 있다. : 도대체 무슨 에러인가 커서를 대보니 다음과 같다. : @override를 사용할 경우 무조건 superclass에 있어야한다는 내용이다. 해결방법으로는 @Override를 삭제하는 방법이 있다고 나와있다. 하지만 일일이 모든 @Override를 지우면서 할수는 없을 것이다. 이것의 간단한 해결방법이 있다. * 안드로이드 프로젝트는 기본적으로 자바컴파일러가 1.5로 잡혀있는데 1.6이상버전으로 세팅하면 문제가 해결된다. : 고치고나니 문제가 없어졌다. 이제 코딩하자! 끝.
* 이클립스 개발환경을 설정하고 안드로이드 SDK를 설치하는 방법을 알아보자. 1. 이클립스를 실행2. Help > Install New Software3. 오른쪽의 Add.. 버튼 클릭4. https://dl-ssl.google.com/android/eclipse/를 추가5. Developer Tools 를 체크하고 Next 6. 라이센스 사용에 동의하고 Finish 7. 설치가 완료되면 이클립스 재시작8. SDK Manager를 열어서 Android SDK를 설정 (설치가 안되었다면 Android SDK도 설치하자) * 이렇게 하면 일단 개발환경은 설정된것이다. 다음에는 간단한 앱을 한번 만들어서 실습해보자. 끝. - 다음 글2012/11/07 - [Android(안드로이드) 앱 개발 기초] 안드로이..
[Android] C2DM 푸시 알림 구현하기 - PHP 서버 편 튜토리얼 PHP서버에서 C2DM을 이용해서 푸시를 하려면 curl을 이용하는 방법과 Zend 프레임워크를 이용하는 방법이 있다. 더 간단한 방법인 curl 을 이용해서 ClientLogin을 하고 메세지를 방법을 살펴보도록 하자. C2DM 푸시를 보내는 순서는 구글 계정 인증 (이전에 C2DM에서 푸시를 보내는 계정으로 설정했던 계정)curl을 이용해서 메세지 전송 이렇게 이루어진다. 두 단계만 거치면 간단하게 전송이 가능하다. 0. C2DM 세팅 (클라이언트)[안드로이드] C2DM(push notification) 구현하기 - 안드로이드(클라이언트) 편 1. google 계정 등록하는 함수 작성function googleAuthentic..
[Android] Unable to start service Intent { act=com.google.android.c2dm.intent.REGISTER (has extras) }: not found 안드로이드에서 C2DM 푸시 알림을 이용하는데 다음과 같은 에러가 일어나면 다음 3가지에 유의해야한다. 실제 안드로이드 장치에 올릴때에는 안드로이드 2.2 버전 이상이어야한다. (에뮬레이터 포함)Market 어플리케이션이 인스톨 되어있어야한다. (실제 장치만 해당, 에뮬레이터는 없어도 된다.)해당 장치에 구글 계정을 연동해야한다. (Settings / Accounts & Sync / Google..) : 참고--It requires devices running Android 2.2 or higher tha..
[Android] ContentProvider(컨텐트프로바이더)로 ExpandableList(확장 가능한 목록) 구현 예제 (CursorTreeAdapter (커서 트리 아답터) 사용) 튜토리얼 ContentProvider를 구현했으면 사용을 해야할 것이다. Activity안에서 query로 데이터를 가져올 수 있지만 목록에는 CursorAdapter나 CursorTreeAdapter로 해당하는 목록에 적용 시켜야할 것이다. 지금부터 ExpandableList에 CursorTreeAdapter를 사용해서 ContentProvider를 적용하는 방법을 알아볼 것이고 BaseExpandableListActivity를 확장하는 Activity안에서 작업을 할 것이다. 조금거 기본적인 ExpandableList..
[Android] R.java 파일 자동 생성 안될때 이클립스에서 가끔 R 파일이 자동으로 업데이트 안될때가 있을때에는..Clean project > Build automatically이클립스 재시작 위와 같이 했는데도 안된다면, 에러가 있는 resource가 있는 경우가 많다.대표적으로 layout xml 파일에 에러가 있다면 R 파일이 자동으로 생성되지 않는다. 그래도 못 찾겠다면 Android SDK 설치가 제대로 되었는지 확인한다. (업데이트하다가 도중에 중단되면 R.java가 생성 안되는 경우도 발생한다.) 끝.
[Android] 에뮬레이터에 구글 계정 등록하기 기본 안드로이드 에뮬레이터 상에서 구글 계정을 설정하는 부분이 settings/accounts & sync 아래에 Google이 없는 경우. 1. 컴파일하는 라이브러리로 Android X.X SDK 가 아니라 Google API를 이용해야한다.2. AVD 에뮬레이터도 Google API를 사용하도록 바꿔준다.3. Settings/Accounts & Sync/Google 들어가서 계정을 설정한다. 끝.
[Android] ContentProvider example and tutorial 지금부터 ContentProvider를 앱에 적용하는 방법을 살펴보자.최종적인 목표는 SyncAdapter와 ContentProvider를 조합해서 사용하는 것으로 일단 ContentProvider부터 앱에 맞게 설정을 하도록 해보자. 컨텐트프로바이더의 기본에 대해서는 여기서 읽어보면 유용하다. http://developer.android.com/guide/topics/providers/content-provider-basics.html이론 공부는 일단 코딩하면서 하나하나 매치 시켜나가보자.이론적인 공부는 나중에 더 자세하게 다뤄볼 생각이다. * 아래의 소스 코드는 처음으로 ContentProvider가 어떻게 돌아가는지..
[Android] C2DM, 푸시 알림 구현하기. 안드로이드에서는 C2DM (Cloud to Device Messaging)이 iOS에서의 푸시 알림과 같은 개념으로 사용자에게 알림 메세지를 서버에서 보내는 방식을 취하고 있다. 자세한 정보는 http://code.google.com/android/c2dm/index.html 에 가면 얻을 수 있다. 단계적으로 구현하는 방법을 알아보자. 1. C2DM을 이용하기 위한 등록 먼저 http://code.google.com/android/c2dm/signup.html 가서 앱을 등록해야한다. 입력해야하는 정보는 - 개발하고 있는 안드로이드앱의 패키지(예 : com.example.app)- 하루에 이용할 메세지의 수- 초당 이용할 메세지의 수- 이메일 연락처- ..
[안드로이드] 안드로이드 이전 버전도 호환가능한 액션바 만들기 이전에 올렸던 안드로이드 인터페이스 디자인 패턴 영상에(참고: [Android] UI Design patterns) 나왔던 액션 바 (Action Bar)를 만드는 방법에 대해서 알아보자. - 참고: 액션 바(ActionBar)는 안드로이드 SDK 3.0 (HoneyComb) 이후 추가되어 보다 쉽게 사용이 가능하다. 하지만 3.0 이전 버전에서는 ActionBar가 존재하지 않는다. 하지만 그 이전의 안드로이드 버전에 호환이 불가능하기 때문에 무턱대고 사용했다간 호환성문제에 부딪칠 것이다. 따라서 안드로이드 개발자 사이트에서는 호환가능한 예제를 제공해주어서 이 문제를 해결하도록 도와주고 있다.(참고: http://developer.andro..
AndroidManifest.xml 파일 안에 해당하는 Activity 태그 안에android:windowSoftInputMode="adjustResize"를 넣어주면 키보드가 나왔을때 화면 사이즈가 재조정 된다.키보드의 바로 위에 메신저와 같이 EditText의 입력 박스를 유지하고 싶으면EditText 위에 있는 내용을 ScrollView에 넣으면 키보드 위에 EditText는 항상 유지되고나머지는 키보드의 유무에 따라 사이즈가 변한다. 끝.
안드로이드에서 Activity간 상관없는 전역 변수를 만드는 방법을 살펴보자. 크게 두 가지 방법이 있는데, 1. android.app.Application을 이용하는 방법 2. Singleton 디자인 패턴을 이용하는 방법 Activity에서 접근해야한다면 전자를 사용하는 것이 낫고, 그 외의 Provider나 다른 곳에서 접근해야하는 데이터면 후자가 나을것이다. 하지만 후자의 경우 메모리가 모자라면 static 변수들을 메모리에서 제거할 것이다. 이런 경우 onSaveInstatnceState(Bundle) 을 통해서 싱글콘을 따로 저장시켜야하는 추가 작업이 필요하다. 1. Android.app.Application을 이용하는 방법 1) Application을 상속받는 클래스를 만든다. (예제는 Pr..
getViewTypeCount는 itemCount나 ViewCount가 아니라 'Type' Count 이니까 사용하는 데이터의 종류의 카운트를 하면 된다. 보통 1가지 데이터를 종류를 많이 사용하므로 간단하게 public int getViewTypeCount() { return 1; } 만해줘도 해결된다. 경우에 따라서 레퍼런스를 보고 다르게 설정하면 된다. 끝.
[안드로이드] Sending data from an Activity to another Activity 가장 쉬운 방법은 보내고자 하는 Object에 implements java.io.Serializable 하고 ID생성해주고 Intent intent = new Intent(this , NewActivity.class); intent.putExtra("ObjectName" , serializedObject); startActivity(intent); 끝. 하지만 이건 성능상 약간 느리다고 한다. 약간 더 많은 작업이 필요하지만 성능이 좋은건 Serializable 대신에 Parcelable을 사용하는 것이. class MyObject implements Parcelable { private int dat..
- Total
- Today
- Yesterday
- c++
- HTML5 튜토리얼
- gae
- google app engine
- 사진
- K100D
- 팁
- 서울
- 자바스크립트
- Javascript
- mini project
- lecture
- 뽐뿌
- Python
- TIP
- HTML5
- Android
- 안드로이드
- Writing
- ny-school
- 강좌
- 탐론 17-50
- 속깊은 자바스크립트 강좌
- java
- gre
- GX-10
- 안드로이드 앱 개발 기초
- 삼식이
- 샷
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |