전체 글
-
Android Camera 사용하기회사 생활/여권 NFC (CameraX + OCR + NFC) 2023. 7. 29. 14:39
회사에서 안드로이드 Camera를 이용해서 하는 프로젝트들이 너무 많아져서 공부할 필요성을 느껴 이참에 사용법을 공부해보려고 한다. 카메라를 사용하는 방법은 아주 크게 2가지 정도 있다. 1. Camera 앱을 사용하는 방법 2. Camera api 사용하는 방법 (Camera1 api, Camera2 api, CameraX api) 첫번째 방식은 이미지만 받을 경우 제일 편한 방식이다. 하지만 카메라 화면을 커스텀하게 하거나 카메라의 화면을 실시간(preview callback)으로 화면 정보를 가공해서 사용 못하는 등의 제한이 있다. 1번 방법은 카메라에 guide line을 커스텀하게 만들고 이미지 preview를 실시간으로 서버와 통신해서 사용해야 하는 나에게는 별로 필요는 없지만 공부한다는 마음..
-
Android Camera : (OutOfMemoryError 오류)회사 생활/기타 지식들 2023. 7. 17. 17:27
안드로이드 Camera에서 실시간으로 데이터를 받고 전송을 하는 것을 하다보니 처음 OOM이라는걸 만나봤다. 공부만 해봤지 실제로 만나 본건 처음이라 많이 어색하지만 기쁘기도 하다. 카메라에서 가져온 이미지를 가져오는 과정에서 너무 많이 Heap 메모리를 사용하는 것 같다. ... 생략 ... final int[] count = {0}; mCamera.setPreviewCallback((data, camera) -> { Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { // 3초 후에 실행할 작업을 여기에 작성합니다 // ... if (count[0] < 3) { // YUV ..
-
Intent (인텐트) 와 Bundle안드로이드 학습/Android 기술면접 대비 2023. 7. 11. 17:11
차례 : 1) Intent란2) 2가지 Intent 타입 : Explicit Intents (명시적), Implicit Intents (암시적).3) IntentFilter4) PendingIntent5) Bundle 이란?1) Intent란?Intent는 컴포넌트(Activity, Service, BroadCast Receiver)간에 통신을 하기 위한 '메시지 객체' 입니다. Intent 구성 요소 사이의 통신을 하는 여러가지 방식이 있지만 기본적인으로는 3가지로 나눌 수 있습니다. Intent 사용되는 곳: Activity: startActivity(Intent), startActivityForResult(Intent, requestCode)Service: startService(Intent), ..
-
안드로이드 Bound Service 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 7. 3. 18:26
서비스에 관한 설명 : https://from-android-to-server.tistory.com/38 먼저 Bound Service를 4가지 이유때문에 사용된다 컴포넌트 간의 직접적인 통신: Bound Service는 서비스와 클라이언트 컴포넌트(예: 액티비티) 간의 직접적인 통신을 가능하게 합니다. 클라이언트는 서비스 인스턴스에 직접 바인딩하여 서비스의 메서드를 호출하고 데이터를 전달할 수 있습니다. 이를 통해 클라이언트는 서비스의 기능을 직접 활용하고 조작할 수 있습니다. 공유 데이터 또는 상태 유지: Bound Service를 사용하면 여러 클라이언트 컴포넌트가 하나의 서비스에 바인딩되어 동일한 서비스 인스턴스를 공유할 수 있습니다. 이를 통해 데이터나 상태를 서비스 내부에 유지하고 공유할 수 ..
-
AAC - Databinding안드로이드 학습/Android 기술면접 대비 2023. 6. 21. 11:03
기존에 DataBinding을 사용하면서 별 사용법이 특별할게 없다고 생각해서 따로 공부할 필요성을 느끼고 있지는 못했다.하지만 앱 아키텍처를 학습하면서 여러 예제를 봤을때 단순하게 데이터를 xml에서 처리해주는 것 말고도 여러가지 방식으로 많이 사용하는 것을 보았다. 예를 들어 RecyclerView에 list를 넣어주는 부분도 있었고, Toast Message도 BindingAdapter을 활용해서 넣어주는 것을 보았다. DataBinding 활용법을 좀더 깊이 학습한다면 내가 지금 학습하는 앱아키텍처에 적용해볼 수 있고 여러가지 활용도 면에서 좋을 것 같아서 제대로 학습해보리고 했다. 1. DataBinding이란?DataBinding은 JetPack - AAC(Android Archictectu..
-
안드로이드 Context안드로이드 학습/Android 기술면접 대비 2023. 6. 16. 10:55
차례: 1. 안드로이드 context란 2. Context가 필요한 이유 3. Application Context & Activity Context 4. Context 얻는 방법 1. Android Context 란 어플리케이션의 현재 상태를 갖고 있음. Activity와 Application의 정보를 얻기 위해 사용 Context는 시스템 서비스에서 제공하는 API (Resource, Database, Shared preference) 등의 시스템 자원에 접근할 수 있게 해줌. Context는 새로 생성된 객체가 지금 어떤 일이 일어나고 있는지에 대한 정보(어플리케이션 패키지 이름, 리소스 정보) 를 알 수 있도록 합니다. (예 : getPackageName(), getResource()) Activi..
-
MVVM 패턴 + databinding + Room DB + recyclerview 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 6. 15. 11:04
이번 예제는 MVVM 패턴 + AAC(databinding + Room DB) + recyclerview를 적용시켰다. 아래에 있는 링크로 MVVM + Databinding 예제와 Room DB 예제를 먼저 학습한다면 이해하기 더욱 쉬울듯 싶다. 참고 : 1. MVVM 예제 2. Room 예제 해당 예제는 사람 이름과 무력 지력을 추가 시키면 Room DB에 데이터가 들어가고 해당 내용을 자동적으로 ViewModel과 LiveData를 통해 데이터를 업데이트 하는 방식으로 구성해보았다. 아래 그림에서 Remote Data Source만 제외된 예제라고 볼수 있다. 결과 스크린샷 프로젝트 구성 Dependency 추가 1. build.gradle (app) 2. build.gradle (project) R..
-
(AAC) Room DB안드로이드 학습/Android 기술면접 대비 코드 2023. 6. 14. 10:59
차례: 1. Room 라이브러리란? 2. SQLite과 Room 3. 기본 구성요소 4. 코드 예제 1. Room 라이브러리란? Room 라이브러리는 JetPack이라는 구글에서 제공하는 안드로이드 컴포넌트 라이브러리 모음중에 AAC에 속하는 라이브러리이다. (참고: 링크) 스마트폰의 Local DB에 데이터를 저장하기 위해 사용하는 라이브러리이다. 원래 Room 데이터베이스 라이브러리가 나오기전에는 SQLite를 사용해서 내부 DB를 만들어 데이터를 저장했었다. 2. SQLite과 Room 기존에 사용해왔던 SQLite 몇가지 단점들이 존재한다. 생각해보면 잘쓰고 있었으면 굳이 다른게 나올 이유가 없긴 하다 Query의 유효성 검사 기능을 제공하지 못했던 점 Scheme가 바뀔 때 자동적으로 업데이트를..