일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 한빛아카데미
- 가비아
- 소스설치
- Apache
- 셀레니움
- aws
- 한빛미디어
- deeplearning
- image
- Selenium
- 예제중심HTML&자바스크립트&CSS
- 딥러닝
- 수동설치
- CBOW
- 논문리뷰
- 머신러닝
- attention
- Crawling
- Lamp
- 밑바닥부터시작하는딥러닝2
- 밑바닥부터시작하는딥러닝
- word2vec
- 비지도학습
- AndroidStudio를활용한안드로이드프로그래밍
- 크롤링
- 프로그램새내기를위한자바언어프로그래밍
- 생활코딩
- MySQL
- 컴파일설치
- jupyter
- Today
- Total
안녕, 세상!
2. 안드로이드 애플리케이션 기초 본문
(1) 기초 앱 만들기
① 프로젝트 생성
Android Studio를 실행시키고 [Start a new Android Studio project]를 클릭해서 프로젝트를 생성합니다.
프로젝트 종류는 'Empty Activity'로 설정하고 [Next]를 클릭합니다.
Name : 프로젝트의 이름
Package name : 도메인 이름과 애플리케이션 이름을 이어서 만든 것
Save Location : 프로젝트 저장 위치
Language : 사용할 프로그래밍 언어
Minimum API level : 이 앱이 작도하는 최하 버전 선택. 버전 점유율을 확인하고 싶으면 'Help me choose'를 누르면 됨
프로젝트 설정이 끝나면 [Finish]를 클릭하여 프로젝트를 생성합니다.
설정 중에는 생략되었지만 다음 2개의 항목이 내부적으로 추가되어 있습니다.
Activity Name : MainActivity
기본 소스인 Java파일 이름(MainActivity.java)으로 지정됩니다.
Layout Name : activity_main
기본 화면인 XML 파일이름(activity_main.xml)으로 지정됩니다.
프로젝트의 오른쪽 부분에 [res] -> [layout] -> [activity_main.xml]을 클릭해서 프로젝트의 화면을 보이게 합니다.
② 화면 디자인 및 편집
화면을 가상 AVD와 동일하게 설정하려면 activity_main.xml 창의 'custom' 아이콘을 눌러서 [AVD:QPixel2]를 선택하면 앞에서 생성한 AVD와 디자인 화면을 동일하게 할 수 있습니다.
activiy_main.xml 창 왼쪽 하단에 [Text] 탭을 누르면 해당 코드가 나오는데 2번째 줄의 androidx.constraintlayout.widget.ConstraintLayout 부분을 RelativeLayout으로 변경합니다.
대/소문자를 정확히 입력해야 합니다.
다시 [Design] 탭으로 이동해서 [Enablre Autoconnection to parent] 아이콘을 누르고 왼쪽의 위젯 중에서 원하는 아무거나 몇 개를 마우스 드래그해서 오른쪽에 놓습니다.
다시 [Text] 탭으로 이동하면 방금 옮긴 위젯에 대한 코드들이 새로 생긴 것을 확인할 수 있습니다.
이 코드들 중에 일부 위젯 코드를 지운 후 다시 [Design] 탭으로 이동 시 해당 위젯이 사라진 것을 확인할 수 있습니다.
XML(eXtensible Markup Language)는 구조적인 데이터를 작성하기 위한 다목적 마크업 언어로, 라이선스에 제약이 없고 플랫폼에 독립적입니다.
안드로이드에서는 화면을 구성하기 위해 XML을 사용했습니다.
이제 아무렇게 만든 앱을 상단의 [File] -> [Save All]을 클릭하여 변경사항을 저장합니다.
이렇게 간단하게 화면 및 디자인을 편집할 수 있습니다.
③ Java코드 작성 및 수정
왼쪽 상단의 <Project Tree>에서 [java] -> [com.example.helloandroid] -> [MainActivity]를 클릭해서 MainActivity.java창을 확인할 수 있습니다.
이 창에서 java 코드를 수정하면 됩니다.
우선 다음과 같은 java코드가 보일 것입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package com.example.helloandroid;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
|
cs |
우선 onCreate라는 메서드가 가장 먼저 시작이 될 것입니다.
setContentView(R.layout.activity_main)은 화면에 activiy_main.xml을 화면에 표시하라는 뜻입니다.
④ 프로젝트 실행 및 결과 확인
위에서 만든 프로젝트를 실행시키려면 메뉴의 [Run] -> [Run 'app']을 클릭하면 됩니다.
만약 AVD가 여러 개일 경우 또는 스마트폰이 연결되어 있다면 먼저 작동할 장치를 상단 중앙 툴바에서 선택할 수 있습니다.
[Run 'app']을 누르면 다음과 같이 앱이 잘 실행됩니다.
(2) AVD 사용법
AVD 사용법은 안드로이드 스마트폰 사용법과 동일해서 안드로이드 휴대폰을 사용하면 익숙할 것입니다.
① 화면 전환
화면을 가로, 세로로 바꾸려면 [ctrl]+[좌측 화살표] 또는 [ctrl]+[우측 화살표] 단축키를 누르면 됩니다.
혹은 AVD옆의 바에서 화면 회전 아이콘을 누르거나 내부에서 설정할 수 있습니다.
② 카메라와 갤러리
초기화면에서 위쪽으로 스와이프 하고 카메라 앱을 클릭하면 가상의 카메라 화면이 나옵니다.
셔터를 클릭하면 가상 화면이 촬영되고 [포토]에 들어가서 촬영한 사진을 확인할 수 있습니다.
③ 웹브라우저
크롬 버튼을 클릭하여 구글 사이트에 접속할 수 있습니다.
휴대폰에서 사용했던 웹브라우저와 같습니다.
④ 바탕화면 변경
바탕화면을 몇 초 동안 누른 후 [배경화면]을 선택하면 제공되는 다양한 그림을 선택할 수 있습니다.
이외의 다른 여러 가지 기능들과 설정들이 있습니다.
(3) 완전한 기능의 안드로이드 애플리케이션
① 프로젝트 관리
프로젝트 열고 닫기
[File] -> [Close Project]를 눌러서 프로젝트로 닫고 다른 프로젝트를 선택해서 열 수 있습니다.
여러 개의 프로젝트를 열고 작업하기
[Open]을 클릭해서 열고자 하는 프로젝트를 열고 [New Window] 버튼을 클릭하면 새로운 창으로 열려서 여러 개의 프로젝트를 동시에 수행할 수 있습니다.
프로젝트 내보내기/가져오기
Android Studio 프로젝트는 내보내기 기능이 따로 없어서 프로젝트가 생성된 폴더를 통째로 복사하거나 압축해서 다른 사람에게 보내면 됩니다.
Eclipse용 프로젝트 가져오기
Eclipse에서 작성된 프로젝트를 가져올 수 있습니다.
Android Studio 초기화면의 [Import project (Gradle, Eclipse ADT, etc.)]를 선택하고 Eclipse에 작성된 프로젝트 폴더를 선택 후 [Next]를 클릭하고 모두 체크된 상태에서 [Finish]를 클릭하고 사용하면 됩니다.
② 안드로이드 프로젝트 표준 틀
간단하게 버튼을 클릭하게 되면 특정 이벤트가 발생하는 앱을 만들면서 기본적인 틀을 파악하겠습니다.
우선 새로운 프로젝트를 만듭니다. (프로젝트명은 appsample로 함)
[Start a new Android Studio project] -> [Phone and Tablet] -> [Empty Activity] -> Language:java -> [Finish]
프로젝트 생성 후 activity_main.xml 코드의 [Text] 탭을 클릭해서 <android.support.constraint.ConstraintLayout>을 <LinearLayout>으로 바꾸고 LinearLayout에게 필요 없는 xmlns:app, tols:context 속성을 삭제합니다.
<TextView../>부분도 지웁니다.
1
2
3
4
5
6
7
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
|
cs |
그 후 <Button> 설정을 다음과 같이 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/button1"
android:text="@string/strBtn1">
</Button>
</LinearLayout>
|
cs |
1,2
: LinearLayout의 xmlns(XML NameSpace)를 URL로 지정함
: xmlns는 전체 코드 중에 1번만 나오면 됨
3,4 : layout_width와 layout_height가 android 네임 스페이스에 포함되어 있음을 나타냄
7 : 버튼 시작
8,9 : 버튼의 폭과 높이 설정
10
: 버튼의 id를 표현하는데 이름이 'button1'
: @은 리소스에서 참조하라는 의미이며 @+는 리소스에 추가하라는 의미
11 : text 속성은 버튼에 쓰일 글자이며 strings.xml파일의 strBtn1이라는 문자열 이름의 문자열을 글자로 사용함
12 : 버튼의 끝
14 : LinearLayout의 끝
strings.xml을 설정해야 하므로 좌측 파일 트리의 [app] -> [res] -> [values] -> [string.xml]에 코드를 추가합니다.
1
2
3
4
|
<resources>
<string name="app_name">appsample</string>
<string name="strBtn1">버튼</String>
</resources>
|
cs |
activexml_main.xml의 [Design] 탭을 누르면 잘 적용된 것을 확인할 수 있습니다.
다음 MainActivity.java코드로 가서 이벤트 발생 설정을 합니다.
코드를 설정하기 전에 java 환경에서 사용할 수 있는 편리한 단축기 기능을 설명하겠습니다.
[Ctrl] + [Alt] + [알파벳 o] : 불필요하게 import 된 문장이 제거됩니다.
(메소드에 커서를 올린 후) [Alt] + [Enter] : 해당 메소드 관련된 클래스를 자동으로 import 시킬 수 있음
MainActivity.java 코드를 다음과 같이 설정합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button button1; // Button객체 button1 선언
@Override
protected void onCreate(Bundle savedInstanceState) { //main 함수라 생각하면됨
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) findViewById(R.id.button1); //button1에 객체선언 activity_main.xml의 button1 객체대입
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){ // 버튼 클릭될 때 발생할 메소드
Toast.makeText(getApplicationContext(), "버튼을 누르셨습니다.",Toast.LENGTH_SHORT).show();
// 메시지를 잠시 나타내주는 메소드
}
});
}
}
|
cs |
setContentView() : 괄호 안의 레이아웃을 화면에 표시해줌
R.layout.activity_main : activity_main.xml 파일을 의미
findViewById() : 괄호 안의 id를 이용해 위젯에 접근하기 위해서 사용하는 메소드
Toast.makeText(메시지가 출력될 컨텍스트, "메시지내용", 출력할 시간) : 메시지를 잠시 나타내 주는 메소드
getApplicationContext() : 현재 애플리케이션의 컨텍스트를 나타내는 메소드
위의 코드를 run-app을 클릭하여 실행시킨 결과는 다음과 같이 버튼을 누를 때 설정한 텍스트가 잠깐 잘 나옵니다.
만약 잘 실행이 안되면 [AVD Manager]에 들어가서 해당 AVD단말기의 오른쪽 끝의 버튼을 누르고 [Wipe Data]를 누른 후 다시 실행시키면 잘 될 것입니다.
R클래스
R클래스는 레이아웃 파일(ex: activity_main.xml, strings.xml)에 들어 있는 문자열, 버튼 등의 id, 이미지 파일의 id 등은 모두 R 클래스에 자동으로 등록됩니다.
C:\Users\LSM\AndroidStudioProjects\appsample\app\build\generated\not_namespaced_r_class_sources\debug\r\com\example\appsample 경로의 R.java로 존재해서 메모장을 열어 확인하면 확인할 수 있습니다.
R.java에 등록된 것은 모두 자동으로 등록되며, 각각 고유의 16진수 상수를 정의하는데 절대로 직접 수정하면 안 됩니다.
그러므로 열어 볼일도 없습니다.
예시로 android:id="@+id/button1"과 같은 형식이 activity_main.xml에 있다면 이것을 Java코드에서 R.id.button1로 접근할 수 있다고 생각하면 됩니다.
(4) 안드로이드 프로젝트 구성
프로젝트에서 사용되는 폴더 및 파일의 용도
① manifests 폴더
AndroidManifest.xml 파일이 들어 있고, 이는 앱의 여러 가지 정보를 담고 있는 중요한 파일입니다.
필용에 따라 종종 사용됩니다.
② java 폴더
하위에 패키지 명의 하위 폴더가 있는데, 이는 안드로이드 프로젝트를 생성할 때 입력한 패키지 이름과 동일한 것입니다.
패키지 이름 아래에 MainActivity.java로 메인 Java 소스가 들어 있습니다.
주로 화면 역할을 하는 activity_main.xml에서 어떤 일을 할지를 프로그래밍하게 됩니다.
③ java (generated) 폴더
Android Studio 3.2부터 제공되는 폴더이며 시스템 내부적으로 사용되므로 특별히 신경 쓰지 않아도 됩니다.
④ res 폴더
앱 개발에 사용되는 이미지, 레이아웃, 문자열 등이 들어가는 폴더입니다.
(1) drawable 폴더 : 이미지 파일이 들어가는 폴더
mipmap 폴더 : 디자인 화면이나 앱이 설치된 후에 보이는 런처 아이콘이 들어가는 폴더
xxxhdpi, xxhdpi, xhdpi : 초고해상도 런처 아이콘 파일이 들어감
hdpi : 고해상도 런처 아이콘 파일이 들어감
mdpi : 중해상도 런처 아이콘 파일이 들어감
(2) layout 폴더 : 화면을 구성하는 xml 파일을 넣음 (activity_main.xml)이 초기화면으로 기본적으로 지정됨)
(3) values 폴더
strings.xml : 문자열을 저장하는 폴더
colors.xml : 색깔을 저장하는 폴더
styles.xml : 스타일을 저장하는 폴더
(4) menu 폴더 : 메뉴 XML 파일을 저장하는 폴더
(5) anim 폴더 : 애니메이션 저장 폴더
⑤ res (generated) 폴더
Android Studio 3.5부터 제공되는 폴더이며 내부적으로 사용되므로 신경 쓰지 않아도 됩니다.
⑥ Gradle Scripts 폴더
Gradle 빌드 시스템과 관련된 파일이 들어 있습니다.
build.gradle (Module: app) : 빌드스크립트 핵심 파일. 컴파일 버전, 실행되는 최하버전, 컴파일 라이브러리 등을 등록
local.properties : 컴파일되는 SDK의 경로가 들어 있음
gradle.properties : JVM 관련 메모리가 설정되어 있음
'It공부 > 안드로이드' 카테고리의 다른 글
6. 고급 위젯 (0) | 2020.08.22 |
---|---|
5. 레이아웃 (0) | 2020.08.21 |
4. 기본 위젯 (0) | 2020.08.20 |
3. Java 문법 (0) | 2020.08.17 |
1. 안드로이드의 개요와 개발 환경 설치 (0) | 2020.08.14 |