Dev 311

MediaCodec DuqueueOutputBuffer Error / 미디어코덱 에러

MediaCodec DuqueueOutputBuffer Error / 미디어코덱 에러 현상 : 녹화 기능을 구성하고 녹화를 저장할때 발생하는 에러 모델 : 갤럭시 TabA10.1 (2016) - SM-T580 (SM-T815 외 다른 기종은 괜찮음)OS버전 : 6.0.1 java.lang.IllegalStateExceptionat android.media.MediaCodec.native_dequeueOutputBuffer(Native Method) at com.app.ui.media.MediaEncoder.drain(MediaEncoder.java:334) at com.app.ui.media.MediaEncoder.run(MediaEncoder.java:150) at java.lang.Thread.run..

Dev/Error 2017.12.13

MediaRecorder Stop() Error

리뷰 기능 구성 중 - MediaRecorder Stop() Error MediaRecorder 을 통해서 화면의 스크린 캡처를 저장하려는 중 MediaRecorder.stop() 메서드를 실행할때 뜨는 오류.-> 현재 Lenovo PHAB2 Pro (PB2-690M) 에서 발생, Samsung 주력(?) 모델 및 LG 주력(?) 모델에서는 무사히 넘어감. java.lang.RuntimeException: stop failed.at android.media.MediaRecorder.stop(Native Method) 해결책https://github.com/saki4510t/ScreenRecordingSample

Dev/Error 2017.12.12

키가 같은 APK 는 공식 플레이스토어에서 업데이트가 가능하다.

키가 같은 APK 는 공식 플레이스토어에서 업데이트가 가능하다. Q : 사인된(키가 같은) apk를 개인적으로 배포해서 설치하면 나중에 플레이스토어에 업데이트 할 경우 업데이트가 가능한가요?A : 사인된 APK 를 비공식 루트로 배포하고 나중에 공식 앱의 버전이 비공식 루트로 배포된 앱보다 높으면 플레이스토어에서 업데이트가 가능하다

Dev/Android 2017.12.11

Android 공부

키워드 : 멀티 다운로드 구현Like 넷플릭스 동영상 다운로드, 리디북스 책 다운로드 등등.... 여러개의 다운로드 할 파일을 비동기적으로 다운로드 - 처음 생각은 Service 를 이용해서 다운로드 구현하기(Background 에서 돌기 때문에 앱 종료 후에도 다운로드 지속)- 조언들은 건, 다운로드에 무언가 별도의 처리가 없다면 DownloadManager 이용!! DownloadManager 로 작성 중... #Progressbar, #Download, #Service, #Android

Dev/Android 2017.12.08

지금은 공부중..... (백그라운드 스레드)

백그라운드 스레드 - Handler, HandlerThread, AsyncTask AsyncTask- AsyncTask 에는 3가지 파라미터 타입 (Params, Progress, Result) 이 있는데, 모두 Void 인 경우는 권장되지 않는다.- 액티비티 종료 시점과 AsyncTask 종료 시점의 불일치로 인한 문제가 생길 수 있다.- Fragment 에서 Back 키 사용으로 인한 Fragment 와 Activity 분리되면 Fragment 의 getContext(), getActivity() 가 null 이 되는데 onPreExecute() 와 onPostExecute() 에서 NullPointerException 이 발생할 수 있다.- 병렬 실행시 doInBackground() 의 실행 순서가..

Dev/Android 2017.11.28

HandlerThread 사용하기

HandlerThread 기본적으로 Thread 를 사용하기 위해서 Looper 를 생성해줘야 하는데, HandlerThread 를 이용하면 Looper 를 자동으로 가지고 있는 클래스를 제공한다. HandlerThread handlerThread = new HandlerThread("HandlerThread"); handlerThread.start(); Handler handler = new Handler(handlerThread.getLooper());Handler handler = new Handler(handlerThread.getLooper(), Handler.Callback);handler.sendEmptyMessage(0);.... HandlerThread 객체를 생성하고 start() 를 ..

Dev/Android 2017.11.26

Thread 중복 사용은 성능 나쁜 디바이스한테 안돼!

AsyncTask 와 TimerTask를 동시에 사용중이던 앱을 유지보수 하면서 좋은 환경의 디바이스에는 문제가 되지 않은것들이 성능이 떨어지는 디바이스에서는 나오기 시작했다. 현상 :G패드2 에서 각종 이슈가 나왔는데 오늘은 AsyncTask 와 TimerTask 를 중복으로 사용중이던 코드에서 문제가 발생했다. AsyncTask 를 돌리면서 내부에서 4초간의 TimerTask 를 같이 실행하는 부분이 있었다. 측정시간은 10초 이상으로 나왔다. 즉, 괜찮은 성능의 디바이스에서는 4초가 돌아갔었는데, G패드2 에서는 10초 이상이 걸렸다. 현재의 이슈들은 2016년형 갤럭시탭(테스트 기기)에서는 전혀 문제가 되지 않았었는데, 사용중이던 고객의 디바이스에서는 발생한 문제였다. 결론 : 그래서 해결책으로는..

Dev/Android 2017.11.23