Android(4)
-
[Android]가비지 컬렉터(Garbage collector)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 C/C++을 주로 쓰던 시절, 메모리 관리를 수동으로 해주어야 했습니다. 할당을 해주면, 사용이 끝난 후 적절한 시점에 해제를 해주어야 했죠. Native 언어다 보니 개발자가 관여하는 부분이 많았습니다. 이에 반해, C# 같은 Managed 언어를 사용하면서 메모리 관리 방식이 바뀌게 되었습니다. 정확히는 신경 쓰는 방식이 바뀌었다는 게 맞겠네요. C#, Java 같은 Managed 언어는 메모리를 자동으로 관리해 줍니다. 바로 가비지 컬렉터를 통해서 말이죠. 본래 저는 Unity를 주력으로 사용하여 C#이 메인 언어이지만, C#의 가비지 컬렉터에 관해서 글을 쓰기 전에 Java/Android의 가비지 컬렉터에 대해 먼저 살펴보려 합니다. ..
2022.04.11 -
[Android]Android 앱 간 데이터 공유(ContentProvider와 ContentResolver)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 [Android] Android 4대 컴포넌트 중 Content Provider(콘텐츠 제공자)을 정리하면서, 앱 간 데이터 공유에서 좀 더 자세히 다뤄보겠다고 한적 있습니다. 오늘은 Android의 앱들 사이에서 데이터 공유를 어떻게 하는지 알아보려 합니다. 안드로이드에서 앱간에 데이터를 공유(전달받을 때)할 때가 있기 때문입니다. 연락처 앱의 연락처를 받아온다거나가 그러한 경우죠. 앱들 간에 데이터를 공유하는 방법은 다양합니다. 서버를 이용하는 방식, DB, BroadcastReceiver 등등… 이번에는 그중에서도 'ContentProvider'와 'ContentResolver'를 이용하는 방식에 대해 알아보겠습니다. 참고로 코딩 방법이..
2022.04.11 -
[Android]JVM, JRE, JDK
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 안드로이드를 처음 접하는 사람들, Java를 처음 접하는 사람들은 JVM, JRE, JDK에 관하여 많이들 헷갈려한다고 합니다. 풀네임을 알면 사실 어려울 게 없지만, 처음부터 풀네임을 유추하는 사람이 몇 명이나 될까요? 오늘은 이 세 가지가 각각 어떤 것인지 알아보려 합니다. JVM Java Virtual Machine의 약자. 해석하면 자바 가상 머신입니다 다. 이 녀석은 Java소스 코드로부터 만들어지는 바이너리 파일의 바이너리 코드를 읽고 바이너리 코드가 정상 작동하는지 검증하고 검증된 바이너리 코드를 실행해서 프로그램을 구동 위 과정을 통하여, Java 바이너리 코드가 실행될 수 있는 런타임 환경을 제공하는 규격입니다. 이름에서 볼 ..
2022.04.10 -
[Android]Android 4대 Component(안드로이드 4대 구성 요소)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 안드로이드 앱을 만들 때 주로 사용되는 Activity, Service, ContentProvider, BroadcastReceiver라는 4개의 컴포넌트가 있습니다. 이들이 사실상 거의 모든 구성요소라고 해도 과언이 아닐 거라 생각합니다. Unity native 관련 작업을 할 때 필요에 의해 알아본 간단한 개념만 살펴보도록 하겠습니다. Intent(인텐트) 위 그림에서 보면 가운데 존재하는 Intent라는 것이 있습니다. 간단히 말하면 컴포넌트 간의 메시지를 주고받는 메시징 오브젝트라고 생각하면 됩니다. 컴포넌트끼리 전활 될 때에는 Intent를 거쳐서 전환되게 됩니다. 그렇기에 전환 시 진행할 작업이나 데이터 등을 함께 전달하기도 합니다..
2022.04.10