안드로이드의 Context

Android의 Context란? Application, Service, Activity 모두 Context를 상속 했다는 사실 알고계셨나요? 공식문서에 나와있는 Context의 개요를 확인해보면, 애플리케이션 환경에 대한 전역정보가 컨텍스트로 연결됩니다. Context는 구현이 Android 시스템에 의해 제공되는 추상 클래스입니다. 애플리케이션 별로 리소스 및 클래스에 대한 접근은 물론 Activity의 실행, 브로드 더보기…

글쓴이 Charlezz,

프레그먼트간 통신하는 3가지 방법

프레그먼트 통신(Fragment Commnication) 안드로이드 공식 문서인 Communicate with other fragments에 프레그먼트간 통신하는 방법에 대해서잘 나와있지만, 저는 또 다른 방법들에대해서 설명하고자 합니다. AAC ViewModel 이용 ViewModel을 이용하면 Activity를 라이플싸이클 오너로 등록하여 공통된 뷰모델을 이용할 수 있습니다.  app레벨의  build.gradle에 다음과 같이 의존성을 더보기…

ViewPager2 톺아보기

Released ViewPager2! 구글이 ViewPager를 2011년에 릴리즈한 이후로 새로운 버전인 ViewPager2(알파버전)를 릴리즈 했습니다.  많은 개발자들이 페이지단위의 기능을 구현하기 위해 이 컴포넌트를 사용하고 있습니다.  많은 개발자들이 사용한다고 해서 사용하기 쉬운 컴포넌트는 아닙니다. ViewPager를 만들기위해서는 Adapter도 구현해야하며, 어떤 어댑터를 구현해야할지 항상 고민하게 됩니다. 더보기…

Android Custom View(커스텀 뷰) 만들기

커스텀 뷰 만들기 커스텀뷰는 왜 필요할까? 안드로이드 프레임워크에서 기본 제공되는 위젯들로는 Button, TextView, EditText, ListView, CheckBox, RadioButton, Spinner 등이 있고 레이아웃으로는 LinearLayout, FrameLayout, RelativeLayout 등이 있습니다. 하지만 실제로 앱을 만들다 보면 기획자, 디자이너, 사용자(클라이언트)의 요구사항에 맞는 기능을 위의 열거한 뷰들로 더보기…

글쓴이 Charlezz,

[OpenGL] 11. GLSurfaceView와 MediaPlayer로 동영상 플레이어 만들기

Video Player based on GLSurfaceView 텍스처 있는 사각형 만들기까지 성공했다면, Android OpenGL ES에서 동영상 플레이어를 구현하는 방법자체는 간단합니다. SurfaceTexture에 대한 기본적인 내용을 알고 계시다면 더욱 이해하기 쉽습니다. 쉐이더 코드부터 차근차근 살펴보겠습니다. 버텍스 쉐이더코드는 텍스처 있는 사각형 만들기에 있던 것과 같아 생략합니다. 더보기…

Android의 SurfaceTexture

SurfaceTexture SurfaceTexture 클래스는 Android 3.0에 도입되었습니다. SurfaceView가 Surface와 View의 조합 인 것처럼 SurfaceTexture는 대략적으로 따지자면 Surface와 GLES 텍스처의 조합입니다. SurfaceTexture를 만들 때 BufferQueue를 생성하게됩니다. 새로운 버퍼가 큐에 저장되면 앱은 콜백 (onFrameAvailable ())을 통해 콜백을 받습니다. 이때 updateTexImage()를 호출하게되는데, 이 버퍼는 더보기…

글쓴이 Charlezz,

안드로이드 그래픽 시스템(BufferQueue and gralloc)

BufferQueue와 gralloc 안드로이드 그래픽 시스템을 이해하는 것은 BufferQueue와 gralloc HAL로 시작됩니다. BufferQueue 클래스는 Android의 모든 그래픽 중심에 있습니다. BufferQueue의 역할은 간단합니다. 그래픽 데이터 버퍼를 생성하는 생성자(Producer)로부터 해당 버퍼를 처리 하거나 화면에 표현할 수 있는 소비자(Consumer)에 연결하는 것입니다. 시스템을 통해 그래픽 더보기…

글쓴이 Charlezz,

[OpenGL] 10. Cube(정육면체) 만들기

Cube 만들기 정육면체는 6개의 사각형으로 구성되어있습니다. 즉 OpenGL로 표현하기 위해서는 12개의 삼각형이 필요합니다. 그렇다면 사각형을 그리기위한 정점은 몇개가 필요할까요? 정답은 없습니다. 정점을 삼각형 갯수 만큼 잡는다면, 3개(삼각형 정점 수) * 12개(필요한 삼각형 수) = 36개가 필요할 것이고, 중첩되는 정점을 활용한다면 더보기…

[OpenGL] 9. 텍스쳐 있는 사각형 만들기

텍스쳐 있는 사각형 만들기 OpenGL로 사각형을 그리는것까지 성공했다면, 텍스쳐를 입히는것은 어렵지 않습니다.  이미 만들어둔 사각형에서 쉐이더를 포함한 몇가지 코드를 수정하여 텍스쳐를 출력하도록 하겠습니다. 사각형 만들기는 링크를 참조해주세요 UV 좌표계 OpenGL에서 사각형을 그릴때는 삼각형 두개를 이어 붙인다는것을 이제 알것입니다. 사각형으로 된 더보기…

글쓴이 Charlezz,

Android Profiler로 네트워크 디버깅 하기

안드로이드 스튜디오가 3.3으로 업데이트 됨에 따라 Android Profiler 기능이 개선되었습니다. 이전에는 네트워크 프로파일러의 페이로드의 Raw텍스트만 표시되었는데 JSON, XML, HTML 형식을 지원합니다. View Parsed 또는 View Source를 클릭해서 서식있는 텍스트와 Raw텍스트를 번갈아가며 확인할 수 있습니다. Charles보다는 기능이 약하긴 하지만, 프록시 붙이는 더보기…