개발모음집

[안드로이드 프로그래밍] Day01 ~ Day02 본문

Android

[안드로이드 프로그래밍] Day01 ~ Day02

void 2016. 6. 3. 11:54


01 안드로이드란?

안드로이드는 구글에서 만든 스마트폰용 운영체제이다.

옛날에는 표준 자바를 휴대 단말에서 사용할 때 가상머신의 성능 문제로 느리다는 평가를 많이 받았지만

안드로이드는 'ART'라는 런타임으로 빠른 속도의 런타임을 이용


03 첫 번째 애플리케이션

일반적으로 시작점이 되는 것으로 생각되는 main 함수가 없는 것을 보니 안드로이드에서는 main 함수가

아닌 다른 함수가 시작점이 되는 것으로 생각되는 main함수가 없는 것으로 추측할 수 있다.


Rendering Problems: [Design] 탭을 선택하여 단말 모양의 화면이 보일 때 표시되는 에러


자동 import 설정

File - Settings - Editor - General - Auto Import - Oprimize imports on the fly 와 add unambiguous .... 체크



03-1 프로젝트 만들기


프로젝트: 앱을 만드는 하나의 단위

Application name: 앱의 이름, 프로젝트 이름

Company Domain: 

Package name: 앱을 구분하는 구분자, 전 세계에서 고유한 이름이어야 함

*윈도우계정이나 폴더명이 한글이면 오류가 생길 수 있다. 영문으로 만들기

예제를 할 때는 Empty Activity로 설정하자.


애뮬레이터는 컴퓨터 사양이 많이 필요, 그래서 실제 핸드폰으로 연동하여 실행하는걸 권장


 .java: 소스코드, .xml: 레이아웃


처음 프로젝트를 생성했을 때 설정해줘야하는 두 가지

File - Settings - Editor - General - Auto Import - Optimize imports on thre fly와 Add unambiguous.. 체크


03-2 하나씩 바꿔 보기

인텐트 : 내가 하고자하는 행위를 의미, 우편물같은 것

이미 단말에 제공되는 앱인 웹브라우저에게 내가 만든 앱에서 명령 편지를 전달하여 띄우는 것


03-3 여러 개의 버튼에 기능 추가 하기


인텐트(Intent): 내가 하고자하는 행위를 의미

ex) 우편물 같은 것

이미 단말에 제공되는 앱인 웹브라우저에게 내가 만든 앱에서 명령 편지를 전달하여 띄우는 것



03-4  새로운 화면 만들어 띄어주기


. 새로운 액티비티 만들기

.. 기존에 만들어져 있던 액티비티를 복사하여 새로운 액티비티를 만든 후 수정한다.

. 새로운 레이아웃 만들기

.. 기존에 만들어져 있던 레이아웃을 복사하여 새로운 레이아웃을 만든 후 수정한다.

. 메니페스트에 태그 추가하기

.새로운 액티비티 시작 코드 넣기



activity_main.xml에 버튼4개, activity_Maue.xml에 버튼1개


MainActivity.java파일

package org.androidtown.hello;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void onButton1Clicked(View V) {
Toast.makeText(this, "버튼이 클릭됨", Toast.LENGTH_LONG).show();
}
public void onButton2Clicked(View V) {
Intent intent= new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.naver.com"));
startActivity(intent);
}
public void onButton3Clicked(View V) {
Intent intent= new Intent(Intent.ACTION_VIEW, Uri.parse("tel:010-7721-7747"));
startActivity(intent); // 단말에 이미 설치된 앱을 연동하여 사용
}
public void onButton4Clicked(View V) { // 액티비티 메뉴창 연결 버튼
Intent intent= new Intent(this, ManuActivity.class);
startActivity(intent);
}

}


ManuActivity.java파일



 package org.androidtown.hello;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class ManuActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manu);
}
public void onButton1Clicked(View V) {
finish(); // 창을 닫는 메소드
}
}



정리


. setContentView() - > 화면에 무엇을 보여줄 지를 결정하는 함수(메소드)

. R.layout.activity_main - > 화면에 보여줄 대상이 되는 XML의 위치를 지정한다.

. /res/layout/activity_main.xml -> 위의 R.layout.activity_main에 해당하는 프로젝트 안의 파일로 화면을 구성할 때 사용한다.

. android:text -> 화면에 보이는 글자를 변경할 때 사용하는 속성

. android:onClick -. 버튼을 클릭했을 때 어떤 메소드를 실행한 것인지 간단하게 지정할 수 있는 속성

. Intent -> 어떤 기능을 실행할 지를 지정하기 위해 사용한다.

. Toast -> 화면에 잠깐 보였다가 없어지는 메시지