Android(26)
-
[삽질기록] RAW H.264(AVC)에 MP4컨테이너 씌우기 #4 / FFmpeg 재빌드(64bits)
RTP로 전달된 h264, h265 파일을 차곡차곡 RAW데이터로 저장한 뒤, FFmpeg를 이용해서 Muxing해보니 정상적으로 mp4파일이 생성됐다. 재생도 잘 된다. 파일이 생성되지 않는 것 같아서 잠시 당황했었는데, LG G5에서 PC에 파일 전송모드로 연결했을 때 파일을 제대로 표시하지 못하는 문제가 있었다. File Explorer 앱을 이용해서 확인해보니 파일 생성 및 Muxing에는 문제가 없어서, 일단 기능구현이 완성된 후 고민하기로 했다. 2019년 8월부터 64bits를 지원하지 않는 앱은 구글 플레이에 등록 및 업데이트가 불가능하기 때문에, FFmpeg를 다시 빌드하기로 했다. 이전의 빌드 스크립트에서 수정해야 할 곳은 다음과 같다. 이전의 빌드스크립트는 [삽질기록] RAW H.26..
2019.06.10 -
[삽질기록] RAW H.264(AVC)에 MP4컨테이너 씌우기 #1
h264는 코덱이고 mp4는 컨테이너이다. 컨테이너와 코덱의 차이점에 대해서는 코덱이 뭔가요? (코덱과 컨테이너의 차이) by Michael Fitzer, 교양있는 교양채널에 잘 기술되어있으니 참조하도록 하자. 단순하게 말하면 h264로 압축된 데이터를 mp4파일로 만들기 위해서는, mp4컨테이너 파일을 만들어주기만 하면 된다. 몹시 심플한 얘기처럼 들리지만, 생각보다 산 넘어 산인 상황이 반복되고 있다. 이 내용을 기록해두면 언젠가 쓸모있을 것 같아서, 시간이 날 때마다 조금씩 기록하기로 했다. Android의 MediaCodec, MediaExtractor, MediaMuxer. 컨테이너를 생성하고, 컨테이너에 영상과 오디오 데이터를 집어넣는 과정을 먹싱(Muxing)이라고 한다. 먹싱에 대한 자세한..
2019.05.29 -
[GCM to FCM Migration 삽질기 #2] Migration 시작
2019/04/29 - [Programming/Android] - GCM to FCM Migration 정리 이 글은 GCM을 사용해서 푸쉬알람을 띄우던 기존의 Legacy코드를 FCM으로 통합할 때 작성하기 시작한 글로, 작업이 완료된 시점에 다시 작성한 글은 위를 참조해주세요. :) Migrate a GCM Client App for Android to Firebase Cloud Messaging페이지를 참조하여 Migration을 시작하도록 하자. 한글로 검색해보면 잘 정리된 문서가 많기는 하지만, 각자의 작업환경이 다르기 때문에 구글의 문서를 참조하는 쪽이 좀 더 수월할 수 있을 듯 하다. 나는 다른 분들의 글을 참조해서 작업하다가, 나의 작업 환경과 이상하게 달라서 구글의 문서를 찬찬히 따라 읽..
2019.04.24 -
구 버전의 NDK 설치(NDK 아카이브)
기존 프로젝트에서 NDK v14버전을 사용하고 있었는데, 별 생각없이 Android Studio를 켜서 YES를 누르다보니 빌드가 되지 않는다. 빌드 에러를 천천히 읽어보니 Gradle v3.3.1에서는 NDK v14를 지원하지 않으니, NDK를 업데이트 하라는 내용이었다. 별 생각없이 업데이트하고 났는데 왠걸. Gradle v3.3.1로 업데이트하고나니 Samsung에서 출시된 5.X버전의 안드로이드 기기에서 문제가 발생했다. KISA에서 배포하는 SEED CBC 암호화를 적용할 경우, 앞에서 몇 글자가 깨지는 문제였다. 뭐가 원인인지 한참을 찾다가 Gradle v3.2.1의 최소 targetSDKVersion은 28이기 때문에, 25로 지정된 targetSDKVersion은 무시된다는 내용이었다. d..
2019.04.12 -
[Android] NavigationMenu에 checkbox/switch 등의 UI 추가하기
[img](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAPAAhwDASIAAhEBAxEB/8QAHgABAAEFAQEBAQAAAAAAAAAAAAUDBAYHCAkCAQr/xABmEAABBAECAwMHBAwICgYFCgcBAAIDBAUGEQcSIRMUMQgVIkFTVJJRkZPRGSMyNlZhcXSBlbPUFhgzdaGy0tMJF..
2019.03.17 -
[Android] Parcelable in Kotlin
[스마이트]일단 뼈대는 완성했다.를 만들면서 Activity간에 Data Class를 전달해야 할 일이 발생했다. 사실 아이템과 관련된 내용들을 전체 Activity에서 사용하기 때문에, 굳이 Data Class를 전달하지 않고도 사용할 방법을 찾으려면 찾을 수는 있었겠지만… 예전에는 Serializable을 사용했던 걸로 기억하지만, Serializable은 내부적으로 많은 리플렉션과 다량의 오브젝트를 생성하기 때문에, 안드로이드 앱의 전체적인 성능을 낮추며 배터리를 소모하는 원인이 된다고 한다. (Parcelable과 Serializable 비교, Charles 님) 물론 Kotlin이 Java Wrapper는 아니지만, Serializable을 사용하더라도 크게 다르지는 않을 듯 싶다. - (Kot..
2019.03.06