1. 프로젝트 생성
* 프로젝트 생성시 Package Name 은 기본 App ID 가 되며, 자신만의 유일한 이름으로 지어야 한다.
* Minimum SDK 는 앱이 지원하는 최하위 아느로이드 버전이며, 해당 버전 이하의 안드로이드에서는 설치되지 않는다.
* Minimum SDK 를 선택할 때에는 앱의 핵심 기능과 지원할 디바이스의 범위를 함께 고려해야 한다.
2. Activity
- 안드로이드 애플리케이션을 구성하는 기본 단위이며, 사용자와 상호 작용하는 UI를 제공
* Activity 는 사용자에게 보여지는 단일 화면으로 사용자와 상호 작용한다.
* Activity 는 안드로이드 Application 의 기본 구성 요소이다.
* Activity 는 시스템으로부터 애플리케이션이 시작되는 진입점이 될 수 있다.
- Activity 파일을 만들고 나면, AndroidManifest.xml 파일에 등록되었는지 확인한다.
3. Intent / 화면 전환
- 안드로이드에서 앱 구성 요소 간의 작업을 요청할 수 있는 메시지 객체
- 액티비티 시작 : Activity 의 새 인스턴스를 시작하기 위해 startActivity() 메소드를 사용하여 Intent를 전달
- 서비스 시작 : Service 를 시작하기 위해 startService() 메소드를 사용하여 Intent를 전달
- 브로드캐스트 전달 : 브로드캐스트는 모든 앱이 수신할 수 있는 메세지로, sendBroadCase(), sendBroadCastOrderd(), senedStickyBroadCast() 메소드에 Intent를 전달하여 BroadCase 를 전달
- View 객체에 이벤트리스너를 설정하는 방법 2가지
- 코드에서 View 객체에 setOnClickListener() 메소드를 이용하는 방법
- XML 에서 메소드를 등록하는 방법
package com.example.lotto
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 코드에서 View 에 이벤트 리스너를 설정
// Kotlin 에서는 Android Extension 덕분에 findViewById 없이 바로 접근 가능하다
// 버튼과 같은 View 가 클릭되었을때 실행될 listener 를 등록하는 메소드가 setOnClickListener 이다
button3.setOnClickListener {
// MainActivity 를 시작하는 Intent 를 생성한다.
val intent = Intent( this@MainActivity, ConstellationActivity::class.java )
// Intent 를 사용하여 Activity 를 시작한다.
startActivity(intent)
}
}
/**
* xml 에서 참조할 수 있는 메소드 정의
*/
fun goName(view: View) {
val intent = Intent(this@MainActivity, NameActivity::class.java )
startActivity(intent)
}
}
- Intent 명시적호출 / 암시적호출
- 명시적호출 : 시작할 기본 구성 요소( Activity, Service ) 등의 이름을 정확하게 알고 있을 때 사용
- 암시적 호출 : 시작할 기본 구성 요소( Activity, Service ) 등의 이름을 명확하게 적지는 않지만, 일반적인 작업 유형을 선언하여 그 작업을 수행할 수 있는 구성 요소를 호출
// 암시적 인텐트를 사용해 웹브라우저를 호출
fun callWeb(view: View) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.naver.com"))
startActivity(intent)
}
/**
Activity A -> Android System -> Activity B
1. Acivity A 에서 ACTION_VIEW 를 Action 으로 Data 를 http://www.naver.com 으로 Intent 생성 전달
2. 안드로이드 시스템은 Intent 의 Action/Data 를 분석, 실행할 앱을 검색
3. 해당 Intent 를 처리할수있는 앱이 시작되면 onCreate() 메소드가 호출되며,
Activity B는 자신이 받은 Intent 와 데이터를 확인할 수 있다.
*/
- Intent 구성요소
- Component Name : 명시적인지 암시적인지 구분
- Action : 수행할 작업을 의미
- Data : Action 에 따라 필요한 Data를 함께 보낼 때 사용
- Category : 인텐트를 처리하는 구성 요소에 대한 분류
- Extras : 작업을 수행하기 위해 필요한 추가 정보 / Key , Value 타입의 정보 전달 / Bundle 객체로 전달 할 수 있음.
- Flags : Intent 에 대한 Meta 정보.
* Intent 는 구성 요소 간의 작업을 요청할 수 있는 메시지 객체이다.
* Intent 의 유형에는 명시적, 암시적 유형이 있다.
* 같은 앱 내에서 화면 전환을 위해서는 명시적 Intent 를 생성하고 startActivity()함수를 사용한다.
* 명시적 Intent 를 생성하는 방법은 실행될 Component Name 을 지정하는 것이다.
* 암시적 Intent 는 Component Name 은 없고, 대신 작업 유형을 나타내는 Action 을 지정한다.
* 암시적 Intent 호출 시의 Action 과 Data 정보를 기반으로, 안드로이드 시스템은 장치 내에 설치된 적합한 앱을 실행시킨다.
'IT > Android(비공개)' 카테고리의 다른 글
[Android] View / Theme (0) | 2020.03.05 |
---|---|
Android-studio / svn 연결 (0) | 2020.03.04 |
4. Kotlin(코틀린)_3 (0) | 2020.03.02 |
3. Kotlin(코틀린)_2 (0) | 2020.02.26 |
2. Kotlin(코틀린)_1 (0) | 2020.02.20 |
1. Android 기본 (0) | 2020.02.07 |
Android 재시작 (0) | 2020.02.07 |