Notice
Recent Posts
Recent Comments
Link
관리 메뉴

브래의 슬기로운 코딩 생활

안드로이드 프로그래밍 기말고사 정리 본문

3-1/안드로이드 프로그래밍

안드로이드 프로그래밍 기말고사 정리

김브래 2024. 6. 8. 16:41

- 그래픽과 이미지 -


캔버스와 페인트

좌표를 읽어오는 순서

1. ACTION_DOWN

2. ACTION_MOVE

3. ACTION_UP

이미지를 화면 중앙에 출력하는 간단 예제

Bitmap picture = BitmapFactory.decodeResource(getResource(), R.drawable.jeju14);


- 액티비티와 인텐트 -


액티비티(Activity) 

▪ 화면을 구성하는 가장 기본적인 컴포넌트

 

서비스(Service)

▪ 액티비티와 상관없이 백그라운드에서 동작하는 컴포넌트

 

브로드캐스트 리시버(Broadcast Receiver)

▪ 문자 메시지 도착, 배터리 방전, SD 카드 탈부착, 네트워크 환경 변화 등이 발생하면 

전체 응용프로그램이 들을 수 있도록 방송 신호 보냄

 

콘텐트 프로바이더(Content Provider)

▪ 응용프로그램 사이에 데이터를 상호 공유하기 위한 컴포넌트
▪ 콘텐트 프로바이더의 정보를 제공하는 방법으로는 URI(Uniform Resource Identifier)가 있음

 

액티비티의 개수와 자바 파일의 개수는 같다.

 

인텐트는 액티비티를 연결

 

인텐트(Intent)

▪ 안드로이드 4대 컴포넌트가 상호 간에 데이터를 주고 받기 위한 메시지 객체
▪ 명시적 인텐트와 암시적 인텐트로 구분

 

명시적 인텐트 : 다른 액티비티의 이름을 명확히 지정할 때 사용하는 방법

암시적 인텐트 : 약속된 액션을 지정하여 안드로이드에서 제공하는 기존 응용 프로그램을 실행하는 것

 

명시적 인텐트와 데이터의 전달

새로운 액티비티 추가

 AndroidManifest.xml 파일에 새로운 액티비티 등

 

양방향 액티비티와 데이터의 전달

put을 하고 get으로 받는다.

Intent intent = new Intent(Intent.Action_DIAL, uri);

Intent intent = new Intent(Intent.Action_VIEW, uri);

Intent intent = new Intent(Intent.Action_WEB_SEARCH);

Intent intent = new Intent(MediaStore.Action_IMAGE_CAPTURE);

 

액티비티 생명주기


데이터 저장과 관리


데이터베이스 관련 용어

▪ 데이터 : 하나하나의 단편적인 정보를 뜻함
▪ 테이블 : 회원 데이터가 표 형태로 표현된 것
▪ 데이터베이스(DB) : 테이블이 저장되는 장소로 주로 원통 모양으로 표현
• 각 데이터베이스는 서로 다른 고유한 이름이 있어야 함
▪ DBMS : 데이터베이스를 관리하는 시스템 또는 소프트웨어를 말함
▪ 열(칼럼 또는 필드) : 각 테이블은 1개 이상의 열로 구성됨
▪ 열 이름 : 각 열을 구분하는 이름, 열 이름은 각 테이블 안에서는 중복되지 않아야 함
▪ 데이터 형식 : 열의 데이터 형식을 뜻함
• 테이블을 생성할 때 열 이름과 함께 지정해야 함
▪ 행(로우) : 실제 데이터
▪ SQL : 사용자와 DBMS가 소통하기 위한 언어

데이터베이스 생성 전 작업

▪ 명령 프롬프트를 실행한 후 adb.exe가 있는 폴더로 이동
▪ cd C:\Users\[사용자이름]\AppData\Local\Android\Sdk\platform-tools

 

▪ 명령 프롬프트에서 다음 명령을 차례로 수행하면 SQLite에 접속할 준비가 된 것

 

adb root
adb shell
cd /data/data/com.example.mydatabase
ls -l
mkdir databases
cd databases
pwd

테이블 생성

테이블을 생성하는 SQL문 형식

데이터 입력

행 데이터를 입력하는 SQL문 형식

INSERT INTO userTable VALUES('BTS','BangTan','BTS@gmail.com', 2013);
INSERT INTO userTable VALUES('Bong','Bong JunHo','Bong@gmail.com', 1969);
INSERT INTO userTable VALUES('Son','Son HeungMin ','son@gmail.com', 1992);
INSERT INTO userTable VALUES('Wang','Wang SooHyun','king@gmail.com', 2024);

데이터 조회 · 활용

데이터를 조회 · 활용하는 SQL문 형식

SELECT * FROM userTable;
SELECT id, birthYear FROM userTable WHERE birthYear <=1990;
SELECT * FROM userTable WHERE id='BTS';

myDBHelper 클래스의 onCreate( )와 onUpgrade( ) 메소드 코딩

• onCreate( ) 메소드 : 테이블을 생성하는 기능을 코딩
• onUpgrade( ) 메소드 : 테이블을 삭제한 후 다시 생성

<입력>을 클릭하면 에디트텍스트의 값이 입력되는 리스너 코딩

<조회>를 클릭할 때, 테이블에 입력된 내용이 모두 아래쪽 에디트텍스트에 출력되는 리스너 코딩

프로젝트 실행 및 결과 확인

▪ (1) 프로젝트를 실행한 후 데이터를 입력하고 조회
▪ (2) 명령 프롬프트에서 확인

 

adb root
adb shell
# cd /data/data/com.example.mydatabase
# cd databases
# sqlite3 groupDB


> .header on
> .mode column
> SELECT * FROM groupTBL;


- 사진과 오디오 –


리스트뷰 만들기

라디오버튼 : simple_list_item_single_choice로 바꿈
체크박스 : simple_list_item_multiple_choice로 둠

오디오


- 멀티미디어와 지도 –


프로그레스바와 시크바

▪ 프로그레스바 : 작업의 진행 상태를 확인할 때 많이 활용
▪ 시크바 : 음악이나 동영상 재생의 위치를 지정할 때 많이 활용

스레드(Thread)

▪ 동시에 여러 작업을 수행하기 위해 사용되는 개념
▪ 멀티스레드(Multi-Thread), 혹은 경량 프로세스라고도 함
→ 함수는 하나의 작업이 끝나야 다음 작업이 진행되지만, 스레드는 하나의 작업이 끝나기 전에 다른 작업을 동시에 진행시킬 수 있음

 

UI(User Interface) 스레드

▪ 화면의 위젯을 변경할 때 사용
일반적인 스레드는 스레드 안에서 필요한 내용을 계산하는 것만 가능하며, 화면의 다른 위젯을 변경할 수 없음

스레드보다 runOnUiThread가 더 안쪽이다.

구글의 API 키 얻기

SHA1 코드 필요, Google API 등록 필요

구글 지도의 응용

FragmetManager, manifest에 다 적어줘야 함