* 구글에서 제공하는 정보 사이트에서 정보를 확인할 수 있다. 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이상버전으로 세팅하면 문제가 해결된다. : 고치고나니 문제가 없어졌다. 이제 코딩하자! 끝.
[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] Popup, confirm window 안드로이드에서 확인창, 경고창을 띄우는 방법 new AlertDialog.Builder(this) .setTitle("Titel") .setMessage("Do you really want to whatever?") .setIcon(android.R.drawable.ic_dialog_alert) .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Toast.makeText(MainActivity.this, "Yaay", Toast.LENGTH_S..
[안드로이드] 안드로이드 이전 버전도 호환가능한 액션바 만들기 이전에 올렸던 안드로이드 인터페이스 디자인 패턴 영상에(참고: [Android] UI Design patterns) 나왔던 액션 바 (Action Bar)를 만드는 방법에 대해서 알아보자. - 참고: 액션 바(ActionBar)는 안드로이드 SDK 3.0 (HoneyComb) 이후 추가되어 보다 쉽게 사용이 가능하다. 하지만 3.0 이전 버전에서는 ActionBar가 존재하지 않는다. 하지만 그 이전의 안드로이드 버전에 호환이 불가능하기 때문에 무턱대고 사용했다간 호환성문제에 부딪칠 것이다. 따라서 안드로이드 개발자 사이트에서는 호환가능한 예제를 제공해주어서 이 문제를 해결하도록 도와주고 있다.(참고: http://developer.andro..
[안드로이드] 검색 기능 구현하기(SearchableActivity) 안드로이드의 내장되어있는 검색 기능을 사용하는 방법을 알아보자. 안드로이드에서 제공하는 검색 기능을 이용하는 방법은 크게 2가지가 있는데 1) 기본적으로 내장되어있는 Search dialog를 이용하는 방법2) SearchView를 이용하는 방법. 2번이 좀더 디자인에 융화되고 다양한 구현을 가능하게 하지만 Android SDK 3.0 (11 version)의 이후 버전에서만 사용이 가능하다. 따라서 좀더 넓은 호환성을 가지려면 1번을 이용하면 되고, 좀더 다양한 인터페이스를 구현하고자 한다면 2번대로 하면 될 것이다.그 외 직접 EditText를 만들어서 키 입력마다 필터링을 하는 방법도 있는데 일단은 검색기능만 알아보자.이번에는 1..
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..
Adapter상의 데이터를 수정하고나서 화면의 데이터도 같이 수정하고 싶을때 해결하는 방법. 1. ArrayAdapter를 사용하는 경우, add(), insert(), remove() 함수만 사용하기 - Observer를 설정했다면 notifyDataSetChanged() 2. CursorAdapter를 사용하는 경우, Cursor에 requery() 3. 최후의 방법 : setListAdapter(listAdapter) 다시 설정하기. 끝.
* XML을 사용하고자하는 액티비티 안에서. LayoutInflater inflater = activity.getLayoutInflater(); View view = inflater.inflate(R.layout.VIEW_ID , null /*ROOT_GROUP*/); * 이후 view를 추가하든 subview로 쓰든 하면 된다. 커스텀 ExpandableListView를 사용할때 용이하다. 끝.
1. 프로그래밍으로 없애기 requestWindowFeature(Window.FEATURE_NO_TITLE); * 주의 : 어떠한 Context를 View에 설정하기 전에 먼저 실행해야한다. 2. XML 고쳐서 없애기 * AndroidManifest.xml 파일을 열고 없애고자 하는 Activity 안에다가 다음의 property를 추가 * xml에서 고치니까 기본 테마가 바뀐다. (이미 일일이 수동으로 설정하고 있다면 상관없을듯 하다) 끝.
- Total
- Today
- Yesterday
- Writing
- java
- 삼식이
- gre
- ny-school
- K100D
- GX-10
- 자바스크립트
- Javascript
- 샷
- 뽐뿌
- mini project
- HTML5 튜토리얼
- lecture
- 서울
- 팁
- c++
- 사진
- 속깊은 자바스크립트 강좌
- gae
- Android
- php
- 강좌
- TIP
- 탐론 17-50
- 안드로이드 앱 개발 기초
- google app engine
- HTML5
- 안드로이드
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |