Developing Android Apps 
1.Create Project Sunshine 
시온고등학교 안드로이드 스터디
TODOs : 
● 안드로이드 플랫폼 소개 
● 개발 환경 구축하기 
● 프로젝트 생성, 테스트 
● 화면에 목록 띄우는 앱 만들기
Android?
가장 인기 있는 모바일 OS
리눅스 기반의 오픈소스 OS 
아파치 라이선스 2.0 리눅스 커널 기반
AOSP(Android Open Source Project) 기반 커스텀롬 예시 
CyanogenMod MIUI Paranoid Android
다양한 크기의 화면과 다양한 종류의 디바이스 지원
Inside Android... 
Application Layer 
Application Framework 
C/C++ Library Android Runtime(ART or Dalvik) 
Linux Kernel
Android 5.0 Lollipop
Material design
Material design 에 대해 더 알아보기. 
● http://www.youtube.com/watch?v= 
Q8TXgCzxEnw 
● http://www.google.com/design
헤드-업 알림 
잠금 화면 알림
● 새로워진 앱 개요 보기(기존의 최근 
앱 보기) 화면 디자인 
○ 도큐먼트 단위로 앱 개요 관리
그 외 더 많은 변경 사항들... 
● 안드로이드 TV, 안드로이드 오토 지원 추가 
o 안드로이드 웨어(스마트 워치 등 웨어러블)은 4.4 Kitkat 
부터 지원됨 
● 런타임 변경(기존 달빅(Dalvik)에서 ART로 변경) 
● 64bit 지원 
● 더 강력해진 배터리 관리(Project Volta) 
● 관련 영상 
o http://youtu.be/HHXwsgw7M8s
개발환경 구축하기! 
Windows 기준 
JDK, Android Studio 등 설치
http://www.oracle.com/technetwork/java/javase/downloads/index.html 
위 페이지 방문하여, JDK 다운로드 받아서 설치하기
JAVA 환경 변수 설정 
● 제어판 > 시스템 으로 이동 
● 좌측에서 "고급 시스템 설정" 누르기 
● 세로 열리는 "시스템 속성" 창에서 "고급" 탭으로 
이동하기 
● 하단에 위치한 "환경 변수" 눌러서, 환경 변수 설 
정 창 열기
● "새로 만들기" 눌러서 변수 
추가하기. 
● 변수 이름에는 
JAVA_HOME 을, 변수 값 
에는 설치한 JDK 경로 입력 
하기. 
● 입력 후 "확인" 눌러서 
JAVA_HOME 변수 추가 마 
치기. 
이미지 출처 : http://h5bak.tistory.com/91
● Path 변수가 있는 경우는, 
선택 후 "편집"을, 없으면 
"새로 만들기" 눌러서 Path 
변수 만들거나 수정하기 
● 변수 이름에는 Path를, 변 
수 값 에는 입력 칸 가장 뒤 
에 ;%JAVA_HOME%bin; 
추가하기. 
● "확인" 눌러서 Path 변수 추 
가/수정 마치기. 
이미지 출처 : http://h5bak.tistory.com/91
http://developer.android.com/sdk/index.html 
위 페이지 방문하여, Android Studio 다운로드 받아서 설치하기
SDK 패키지 설치하기
설치할 SDK 패키지 
● Tools 항목 
o 최신 버전의 SDK Tools, Platform-tools, Build-tools 
● 최신 버전의 안드로이드의 패키지 
o 예시 : 모든 Android 5.0(API 21) 항목 
● 모든 Extras 항목
새 프로젝트 생성하기 
Package Name 지정 
Minimum SDK, Target SDK 지정
Package Name 정하기 
● 앱 의 고유한 이름으로, 다른 앱 과 구별 하는데 사용됩니다. 
● 보통 회사 도메인을 거꾸로 하여 사용합니다. 
o 예시 - 도메인이 example.com 이면, 
com.example.appname 
● 다른 앱 의 Package Name 과 중복 될 수 없습니다
Minimum SDK & Target SDK 
Minimum SDK 
● 앱 동작에 필요한 최소 버 
전 
Target SDK 
● 앱 동작이 확인 된 버전(보 
통 최신 버전의 안드로이드 
로 설정함)
http://developer.android.com/about/dashboards
앱 테스트 하기 
AVD(Android Virtual Device) 생성하기 
휴대전화 USB 디버깅 켜기 
앱 테스트 하기 
Gradle Build Toolkit 알아보기
AVD
USB 디버깅 켜기
디버그 
(Debug) 
실행(Run)
Gradle 
● 일종의 세련된(?) 빌드 시스템 
● DSL 이라는 선언문 형태의 언어로 빌드 스크립 
트를 작성하여 빌드를 설정함 
● http://gradle.org/
안드로이드 
프로젝트 
Byte Code 
빌드(Build) Resources 
Manifest 
서명(Sign) 디바이스 에 
설치 
Gradle 
Gradle 
Jar Signer 
ADB 
APK
본격적으로 앱 개발하기 
간단히 UI 배치하기 
Layout Managers 
ScrollView V.S ListView 
Adapter 로 ListView 에 항목 넣기
Activity 
Fragment 
Activity 
Fragment Fragment
Activity 
● 안드로이드 에서 기 
본 화면 단위 
Fragment 
● Activity에 표시 될 수 
있는 화면 모듈 
● 하나의 Activity에 여 
러 개의 Fragment를 
넣을 수 있음
View 
ViewGroup Widget 
AdapterView 
Layout 
FrameLayout 
TextView 
ImageView 
Button 
ProgressBar 
Spinner 
... 
LinearLayout 
RelativeLayout 
... 
ScrollView 
... 
ListView 
GridView 
...
View 
● 화면에 표시되는 하나하나의 요소들 
o 예 : TextView, ImageView, Button, Switch, EditText, 
ListView, GridView …
ViewGroup 
● 하나 이상의 View를 내부에 포함할 수 있는 
View. 
● 각종 Layout들이 ViewGroup의 일종임
FrameLayout LinearLayout RelativeLayout
TextView 
TextView 
TextView 
TextView 
ScrollView 
LinearLayout 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView
TextView 
TextView 
TextView 
TextView 
ScrollView 
LinearLayout 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
ListView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
스크롤 방향 
Recycled View
Adapter로 ListView에 데이터 넣기 
● 배열 형태로 데이터 만들기 
● ListView 찿기 
● Adapter 초기화 
● ListView에 위에서 초기화 한 Adapter 설정
배열 형태로 데이터 만들기 
… 
public static class PlaceholderFragment extends 
Fragment { 
… 
@Override 
public View onCreateView(LayoutInflater inflater, 
ViewGroup container,Bundle savedInstanceState) { 
…
배열 형태로 데이터 만들기 
… 
View rootView = 
inflater.inflate(R.layout.fragment_main_activity2, 
container, false); 
… 
String[] myStringArray = {“서울 - 맑음", "부천 - 조금 
흐림", "인천 - 약간의 눈"} 
…
ListView 찿기 
... 
//findViewById 로 View 찿기 
ListView myListView = 
(ListView)rootView.findViewById(R.id.listView); 
...
Adapter 초기화 
… 
ArrayAdapter<String> adapter = new 
ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_1, myStringArray); 
…
ListView에 Adapter 설정 
… 
myListView.setAdapter(adapter); 
…
Context? 
● 앱 환경에 대한 정보를 얻기 위해 사용됨 
● 앱 의 리소스와 클래스에 접근 할 수 있도록 해줌 
● 새로운 Activity 열기, Intent 받기 등의 작업을 
실행 하는대 사용됨
Context? 
● http://developer.android.com/reference/an 
droid/content/Context.html 
● http://huewu.blog.me/110085457720
Thank You! 
Lesson 1 끝!

1.Create Project Sunshine - 시온고등학교 안드로이드 스터디

  • 1.
    Developing Android Apps 1.Create Project Sunshine 시온고등학교 안드로이드 스터디
  • 2.
    TODOs : ●안드로이드 플랫폼 소개 ● 개발 환경 구축하기 ● 프로젝트 생성, 테스트 ● 화면에 목록 띄우는 앱 만들기
  • 3.
  • 4.
  • 6.
    리눅스 기반의 오픈소스OS 아파치 라이선스 2.0 리눅스 커널 기반
  • 7.
    AOSP(Android Open SourceProject) 기반 커스텀롬 예시 CyanogenMod MIUI Paranoid Android
  • 8.
    다양한 크기의 화면과다양한 종류의 디바이스 지원
  • 9.
    Inside Android... ApplicationLayer Application Framework C/C++ Library Android Runtime(ART or Dalvik) Linux Kernel
  • 10.
  • 11.
  • 12.
    Material design 에대해 더 알아보기. ● http://www.youtube.com/watch?v= Q8TXgCzxEnw ● http://www.google.com/design
  • 13.
  • 14.
    ● 새로워진 앱개요 보기(기존의 최근 앱 보기) 화면 디자인 ○ 도큐먼트 단위로 앱 개요 관리
  • 15.
    그 외 더많은 변경 사항들... ● 안드로이드 TV, 안드로이드 오토 지원 추가 o 안드로이드 웨어(스마트 워치 등 웨어러블)은 4.4 Kitkat 부터 지원됨 ● 런타임 변경(기존 달빅(Dalvik)에서 ART로 변경) ● 64bit 지원 ● 더 강력해진 배터리 관리(Project Volta) ● 관련 영상 o http://youtu.be/HHXwsgw7M8s
  • 16.
    개발환경 구축하기! Windows기준 JDK, Android Studio 등 설치
  • 17.
    http://www.oracle.com/technetwork/java/javase/downloads/index.html 위 페이지방문하여, JDK 다운로드 받아서 설치하기
  • 18.
    JAVA 환경 변수설정 ● 제어판 > 시스템 으로 이동 ● 좌측에서 "고급 시스템 설정" 누르기 ● 세로 열리는 "시스템 속성" 창에서 "고급" 탭으로 이동하기 ● 하단에 위치한 "환경 변수" 눌러서, 환경 변수 설 정 창 열기
  • 19.
    ● "새로 만들기"눌러서 변수 추가하기. ● 변수 이름에는 JAVA_HOME 을, 변수 값 에는 설치한 JDK 경로 입력 하기. ● 입력 후 "확인" 눌러서 JAVA_HOME 변수 추가 마 치기. 이미지 출처 : http://h5bak.tistory.com/91
  • 20.
    ● Path 변수가있는 경우는, 선택 후 "편집"을, 없으면 "새로 만들기" 눌러서 Path 변수 만들거나 수정하기 ● 변수 이름에는 Path를, 변 수 값 에는 입력 칸 가장 뒤 에 ;%JAVA_HOME%bin; 추가하기. ● "확인" 눌러서 Path 변수 추 가/수정 마치기. 이미지 출처 : http://h5bak.tistory.com/91
  • 21.
    http://developer.android.com/sdk/index.html 위 페이지방문하여, Android Studio 다운로드 받아서 설치하기
  • 22.
  • 23.
    설치할 SDK 패키지 ● Tools 항목 o 최신 버전의 SDK Tools, Platform-tools, Build-tools ● 최신 버전의 안드로이드의 패키지 o 예시 : 모든 Android 5.0(API 21) 항목 ● 모든 Extras 항목
  • 24.
    새 프로젝트 생성하기 Package Name 지정 Minimum SDK, Target SDK 지정
  • 25.
    Package Name 정하기 ● 앱 의 고유한 이름으로, 다른 앱 과 구별 하는데 사용됩니다. ● 보통 회사 도메인을 거꾸로 하여 사용합니다. o 예시 - 도메인이 example.com 이면, com.example.appname ● 다른 앱 의 Package Name 과 중복 될 수 없습니다
  • 26.
    Minimum SDK &Target SDK Minimum SDK ● 앱 동작에 필요한 최소 버 전 Target SDK ● 앱 동작이 확인 된 버전(보 통 최신 버전의 안드로이드 로 설정함)
  • 27.
  • 28.
    앱 테스트 하기 AVD(Android Virtual Device) 생성하기 휴대전화 USB 디버깅 켜기 앱 테스트 하기 Gradle Build Toolkit 알아보기
  • 29.
  • 35.
  • 36.
  • 39.
    Gradle ● 일종의세련된(?) 빌드 시스템 ● DSL 이라는 선언문 형태의 언어로 빌드 스크립 트를 작성하여 빌드를 설정함 ● http://gradle.org/
  • 40.
    안드로이드 프로젝트 ByteCode 빌드(Build) Resources Manifest 서명(Sign) 디바이스 에 설치 Gradle Gradle Jar Signer ADB APK
  • 41.
    본격적으로 앱 개발하기 간단히 UI 배치하기 Layout Managers ScrollView V.S ListView Adapter 로 ListView 에 항목 넣기
  • 43.
    Activity Fragment Activity Fragment Fragment
  • 44.
    Activity ● 안드로이드에서 기 본 화면 단위 Fragment ● Activity에 표시 될 수 있는 화면 모듈 ● 하나의 Activity에 여 러 개의 Fragment를 넣을 수 있음
  • 45.
    View ViewGroup Widget AdapterView Layout FrameLayout TextView ImageView Button ProgressBar Spinner ... LinearLayout RelativeLayout ... ScrollView ... ListView GridView ...
  • 46.
    View ● 화면에표시되는 하나하나의 요소들 o 예 : TextView, ImageView, Button, Switch, EditText, ListView, GridView …
  • 47.
    ViewGroup ● 하나이상의 View를 내부에 포함할 수 있는 View. ● 각종 Layout들이 ViewGroup의 일종임
  • 48.
  • 49.
    TextView TextView TextView TextView ScrollView LinearLayout TextView TextView TextView TextView TextView TextView TextView
  • 50.
    TextView TextView TextView TextView ScrollView LinearLayout TextView TextView TextView TextView TextView TextView TextView TextView TextView ListView TextView TextView TextView TextView TextView TextView 스크롤 방향 Recycled View
  • 52.
    Adapter로 ListView에 데이터넣기 ● 배열 형태로 데이터 만들기 ● ListView 찿기 ● Adapter 초기화 ● ListView에 위에서 초기화 한 Adapter 설정
  • 53.
    배열 형태로 데이터만들기 … public static class PlaceholderFragment extends Fragment { … @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { …
  • 54.
    배열 형태로 데이터만들기 … View rootView = inflater.inflate(R.layout.fragment_main_activity2, container, false); … String[] myStringArray = {“서울 - 맑음", "부천 - 조금 흐림", "인천 - 약간의 눈"} …
  • 55.
    ListView 찿기 ... //findViewById 로 View 찿기 ListView myListView = (ListView)rootView.findViewById(R.id.listView); ...
  • 56.
    Adapter 초기화 … ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myStringArray); …
  • 57.
    ListView에 Adapter 설정 … myListView.setAdapter(adapter); …
  • 58.
    Context? ● 앱환경에 대한 정보를 얻기 위해 사용됨 ● 앱 의 리소스와 클래스에 접근 할 수 있도록 해줌 ● 새로운 Activity 열기, Intent 받기 등의 작업을 실행 하는대 사용됨
  • 59.
    Context? ● http://developer.android.com/reference/an droid/content/Context.html ● http://huewu.blog.me/110085457720
  • 60.