모바일 프로그래밍

안드로이드 특징

-핵심커널은 리눅스로 구성되어 있다.

-개발언어는 java언어를 사용한다.

-SDK에서 많은 라이브러리를 포함하고있어 개발에 용이하다.

오류메세지 종류

-You may want to manually restart adb the Devices view

->프로젝트 다시실행

-emulator-5554~ ->먼저 모든 AVD를 닫은 후에 다시 프로젝트를 실행

-Could not get wglGetExtensionString.ARB-> 경고수준, 무시해도 됨

-Launch Cancelled ->AVD를 그냥 두고, 다시 프로젝트를 실행

@override

-이노베이션의 하나

(이노베이션은 컴파일러에게 추가적인 정보를 주는 것)

-메소드가 부모클래스의 메소드를 재정의하였다는 것을 나타냄

안드로이드 애플리케이션의 실행이 시작되는 곳

-안드로이드에는 main()이 없다.

-액티비티별로 실행된다.

-액티비티중에서는 onCreate() 메소드가 가장 먼저 실행

*onCreate()----------------------------------------

액티비티가 생성되는 순간에 딱 한번 호출

모든 초기화와 사용자 인터페이스 설정이 여기에 들어간다.

--------------------------------------------------

Import class 추가 [Alt]+[Enter]->Import class 출력

줄번호 넣기 show Line Number

자동 라인 정렬 [Ctrl]+[Alt]+L

View

-안드로이드 화면에서 실제로 사용되는 것은 모두 View클래스에서 상속받음, ‘위젯’ 이라고도 부름 ex)버튼, 텍스트 뷰, 에디트 텍스트, 라디오 버튼...

id 속성

-모든 위젯의 아이디를 나타냄

-android: id=“@+id/btn1”

layout_width/layout_height

-match_parent(=fill_parent):자신의 부모에 폭이나 넓이를 맞춘다.

-wrap_content:자신의 폭이나 높이를 자신의 안에 글자가 꼭 들어갈 정도로 맞춘다.

background속성

-주로 #RRGGBB로 설정

*AA는 투명도 #AARRGGBB  00(투명) FF(불투명)

padding 속성

-위젯의 경계선으로부터 위젯 안의 내용물이 좀 떨어지도록 설정

layout_margin 속성

-위젯들끼리 사이를 벌려줌

visibility속성

-위젯을 보일것인지 여부를 결정

-visible: 보임

-invisible: 자리확보, 안보임

-gone: 자리확보안함, 안보임

enabled, clickable

-enabled: 위젯의 작동 여부

-clickable: 클릭 or 터치

-둘다 True or false로 설정

rotation

위젯을 회전시켜 출력 *Android 3.0부터 가능

EditText

입력이 가능한 텍스트

여기에 입력하시오.

레이아웃:화면구성

-레이아웃 자체를 보이기 보다는, 레이아웃 안에 존재하는 위젯을 배치하기 위한 용도가 더 주요한 목적

-레이아웃 중에서 가장 많이 사용되는 것은 리니어레이아웃

-안드로이드에서는 다양한 화면 크기를 가지는 장치들을 지원

-화면 크기가 통일되어 있지 않아서 절대적(고정)인 화면 위치를 사용하여 뷰를 배치하는 것 보다 상대적으로 뷰를 배치하는 것이 바람직하다.

레이아웃의 대표적인 속성

-orientation : 레이아웃 안에 배치될 위젯의 수직 또는 수평방향을 설정

-gravity : 레이아웃 안에 배치될 위젯을 좌측, 우측, 중앙 등 정렬할 방향을 설정

-padding : 레이아웃 안에 배치될 위젯의 여백을 설정

–layout_weight : 레이아웃이 전체 화면에서 차지하는 공간의 가중 값을 설정하는데, 여러 개의 레이아웃이 중복될 때 주로 사용

-baseLineAligned : 레이아웃 안에 배치할 위젯들을 보기 좋게 정렬

레이아웃의 종류

-LinearLayout

레이아웃의 왼쪽 위부터 아래쪽 또는 오른쪽으로 차례로 배치

자식들을 수직이나 수평으로 배치

-RelativeLayout

위젯이 자신이 속한 레이아웃의 위/아래/왼쪽/오른쪽 위치를 지정하여 배치하거나, 다른 위젯으로부터 상대적인 위치를 지정

자식들을 테이블 형태로 배치

-GridLayout

테이블 레이아웃과 비슷하지만, 행 또는 열을 확장하여 다양한 배치 가능

자식들을 바둑판 모양으로 배치

-FrameLayout

위젯들을 왼쪽 위에 일률적으로 겹쳐서 배치하여 중복해서 보이는 효과를 낼 수 있다.

배치 후 사왕에 따라 필요한 위젯을 보이는 방식에 주로 활용

모든 자식들을 좌측 상단에 겹치게 배치

orientation 속성

horizontal: 수평

vertical: 수직

gravity 속성

x축과 y축 상에 자식을 어떻게 배치할 것인지를 지정

위, 아래, 오른쪽, 왼쪽, 중앙

baselineAligned 속성

false로 설정되면 자식 뷰들의 기준선을 정렬하지 않는다.

크기가 다른 위젯들의 정렬을 보기 좋게 설정

디폴트 값은 “true”

gravity와 layout_gravity

gravity는 자식(위젯)을 어디에 배치할 것인가?

layout_gravity는 부모(레이아웃)의 어디에 배치할 것인가?

layout_weight 속성

레이아웃의 비율?...가중치

Relative Layout 속성

렐러티브레이아웃(RelativeLayout)은 상대레이아웃이라고도 부르는데, 이름처럼 레이아웃 내부에 포함된 위젯들을 상대적인 위치로 배치

TableLayout 속성

-<TableRow>와 함께 사용되는데,<TableRow>의 개수가 바로 행의 개수가 된다.

행:가로, 열:세로

-layout_span:열을 합쳐서 표시하라는 의미

ex)layout_span=’2‘: 현재 셀부터 2개의 셀을 합쳐서 표시

-layout_column: 지정된 열에 현재 위젯을 표시하라는 의미

stretchColumns: <TableLayout>자체에 설정하는 속성으로 지정된 열의 폭을 늘리라는 의미

(열 번호는 0번부터)

Grid Layout 속성

-테이블레이아웃에서 좀 어려웠던 행을 확장하는 기능도 간단하게 할 수 있어서 유연한 화면 구성에 적합

-행, 열을 지정하는 것은 상당히 직관적

-Android 4.0부터 지원