Tag Archives: android

AndroidChannel

안드로이드 프로그래밍을 하면서 Handler를 사용해서 메인 스레드와 워커 스레드간에 통신을 할 때, 작성해야하는 코드가 매번 부담이 되서 AndroidChannel이라는 라이브러리로 만들어 보았습니다. AndroidChannel을 사용하여 Ping-Pong 코드를 아래처럼 작성할 수 있습니다.

Android와 FFmpeg의 이상한 오류

ffmpeg을 안드로이드에 포팅해서 사용할 경우, 비디오 필터를 적용할 때(예를 들어 크롭 필터) 아래와 같은 이상한 오류가 발생할 때가 있다.

이 오류로 여러 mp4 연결이나 크롭에 오류가 생겨서 몇시간을 삽질을 했다. 구글링을 해보면 해당 오류에 대한 질문이 많은데 딱히 해결책은 찾을 수 없었다. 그러다 혹시나 하는 마음에 해본 것이 해결 방법이 될 줄이야… 해결 방법이… Read More »

안드로이드 앱 크래쉬를 우아하게 해결하기

안드로이드 앱 크래쉬가 발생할 경우, 앱이 죽었다는 메시지박스를 화면에 보여주는데 사용자에게 불쾌감을 줄 정도로 예쁘지 않죠. 며칠전 오픈소스로 CustomActivityOnCrash 라는 프로젝트가 오픈되었는데요. CustomActivityOnCrash를 사용하면 앱 크래쉬가 발생할 경우 커스텀 액티비티를 화면에 띄울 수 있어 아주 우아하게 앱 크래쉬를 해결할 수 있습니다.

안드로이드 프래그먼트

안드로이드에서 프래그먼트를 이해하는 일은 매우 중요하다. 동적 UI  구성 및 네비게이션을 위해 없어서는 안될 존재이기 때문이다. ‘이것이 안드로이드이다’의 저자가 만든 카페에 가입하면 프래그먼트에 대한 자세한 글을 볼 수 있다. 카페에 가입하면 무료로 볼 수 있기 때문에 꼭 보기를 권장한다. 아래는 프래그먼트의 생명 주기와 맛보기로 프래그먼트를 설명하는 글타래 중 첫번째이다.

안드로이드에서 Linux 명령문 실행하기

Java의 표준 라이브러리인 Runtime  을 이용해서 실행할 수 있다. Runtime.exec() 를 통해서 Process 를 생성하고 Process 가 stdout에서 Process가 뱉는 결과를 받아 오는 방식이다. 아래의 예제는 ls 명령어를 실행하는 예제이다.

안드로이드 커스텀뷰 이해하기

안드로이드 뷰는 화면에 그려지기 전에 아래 그림과 같은 몇 단계의 과정을 거친다. 커스텀뷰를 만들기 위해서는 뷰의 드로잉 과정을 이해해야 한다. 위 단계를 3개의 과정으로 나눌 수 있다. 하나의 과정이 실행되면 항상 Draws 단계에서 마무리 된다. Animate 과정 Layout 과정 Draw 과정 각 과정의 시작점은 아래와 같다. Animate 과정은 View의 animate() 메서드에 의해서 시작된다. Layout 과정은… Read More »