앱 사용자를 위한 이름사용자가 단말기 내에서 앱을 구분하기 활용개발자를 위한 이름개발자가 개발중에 프로젝트를 구분하기 위해 활용현재는 사라지고 App Name과 통합 되었음안드로이드 시스템을 위한 이름안드로이드 시스템이 설치된 앱을 관리하기 위해 활용앱은 동일한 패키지
안드로이드에서는 뷰를 위젯이라고도 부른다뷰는 자신이 화면 어디에 그려져야 하는지에 대한 위치 정보가 없다뷰를 화면에 배치하는 무언가가 반드시 필요하다 → 뷰그룹여러 자식 뷰를 담을 수 있으며, 뷰는 반드시 뷰그룹에 포함되어야지만 화면에 그려진다.수평 혹은 수직으로 배치
뷰그룹 자체의 속성(뷰그룹 생성할 때 설정)과 뷰그룹이 자식뷰를 배치하기 위해 자식뷰에게 요구하는 속성(자식 뷰를 생성할 때 설정) 두 가지가 있다.자식 뷰들을 수직으로 배치할 것인지, 수평으로 배치할 것인지 결정자식 뷰들의 배치 위치를 지정한다.텍스트가 포함된 자식
안드로이드에서 제공하는 뷰는 매우 많다. 하지만 상속 관계만으로도 각 뷰들의 특징을 쉽게 이해할 수 있다.뷰의 대한 유일한 이름findViewById 함수의 인자로 id를 전달하면 해당 뷰를 참조할 수 있다.뷰 영역 내에 배경 이미지나 특정 색상을 설정자식 뷰 내의 여
안드로이드는 이벤트 기반의 프로그래밍을 제공함이벤트 기반이란? 어떤 사건에 따라 제어 흐름이 결정되어 동작을 처리함이벤트란? 디바이스가 감지한 유의미한 사건들터치 이벤트 발생터치 발생 영역에 해당하는 뷰를 최상단 루트 뷰부터 하위로 찾아나간다.터치 영역에 해당하는 뷰가
각종 너비, 높이 등의 치수 값을 리소스로 정의할 수 있다.PC 모니터에 나타나는 디지털 이미지들은 단색 점으로 구성되어 있다.디지털 이미지를 확대해보면 수많은 타일의 모자이크를 형성하며, 그 하나의 사각형이 바로 픽셀이다.픽셀 단위는 많이 사용되지 않고, 웬만하면 사
액티비티 실행 > ### 하나의 앱에서 다른 앱을 실행하는 상황 A앱에서 B앱을 킨다고 가정하자 이때 A앱에서 intent를 사용하여 B앱을 킨다 intent란? 컴포넌트 간에 통신을 위해 주고 받는 메시지 또는 데이터 덩어리 예제에서 생성되는 액티비티로 메시지를 전달
인텐트 내부에서 사용되는 멤버 변수단순히 직렬화된 데이터 덩어리지만, 앱과 액티비티 매니저, 패키지 매니저 등의 시스템 서비스 간에 약속된 의미 있는 정보를 채워넣으면서 인텐트라는 것이 된다.인텐트 정보의 주 목적은 특정 컴포넌트에 대한 실행 정보를 넣어서 해당 컴포넌
안드로이드 컴포넌트 중 액티비티는 내/외부적으로 가장 간섭을 많이 받는다.개발자는 액티비티 상태 변화에 따라 적절히 대비해야 하고, 어떤 환경에서도 정상적으로 동작시켜야함결국 안드로이드는 복잡한 액티비티의 상태 변화를 몇 가지로 분류하고, 그 분류에 따라 개발자에게 대
액티비티 간에는 서로 데이터를 주고 받아야하는 경우가 많다ex) 카톡에서 특정 동영상이나 사진을 첨부한다.1\. 액티비티 B를 실행2\. 액티비티 B로 인텐트를 전달함3\. 액티비티 B에서 getIntent 함수를 호출하고, 인텐트에 포함된 extra data를 수신s
메인 스레드와 작업 스레드 > #### 메인 스레드의 한계 개발자가 별도의 작업 스레드를 만들지 않는 이상, 구현하는 모든 코드는 메인 스레드에서 동작한다. 그러나 아쉽게도 모든 작업을 메인 스레드에서 처리할 수는 없다.
메인 스레드와 작업 스레드의 역할 분담에 대한 구현을 보다 쉽게 해주는 대표적인 클래스앱 하나를 구현하면서 꼭 한 번쯤은 사용될 만큼 활용도가 높다.1\. AsyncTask는 총 다섯 가지 재정의 가능한 함수로 구성. dolnBackground()는 반드시 구현해야함2
용도전화가 걸려오거나 배터리 부족, 네트워크 끊어짐 등과 같은 일들이 발생할 수 있다.이런 상황은 설치된 앱이나 실행 중인 앱이 반드시 알아야 할 매우 중요한 정보가 많다.\-> 전화가 걸려온다면 전화를 받는 앱이 실행해야하고, 배터리가 부족하면 실행중인 앱들은 중요한
정적/동적 리시버는 방송을 시작할 때 전달하는 인텐트 플래그에 따라 동작하지 않을 수 있다.한번이라도 앱이 실행되어야만 정적 리시버가 동작할 수 있도록 한다앱이 실행된다는 것은 안드로이드 기준에서 액티비티 실행을 의미하고, 사용자 입장에서는 홈에서 앱 실행을 의미한다.
눈에 보이지 않고 백그라운드에서 동작한다. 이름 그대로 누군가에게 특정 기능을 제공하는 컴포넌트서비스를 사용하지 않고 초당 1씩 카운팅하는 기능을 구현한다고 하자.이떄 메인 스레드에서 5초 이상 작업을 하면 ANR이 발생하게 된다.문제를 해결하기 위해 작업 스레드를 사
인텐트 서비스 스타티드 서비스의 파생 클래스 클라이언트가 startService과 더불어 인텐트를 전달할 때 인텐트 단위별로 순차적으로 동작함 여러 클라이언트에서 동시에 인텐트가 전달되더라도 순서대로 하나씩 처리한다 > ## 인텐트 서비스를 이용하는 카운트다운 서비스
안드로이드에서만 지원하는 파일 관련 함수들액티비티 등의 컴포넌트는 Context 클래스를 상속받으며, 이 클래스에 파일 관련 함수들이 구현됨java에서 제공하는 java.io의 클래스를 사용할 수 있다. 예로, FileInputStream, FileOutputStrea