Category Archives: Android

[Android] WebView 사용시에 쿠키 동기화 문제 해결하기

안드로이드 기반의 WebView를 사용하다 보면 쿠키와 관련 부분의 동작이 조금 이상한 것을 발견하실 수 있습니다. 예를 들자면 로그인을 했는데 사용중에 갑자기 로그인이 풀려버린다거나 로그아웃을 아무리 해도 로그아웃처리가 되지 않는 문제가 있습니다.

이러한 문제는 실제로 어플리케이션이 할당 받은 메모리 영역(RAM)과 전체 쿠기가 보관되는 지역 저장소간의 동기화가 제대로 이루어지지 못하는데서 발생하는 문제입니다. 다음에서 보여드릴 CookieSyncManager를 이용하여 이 문제를 해결할 수 있습니다.

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);         
    setContentView(R.layout.main);
        
    CookieSyncManager.createInstance(this);
}

위와같이 onCreate내에서 싱크를 시작하여 주도록 합시다. 이 명령은 어플리케이션의 가장 Host가 되는 액티비티의 생성시에 호출해 주시면 됩니다. 액티비티마다 매번 호출하실 필요가 없습니다.

@Override
protected void onResume()
{
    super.onResume();
    CookieSyncManager.getInstance().startSync();
}

위의 명령을 onResume() 메서드 안에서 구현해 주도록 합시다.

@Override
protected void onPause()
{
    super.onPause();
    CookieSyncManager.getInstance().stopSync();
}

위의 명령을 onPause() 메서드 안에서 구현해 주도록 합시다. 위와 같은 과정을 통해 어플리케이션이 실행되면 쿠키싱크 매니저의 인스턴스를 생성하고 어플리케이션이 중지 상태로 들어가게 되면 싱크를 중단시켜 외부의 어플리케이션에 의해 쿠키가 꼬이는것을 방지하여 줍니다. 이후에 어플리케이션이 다시 시작되면 쿠키 동기화를 재시작합니다.

실제로 제작했던 어플리케이션의 쿠키 문제가 “정말 아주 간헐적”으로 발생해서 원인을 찾기도 어려웠는데 위와같은 처리를 하고나니 아무런 문제없이 해결이 되었네요.

참고 : http://stackoverflow.com/questions/2566485/webview-and-cookies-on-android

[Android] 간단하게 안드로이드 개발 환경 구축하기

안드로이드 개발 환경을 구축하기 위해 필요한 과정을 요점만 정리해 보겠습니다. 다음의 예시는 절대적인 내용은 아니며 각자 편한 방법을 찾아서 하시면 될것 같습니다.

1. Java Development Kit Standard Edition 설치(JDK SE)
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Oracle에 먹혀버린 Java의 쓸쓸한 모습이네요, 위의 링크로 가셔서 JDK6 Update X를 받으시면 됩니다. 이후에 설치를 하도록 합니다.

2. Eclipse Integrated Development Environment 설치
http://eclipse.org/downloads/

Eclipse IDE for Java Developers를 다운 받으시면 됩니다. 웹 개발도 병행하실 경우 Eclipse IDE for Java EE Developers를 다운받으시면 거의 모든 Eclipse기능을 통합 활용하실 수 있습니다. 적당한 곳에 압축을 풀어 설치 없이 실행하시면 됩니다.

3. Android SDK 설치
http://developer.android.com/sdk/index.html

위의 링크에 방문하여 적당히 자신의 PC 환경에 맞는 SDK를 다운받아 마찬가지로 적당한 위치에 압축을 풀어두시면 됩니다.

4. Android Development Tools Plugin 설치
사용자 삽입 이미지
이클립스를 실행후에 Help – Install New Software 메뉴에 들어가서 Add를 누르고 위와같이 입력합니다. 입력한 주소는 다음과 같습니다.

https://dl-ssl.google.com/android/eclipse/

그리고 방금 추가한 저장소를 선택하여 설치 가능한 모든 요소를 선택하여 설치합니다.

5. Android SDK – ADT 설정
사용자 삽입 이미지
이클립스 실행후 Windows – Preferences 에 들어가서 위와 같이 Android를 선택한 후에 SDK Location3에서 압축을 풀어둔 SDK 위치를 설정해 줍니다.

이후에 Windows – Android SDK and AVD Manager 에 들어가 Available Packages 에서 설치 가능한 모든 패키지를 설치하여 줍니다. 정상적으로 설치가 되었다면 다음과 같이 설치가 됩니다.

사용자 삽입 이미지
6. Android Virtual Device 추가

5에서 SDK를 정상적으로 업데이트 하였다면 AVD Manager에서 Virtual Devices 탭으로 이동합니다. 그리고 NEW버튼을 눌러 AVD를 추가해 줍니다. 여기에 추가되는 가상 장비가 우리가 흔히 말하는 시뮬레이터가 되겠습니다.

사용자 삽입 이미지
일반적으로 현재 시점에서 평범한 개발을 하기 위해서는 위와같이 버젼 2.1기반의 SD카드 공간은 32메가로 잡고 480×800 해상도인 WVGA800을 선택합니다. 기타 부가적인 하드웨어 제어가 필요할 경우 Hardware탭의 New를 통해 적절한 하드웨어를 추가하시면 되겠습니다.

여기서 선택한 480×800 해상도는 우리가 흔히보는 넥서스원, 갤럭시S, 디자이어 및 앞으로 나올 대부분의 안드로이드폰 기반의 대표 해상도가 되지 않을까 생각이 됩니다. 이제 시뮬레이터도 만들어졌으니 AVD Manager에서 Start를 눌러 실행하시면 됩니다.