본문 바로가기

전체보기

(625)
안드로이드/Android HttpUrlCennection 502 Bad Gateway 에러 안드로이드/Android HttpUrlCennection 502 Bad Gateway 에러 서버통신시, HttpUrlCennection.getResponseCode() 코드로 502 Bad Gateway 에러 메시지가 발생하게 되는데요. 원인과 해결책에 대해 알아 보겠습니다. 502 에러는 웹서버가 이상 트래픽 유발과 속도저하시 생기는 에러 메시지입니다.이러한 오류페이지가 발생하지 않게 설정하려면 Apache 서버의 설정을 KeepAlive를 On ==> Off 로 수정하면 됩니다.그 외에도 MaxKeepAliveRequest와 KeepAliveTimeout 값도 조절해주세요. 아래처럼 httpd.conf의 값을 수정하는 것이 적절합니다. StartServers 32 MinSpareServers 32 M..
안드로이드/Android 서버통신시 java.net.SocketTimeoutException 에러 안드로이드/Android 서버통신시 java.net.SocketTimeoutException 에러 서버 통신시 아래의 에러가 발생하는 경우가 있습니다. java.net.SocketTimeoutException 이 에러는 HttpUrlConnection.setConnectTimeout(int timeout) 커넥션 Time을 늘려주면 됩니다. 별다른 문제가 없다면, 10 ~ 15 초 정도로 늘려주시면 해결될거 같습니다.
안드로이드/Android 브로드캐스트리시버(BroadCastReceiver) 에서 Activity 호출시 주의사항! 안드로이드/Android 브로드캐스트리시버(BroadCastReceiver) 에서 Activity 호출시 주의사항! 브로드캐스트리시버(BroadCastReceiver) 를 사용하면서 Activity를 호출 하게 되는 경우가 발생하게 되는데요. 브로드캐스트리시버(BroadCastReceiver)에서 Activity를 호출할 경우에 주의 사항이 있습니다. AndroidManifest.xml 파일에 해당 Activity의 속성에 아래의 속성을 추가해 주어야 합니다.Activity에서 다른 Activity를 를 호출하게 되면, 자동으로 위의 카타고리 속성이 추가되어 intent를 호출하시만, Activity 이외의 다른 컴포넌트들에서는 카타고리를 자동으로 추가해 주지 않기 때문에, 해당 카타고리를 꼭 추가해 주..
자바/Java JVM 메모리 구조 자바/Java JVM 메모리 구조 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요영역(Method Area, 호출스택, Heap)에 대해서 알아보도록 하자. [참고] cv는 클래스변수, lv는 지역변수, iv는 인스턴스변수를 뜻한다. 1. 메소드영역(Method Area)- 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이타)를 Method Area에 저장한다. 이 때, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2. 힙(Heap)- 인스턴스가 ..
자바/Java static의 사용법과 개념예 자바/Java static의 사용법과 개념예 먼저 결론부터 간단히 정리하면 다음과 같습니다. 1.클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다. - 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 2. static이 붙은 멤버변수는 인스턴스를 생성하지 않아도 사용할 수 있다. - static이 붙은 멤버변수(클래스변수)는 클래스가 메모리에 올라갈때 이미 자동적으로 생성되기 때문이다. 3. static이 붙은 메서드(함수)에서는 인스턴스 변수를 사용할 수 없다. - static이 붙은 메서드는 인스턴스 생성 없이 호출..
안드로이드/Android 프로세스 우선순위 안드로이드/Android 프로세스 우선순위안드로이드 어플리케이션은 자신의 생명 주기를 제어할 수 없다. 대신, 어플리케이션 컴포넌트는 반드시 어플리케이션의 상태변화에 귀기울여 그에 따라 적절히 반응해야 하며, 불시 종료에 대비하도록 신경 써야 한다. 각 안드로이드 어플리케이션은 기본적으로 별도의 Dalvik 인스턴스를 실행하고 있는 자기 자신만의 프로세스 내에서 실행된다. 각 어플리케이션의 메모리와 프로세스 관리는 런타임에 의해 배타적으로 처리된다. 안드로이드는 자신의 리소스를 공격적으로 관리하며, 장치가 좋은 반응성을 가진 상태로 남아있도록 보장하기 위한 것이라면 무엇이든 한다. 이는 우선순위가 높은 어플리케이션을 위해 리소스 확보가 필요한 경우, 우선순위가 낮은 프로세스가 경고없이 종료될 수 있음을 ..
안드로이드/Android 액티비티(Activity) 투명 처리 하기 안드로이드/Android 액티비티(Activity) 투명 처리 하기 Activity를 투명하게 만들어서 사용해야 하는 경우가 생깁니다. 예를 들면 BroadCastReceiver에서 다이얼로그를 호출 할 수 없으므로 Activity로 다이얼로그를 구현하게 되는데요.! 그럴경우에 해당 속성을 이용하여 마치 Activity가 없이 다이얼로그만 호출하는 것 처럼 보여 지게 됩니다. 자 그럼 해당 속성을 추가해 볼까요? 우선 AndroidManifest.xml 로 들어 갑니다. 그리고 아래 예문에 나와 있는 것 처럼 android:theme="@android:style/Theme.Translucent" 해당 테마 스타일을 추가해 줍니다. 스크린샷 : 마치 Activity 가 존재하지 않는 것 처럼 Progres..
안드로이드/Android Context로 간단하게 패키지명 얻어오기~! 안드로이드/Android Context로 간단하게 패키지명 얻어오기~! 안드로이드 프로제트를 진행하게 되면, 패키지를 사용한 작업을 많이 하게 되는데요.! 간단하게 패키지명만 알고 싶은경우 굳이 PackageManager를 사용하지 않고도 해당 패키지명을 알 수 있는 방법이 있습니다. 정말 간단하게 Context 객체의 getPackageName() 메서드를 이용하게 되면 패키지명을 쉽게 얻어 올 수 있습니다. Context.getPackageName()