목록전체 (195)
코딩하기 좋은날
Java의 new, Clone, Copy constructor 그리고 kotlin의 copy 연산자들을 한번 비교해보자. 참조: https://dzone.com/articles/java-cloning-copy-constructor-vs-cloning Java Cloning: Copy Constructors vs. Cloning - DZone Java Object.clone() has fallen out of favor with devs, so let's see why. Here we consider cloning and compare it to serialization and copy constructors. dzone.com new operator in Java Java에서 새로운 object를 만들 ..
출처: https://source.android.com/devices/graphics/architecture 모든 개발자는 Surfaces, SurfaceHolder, EGLSurface, SurfaceView, GLSurfaceView, SurfaceTexture, TextureView, SurfaceFlinger, Vulkan에 대해서 알아야 한다. 이 페이지에서는 Android-system-level graphics architecture의 필수적인 요소와 이것들을 App 프레임워크와 multimedia system에서 사용하는 방법에 대해 설명한다. 초점은 그래픽 데이터의 buffer가 어떻게 시스템을 통해 이동하는지에 있다. SurfaceView와 TextureView가 작동하는 방식이나 Sur..
안드로이드의 Graphics 챕터의 모든 내용을 번역하고자 한다. 문서에서도 추천하듯, 순서대로 읽을 것을 권장하며 안드로이드 그래픽 아키텍처에 대해 궁금한적이 있다면, 올바르게 찾아왔다. 글을 번역하는 시점은 2022년 7월경이며, 시간이 흐름에 따라 미래에는 상당부분 내용이 달라질 수 있음을 인지해야 한다. 참조: https://source.android.com/devices/graphics 그래픽 | Android 오픈소스 프로젝트 | Android Open Source Project 그래픽 Android 프레임워크는 그래픽 드라이버의 제조업체 구현과 상호작용하는 다양한 2D 및 3D용 그래픽 렌더링 API를 제공합니다. 따라서 이러한 API가 더 높은 수준에서 어떻게 작동하는지를 제 source...
없앨 수 있을까? 대부분의 서비스들은 각자의 Splash화면을 기존에 구현한 상태기 때문에, 해당 화면이 뜨는 것을 원치 않을 수 있다. 공식문서에서 해당 화면을 사용하지 않는 옵션은 제공되지 않고 있다. Android12의 소스코드를 분석해보며 해당 SplashScreen을 제거 할 수 있는지 확인해보자. 해당 화면이 언제 어디에 붙고 어떻게 제거 되는지 실제 소스코드를 분석해볼 것이다. 위의 SequenceDiagram은 Activity호출 프로세스를 보여주고 있다. ActivityManagerService(AMS)에 의해 시작되며 Task에서 ActivityRecord의 showStartingWindow()의 호출로 startingWindow를 보여주기 시작한다. – StartingWindow(Pr..
참조: Splash screens | Android Developers , Migrate your existing splash screen implementation to Android 12 and higher | Android Developers SplashScreen Android12이상을 사용하는 디바이스는 앱 실행시(Cold Start 또는 Warm Start 인 경우) 새로 추가된 SplashScreen이 반드시 나오도록 변경 되었다. 이를 따로 구현하지 않는다면, Android12 이상을 사용하는 디바이스에서는 default 화면(중앙에 앱 아이콘 및 App theme의 WindowBackground에 지정된 컬러를 배경색으로한)이 나타나게 된다. 이 화면은 앱의 첫 프레임이 그려질 때 사라지..
https://exoplayer.dev/glossary.html Glossary - ExoPlayer exoplayer.dev 위의 공식문서에 나오는 media 및 Android에서 영상 처리를 위해 사용되는 용어에 대해 정리(번역)해보려고 한다. General - Media ABR Adaptive Bitrate의 약어. ABR 알고리즘은 playback 동안 여러 track중 선택하는 알고리즘으로, 각각의 track은 동일한 media를 표시하지만 bitrate는 다르다. Adaptive streaming Adaptive streaming에서는 multiple track을 사용할 수 있다. 선택된 track은 playback 동안 ABR 알고리즘을 이용하여 동적으로 선택된다. Access unit me..
요즘 점점 게을러지고 있는 자신을 보며, 한해 계획 및 목표를 세워서 동기부여를 하고자 글을 써보려고 한다. 2020년 신입개발자로 일을하기 시작해서, 어느덧 1년 하고도 3개월 가량의 시간이 지난 것 같다. 작년 초의 정신 없던 순간을 기억하면 지금은 정말 많이 여유로워(나태해졌다는(?)) 졌다는 생각이 든다. 처음 입사했을때, 신규 서비스의 개발이 한창이였기 때문에 팀에 적응하고, 1인분의 역할을 하기 위해서 많은 고생을 했고 그 과정속에서 단기간에 많은 성장을 하였다고 생각한다. 물론 무엇인가를 알게되면서 모르는게 더욱 더 늘어났다. 배움에는 끝이 없다는 말을 뼈저리게 느끼게 되었다. 서비스 출시가 끝나면서, 어느정도 안정화가 되고나니 조금은 여유로움을 느끼게 되었다. 남는 시간에 읽고싶었던 문서들..
로그인에 이어 리더보드와 업적을 연동하는 방법을 알아보겠습니다. 앱 gradle에 아래의 코드를 추가해주면 사용이 가능합니다. implementation 'com.google.android.gms:play-services-games:21.0.0' 먼저 리더보드와 업적은 구글 플레이게임 콘솔에서 추가를 할 수 있습니다. 아래의 메뉴로 들어가셔서 필요한 업적과 리더보드를 생성 해 주시면 됩니다. 각각의 업적과 리더보드는 고유의 키를 가지게 되는데요. 상단의 리소스 보기를 클릭 하시면 프로젝트 내에 붙여넣을 수 있는 xml이 나오게 됩니다. 복사후 프로젝트에 붙여넣어 주시면 됩니다. 아래는 전체 업적과 리더보드를 확인 할 수 있는 코드 입니다. private fun showLeaderboard() { val ..