1. Intent란? 안드로이드 앱을 구성하는 4대 컴포넌트는 다음과 같습니다. Activity Broadcast Receiver Content Provider Service 컴포넌트 클래스는 시스템이 생성해서 실행하는 클래스입니다. 그래서 컴포넌트를 실행하고 싶다면 시스템에 제 의도를 담은 메시지를 전달해 컴포넌트 실행을 요청해야 합니다. 이를 위해 Intent 객체가 사용됩니다. 다음은 MainActivity에서 명시적 인텐트를 이용해 SubActivity 실행을 요청하는 코드입니다. class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedIn..
브로드캐스트 수신자(Broadcast Receiver) 브로드캐스팅(Broadcasting)이란 단어는 네트워크에서 많이 사용되는 단어다. 비슷하게 안드로이드에서 브로드캐스팅은 메시지를 여러 객체에 전달하는 걸 말함. 즉, 내가 만든 앱이 다른 앱으로부터 메시지를 전달받도록 하는 것. 예를 들면, 폰에 기본적으로 깔려있는 SMS(메시지) 앱으로부터 메시지 정보를 전달받는다던가, 카메라 앱으로부터 정보를 받아 내가 만든 앱에서 폰 카메라를 사용할 수 있도록 한다던가,, 등등 브로드캐스트 수신자를 등록하기 위해선 BroadcastReceiver 클래스를 상속받아 정의하면 되고, 이때, onReceiver() 메서드를 통해 브로드캐스트 메시지를 전달받을 수 있다. 하지만, 시스템의 모든 메시지를 받을 수는 없..
서비스( Service ) - 백그라운드 프로세스 백그라운드에서 작동하는 프로세스를 Service라고 부른다. Service와 Activity간에는 상호 데이터 교환이 가능하다. 이때, Service와 Activity간 데이터 교환을 위해선 Intent 객체가 사용된다. (Intent가 안드로이드 표준 DTO 객체 같은데 ?) 안드로이드 앱에서 Service를 등록하려면 Service 클래스를 상속받는 클래스를 만들면 된다. 메인 Activity에서 Service로 데이터를 보낸 후, 다시 Service에서 메인 Activity로 데이터를 응답하는 예제를 만들어보자. public class MainActivity extends AppCompatActivity { @Override protected voi..
Fragment 안드로이드에서 하나의 화면 단위는 Activity다. 그리고 Activity간 화면 전환을 하고싶다면 Intent 객체를 사용하면 된다. 그런데 Activity간 화면 전환은 시스템 단에서 이뤄지기 때문에 무겁다. 하나의 Activity 안에서 화면을 부분적으로 분할해서 사용하면 훨씬 가볍고 알차게 쓸 수 있지 않을까? 라는 아이디어에 착안해 나온 것이 Fragment다. 아래는 Activity간 화면 전환할 때의 동작 방식과 Fragment간 화면 전환할 때의 동작 방식을 나타낸 그림이다. Fragment를 화면에 추가하는 방법 일관성을 갖추기 위해 Activity의 방식과 대부분 같다고 생각하면 된다. Activity가 하나의 XML 레이아웃 파일과 Activity Java 파일로 동..
당연히 안드로이드 앱은 사용자의 화면 터치에 대한 이벤트를 처리할 수 있어야 한다. 손가락으로 화면을 터치하면 터치 이벤트(Touch Event), 버튼이나 키패드를 누르면 키 이벤트(Key Event) 여러 이벤트들이 있는데 당연히 터치(Touch Event)가 가장 많이 사용되고 가장 중요하다. 이벤트 등록을 위해선 다음과 같은 이벤트 리스너 인터페이스의 구현이 필요하다. View.OnTouchListener : boolean onTouch(View v, MotionEvent event) View.OnKeyListener : boolean onKey(View v, int keyCode, KeyEvent event) View.OnClickListener : void onClick(View v) View..
[Mobile/Android] Toast - 간단한 메시지를 잠깐 보여주었다가 없어지는 View
2019.10.20
Toast는 간단한 메시지를 잠깐 보여주었다가 없어지는 View로, 앱 위에 떠 있는 View입니다. 대화상자와 함께 사용자에게 필요한 정보를 알려주는 역할을 하는 대표적인 위젯이다. Toast 메시지를 만들어서 보여주는 전형적인 방법은 아래와 같다. Toast.makeText(Context context, String message, int duration).show(); Toast 메시지의 위치나 모양을 바꾸고 싶다면 아래의 메서드를 사용한다. public void setGravity(int gravity, int xOffset, int yOffset) public void setMargin(float horizontalMargin, float verticalMargin) Button 객체를 클릭했을..
avtivity가 한 화면을 구성하는 단위이고, 화면에 버튼과 같은 위젯들을 추가하기 위해선 위젯들이 어떻게 배치되는지 알아야 합니다. 그러니까 Layout은 아주 기본적이면서 아주 중요하겠죠? 🙂 안드로이드에서 제공하는 레이아웃은 대표적으로 5가지가 있습니다.(이것들만으로도 대부분의 화면을 만들 수 있습니다.) 제약 레이아웃(ConstraintLayout) : 제약 조건을 사용해 뷰(View)를 배치한다. 리니어 레이아웃(LinearLayout) : 세로 또는 가로방향으로 View를 배치한다. 상대 레이아웃(RelativeLayout) : 다른 View와의 상대적인 위치를 이용해 배치한다. (이걸 확장시킨게 제약 레이아웃) 프레임 레이아웃(FrameLayout) : 가장 상위에 있는 하나의 View(또..
안드로이드 프로그래밍의 표준 IDE는 Android Studio이다. Android Studio로 프로젝트를 생성했을때, 프로젝트 구조는 다음과 같다. Android Studio를 설치한 후 가장 먼저 가상 디바이스(애뮬레이터)를 설치해야 한다. 웹 UI를 만든다면 웹 브라우저를 통해 바로바로 확인이 가능하다. 그럼 안드로이드 UI는 어떻게 확인할 수 있을까? 안드로이드 UI를 확인하는 방법은 두 가지가 있다. 실제 디바이스(스마트폰)를 USB로 연결하여 실제 단말에서 확인하는 방법 IDE에서 제공하는 가상 디바이스를 이용해 확인하는 방법 1번이 정확하겠지만, 상당히 번거롭다. 간단히 2번을 통해 확인하는게 편리하다. 설치하는 방법은 아래 그림의 [Open AVD Manager]를 클릭한다. 그런 다음 ..