Chap 8 호스트시스템개발환경구성및 안드로이드개발환경구축

Similar documents
1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

( )부록

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

Install stm32cubemx and st-link utility

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

JDK이클립스

50_1953.pdf

4S 1차년도 평가 발표자료

슬라이드 1

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

슬라이드 1

Microsoft PowerPoint - TUNA_Board_Tutorial.pptx

슬라이드 1

PowerPoint 프레젠테이션

1부

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

PowerPoint Template

RK1 Board User Manual_ docx

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

슬라이드 1

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

슬라이드 1

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

변수이름 변수값 PATH ;C:\Program Files\Java\jdk1.8.0_45\bin CLASSPATH.;C:\Program Files\jdk1.8.0_45\lib\tools.jar JAVA_HOME C:\Program Files\Java\jdk1.8.0_45

Google Maps Android API v2

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

CODESYS 런타임 설치과정

PowerPoint 프레젠테이션

서현수

Microsoft PowerPoint - 김창수 v2.pptx

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

Chap 2 임베디드시스템 개발환경구성

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint Template

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft Word - 안드로이드_개발_매뉴얼1.docx

Daum 카페

PowerPoint 프레젠테이션

어댑터뷰

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

Microsoft Word - Armjtag_문서1.doc

슬라이드 1

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

DE1-SoC Board

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다.

01장

Chapter 1

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Chap 5 루트파일시스템 (Root F/S)

슬라이드 1

01장

PowerPoint Presentation

Studuino소프트웨어 설치

Facebook API

JAVA 플랫폼 개발 환경 구축 및 활용

Microsoft PowerPoint App Fundamentals[Part1].pptx

Chap 10 안드로이드커널 (Kernel)

THE TITLE

Microsoft Word - src.doc

Microsoft PowerPoint - chap01-C언어개요.pptx

슬라이드 1

슬라이드 1

슬라이드 1

Windows 8에서 BioStar 1 설치하기

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

NTD36HD Manual

Microsoft Word - CooCox

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

13ÀåÃß°¡ºÐ

슬라이드 1

RealDSP UT 프로그램 메뉴얼

PowerPoint Presentation

View Licenses and Services (customer)

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

PowerPoint 프레젠테이션

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

Interstage5 SOAP서비스 설정 가이드

문서의 제목 나눔고딕B, 54pt

Microsoft PowerPoint - Chapter_02-1_DevEnv.pptx

MF5900 Series MF Driver Installation Guide

PowerPoint 프레젠테이션

Android Master Key Vulnerability

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Mango220 Android How to compile and Transfer image to Target

Transcription:

Chap 8 호스트시스템개발환경구성및 안드로이드개발환경구축

1. 호스트시스템개발환경구축 1.1. 라이브러리설치 bootloader, kernel, 그리고 filesystem을컴파일하기위해서아래바이너리들을추가로설치해준다. <Host PC> root@ubuntu:/work/achroimx6q# apt-get install uuid uuid-dev root@ubuntu:/work/achroimx6q# apt-get install zlib1g-dev root@ubuntu:/work/achroimx6q# apt-get install liblzo2-2 liblzo2-dev 2. 안드로이드개발환경구축 2.1. 안드로이드개발환경설치 Target Board로 Android를 Porting하기위해서는 bootloader, kernel, android filesystem이필요하다. 앞서언급한것들은안드로이드를부팅하기위해서하나도없으면안되는요소들이다. 임베디드시스템이구동되려면, 임베디드하드웨어의 CPU 아키텍처에맞도록 Porting 해야한다. 여기서 Porting이라는말자체는현재의시스템이아닌다른시스템예를들면, Windows 프로그램을 Linux로바꾸는행위, x86 프로세서기반의소프트웨어를 ARM 프로세서기반의소프트웨어로바꾸는행위들을말한다. 일반적으로임베디드장치는실행을위한환경이지임베디드시스템안에서다른시스템에필요한소프트웨어등을개발하지는않는다. 순수하게목적을위해실행만을하는장치이다. 그러므로개발자체는호스트 PC에서이루어지게된다. 호스트시스템은일반적으로 X86계열의시스템을많이이용하게된다. 우리가사용할임베디드개발장비는 ARM계열프로세서이기때문에 X86에서개발하여컴파일한소프트웨어는당연히 ARM계열장치에서는구동되지않는다. 그러므로 X86에서개발한소프트웨어를 ARM계열장치에서구동되게하려면교차개발환경을구축해야한다. 교차컴파일툴 (Cross Compile Tools) 을이용하여컴파일을하게되면해당플랫폼에서구동이된다. 2

2.1.1. 시스템관련라이브러리설치 1 apt-get update 를이용해패키지정보를갱신 # apt-get update 2 개발환경구성에필요한패키지다운로드 - 우분투 1404 (64비트) # sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos u-boot-tools \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 # sudo ln -s /usr/lib/i386-linux-gnu/mesa/libgl.so.1 /usr/lib/i386-linux-gnu/libgl.so 설치관련하여우분투버전에따라변경된내용은아래의주소에서확인할수있다. ( 우분투 1404 이외의버전을사용한다면확인필요 ) http://source.android.com/source/initializing.html 2.1.2. 자바개발라이브러리설치 1 다운로드위치설정 JDK 파일을다운로드하고압축해제할경로로이동시킨다. http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloa ds-javase6-419409.html 2 받은 JDK 파일을설치한다. root@ubuntu:/# mkdir /work ( 디렉터리가없다면생성 ) root@ubuntu:/# mkdir /work/myandroid ( 디렉터리가없다면생성 ) root@ubuntu:/# cd /work/myandroid root@ubuntu:/work/myandroid# chmod 777 jdk-6u45-linux-x64.bin root@ubuntu:/work/myandroid#./jdk-6u45-linux-x64.bin 3 자바패스를추가한다. 자바의패스는현재사용하기위해설정한 java의경로를넣어주면된다. 현재필자의 3

경우에는 openjdk 를이용하고있기때문에해당경로를넣어준다. # vim /root/.bashrc 추가할내용은다음과같다. export JAVA_HOME=[Download Directory]( 본인이파일을놔둔위치, download directory 라고쓰지말것 ) export PATH=$JAVA_HOME/bin:$PATH 자바환경을적용하려면리부팅을하거나아래의 source 명령으로즉시갱신이 가능. # source /root/.bashrc 설정이정상적으로되었는지확인하려면아래의명령을이용하여자바를실행시켰을때정상동작된다면제대로설정된것이다. # java -version X root@ubuntu File Edit View Terminal Help root@ubuntu:/$ java -version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 4

2.2. 개발툴설치 2.2.1. 개발툴설치안드로이드어플리케이션을개발하기위해서는기본적으로 SDK, ADT, 그리고이클립스가필요하다. 물론, 이클립스대신다른 IDE를사용할수있으나이클립스는사용하기에도편하고구글에서 SDK, ADT 플러그인이설치가되어있는이클립스를배포하기때문에개발환경을구축하기에간단하고우수한개발툴이기때문에구글에서제공하는것을다운받아설치하겠다. 개발툴은아래의링크에서다운로드받을수있으며, 자신이사용하고있는개발환경에맞추어해당버전을다운로드한다. http://developer.android.com/sdk/index.html http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20140702.zip 1 개발툴복사 다운로드받은 adt-bundle-linux-x86_xx.zip 을 /root/temp/ 로복사한다. # mkdir /work ( 디렉터리가없다면생성 ) # mkdir /work/myandroid ( 디렉터리가없다면생성 ) # cd /root/temp # cp a /[Download Directory]/adt-bundle-linux-x86_64-20140702.zip /root/temp # sync 2 개발툴압축해제 # unzip adt-bundle-linux-x86_64-20140702.zip d /work/myandroid/ 3 이클립스실행파일확인이클립스의압축이해제되었다면해당디렉터리로이동하여 eclipse 바이너리가있는지확인한다. # cd /work/myandroid/adt-bundle-linux-x86_64-20140702/eclipse # ls 4 이클립스실행및작업디렉터리설정 5

이클립스런처생성리눅스의 Xwindow 런처는 MS의 Windows 단축아이콘과같은역할을한다. 앞으로개발툴을자주사용해야하므로, 바탕화면에런처를만들어두면명령어라인이나메뉴에서선택하는것만큼편리하게사용할수있다. 바탕화면에서마우스우측버튼을클릭후 Create Launcher" 를선택한다. Type은 Application으로지정하고, Name 항목에는 Eclipse" 라고입력해준다. Command 필드에서 Browse 버튼을클릭하고 Eclipse가설치된디렉터리로이동하여 Eclipse 실행파일 ( 마름모아이콘 ) 을선택해준다. 아이콘부분을클릭하여 Eclipse가설치된디렉터리로이동하면 icon.xmp 파일이나타나는데해당파일을선택해주면이클립스의아이콘이표시된다. 마지막으로 Comment 필드에는해당프로그램에대한설명등을넣어주거나비워두어도상관없다. 다. 런처아이콘이바탕화면에표시되면해당아이콘을클릭하여이클립스를실행한 이클립스실행 이클립스를실행하면다음과같이실행되는것을확인할수있다. 6

작업디렉터리설정 작업디렉터리는 /work/myandroid/workspace 로설정하였다. 앞으로생성되는예 제등은해당디렉터리에서작성될것이다. 이클립스실행확인 이클립스가실행된것이확인이되었다면 Welcome 탭을닫아주도록하자. 2.2.2. ADT 와 SDK 설정 앞서구글의개발자사이트에서다운받은이클립스에는 Android 개발환경을만 들어주는 ADT 툴이설치가되어있다. 때문에다른설정을하지않아도 Android 7

Project 생성과 DDMS, AVD 와같은기능을 Eclipse 에서사용할수있다. Eclipse 를따로받아서설치한독자라면구글에서 SDK 만별도로다운로드받아설치한다. 1 Window 메뉴를클릭하면아래의그림처럼메뉴가확장된다. 아래쪽부분을보면 Android SDK Manager(ASM) 와 Android Virtual Device Manager(AVDM) 을볼수있다. ASM은필요한버전의안드로이드 SDK를설치및제거할수있고, AVDM은가상의안드로이드디바이스를생성해서애플리케이션을구동해볼수있다 ( 우리는 Achro-i.MX6Q 장비를이용해서애플리케이션을구동을할것이기때문에장비가없을경우에만사용하는것이좋다. 가상머신은실제장비에비해많이느리다.). 2 Android SDK Manager을클릭하면아래그림처럼새로운창이표시된다. 구글에서는항상가장최신안드로이드버전의 SDK를포함하여개발툴을배포를한다. 때문에가장최신버전의안드로이드 SDK가설치가되어있는것을확인할수있다. 8

3 개발하는안드로이드버전에따라, 이전버전의 SDK 를추가로설치를할수있 다. 원하는버전의 SDK 를선택한다. 9

다음으로 install packages 를클릭하게되면아래와같은화면을볼수있다. 라이선스에동의해야소프트웨어가설치된다. 동의하고 Install 을눌러주자. 이제아래와같은화면을볼수있을것이다. 10

소프트웨어가모두설치될때까지기다린다. SDK 의설치가완료되면선택했던 Android 4.4 SDK 가설치된것을확인할수있다. 2.2.3. SDK Platform Tools 설정 SDK 설치가완료되면, SDK 에포함된 Platform Tools 의경로를설정해야한다. 11

SDK Platform Tools 에는안드로이드애플리케이션과관련된몇가지툴들이포함 되어있다. platform-tools 디렉터리는앞서 sdk를설치한디렉터리에포함되어있다. 위에서 /work/myandroid/adt-bundle-linux-x86_64-20140702/sdk/ 이므로해당디렉터리의 platform-tools가경로에포함되어야할디렉터리가된다. 플랫폼툴의패스를추가하기위해서.bashrc 파일을수정한다. # vim /root/.bashrc 추가해야할내용은앞서 sdk를설치한디렉터리안에있는 paltform-tools 디렉터리이다. # Android SDK Path - ADB export PATH=/work/myandroid/adt-bundle-linux-x86_64-20140702/sdk/platform -tools:$path 2.3. Android Application 개발방법애플리케이션개발환경은앞에서이미설치하였으므로 Android SDK를이용해서애플리케이션을직접개발할수있는모든환경은구성된것이다. SDK를이용하여여러가지애플리케이션을개발하는것은본교재의범주를벗어나므로애플리케이션작성방법에대해서간단하게언급하고넘어가겠다. 아래설명에서사용하고있는캡처화면과메뉴등은설치된 Eclipse와 SDK 툴버전에따라달리표시될수있음을참고하기바란다. 2.3.1. HelloWorld Appliction Eclipse 메뉴에서 [New]->[Android Application Project] 클릭한다. 만약, 처음안드로이드애플리케이션을작성하는경우라면 Android Project 메뉴항목이표시되지않을수있다. 이때는 [New] -> [Other] -> [Android] -> [Android Application Project] 에서선택한다. 12

1 프로젝트정보입력프로젝트이름을입력한다. 만약, 가지고있는소스를열어야하는경우라면, Contents에서 Create Project form existing source를선택하고경로를지정해준다. 그렇지않다면기본값인 Create new project in workspace를선택한상태로놔두면되겠다. 다음은 Build Target을설정한다. 현재 Achro-i.MX6Q 시리즈는킷캣이탑재되어있으므로 Build Target을 Android 4.4로선택한다. 그리고호환가능한최소 SDK버전을설정해준다. 끝으로 Application name과 Package name을설정한다. Package name은아래의예시와같은형식으로입력해준다. 만약프로젝트생성후에러가떠서 Run이실행되지않는다면, 최소호환가능버전을 Target 버전과동일하게맞춘후 Manifest에서다시낮춰준다. 13

Create Activity 에체크를해준다. 14

Empty Activity 를선택하고 Next 를누른다. Activity 이름을입력한다. 입력한 Activity 이름으로 java 파일이생성된다. 15

입력이끝나고 Finish 버튼을클릭하면안드로이드프로젝트가생성된다. 2 res 설명안드로이드의애플리케이션의액티비티는 xml 파일을이용하여구조를정의하고사용할수있다. 이클립스로안드로이드프로젝트를생성하면해당애플리케이션에서기본으로사용할첫번째액티비티에대한 xml파일이생성된다. package explorer의 package tree에서 res/layout/activity_main.xml 파일이이에해당된다. 16

<RelativeLayout 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" tools:context="${relativepackage}.${activityclass}" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello_world" /> <-- <-- <-- </RelativeLayout> - android:layout_width="fill_parent" TextView의가로길이를지정한다. "fill_parent" 는화면에서할당할수있는최대길이를지정할때사용한다. - android:layout_height="wrap_content" TextView의세로길이를지정한다. "wrap_content" 는글자가그려질수있는최소영역을길이를지정할때사용한다. - android:text="@string/hello_world"" 화면에출력할텍스트를지정한다. 직접텍스트를입력할수도있지만 "@string/hello_world"" 와같이 res의 values/strings.xml의내용을사용할수도있다. 다국어문제와리소스관리차원에서직접텍스트를입력하기보다는 values/strings.xml를사용하면문자열을편리하게관리할수있다. 3 메인액티비티소스 다음은애플리케이션의첫번재액티비티인 MainActivity.java 소스코드를작성한 다. 17

package org.example.android.helloworld; import android.app.activity; import android.os.bundle; import android.view.menu; import android.view.menuitem; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } } setcontentview(r.layout.activity_main); <-- - setcontentview(r.layout.activity_main); R.layout.activity_main 의이름 (main) 과 res의 layout/activity_main.xml 파일이름 (activity_main) 을맞춰준다. src에서 res의 layout을불러들여서사용할수있다. 4 AndroidManifest.xml 설명 18

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.example.android.helloworld" android:versioncode="1" android:versionname="1.0"> <uses-sdk android:minsdkversion="9" android:targetsdkversion="19" /> <application android:icon="@drawable/ic_launcher" <-- android:label="@string/app_name" <-- android:theme="@style/apptheme" > <activity android:name=".mainactivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> - android:icon="@drawable/icon_launcher" 안드로이드앱프로그램의아이콘이미지를지정한다. 실제이미지는 res 의 drawable/icon_launcher.png 에위치한다. - android:label="@string/app_name" 19

안드로이드앱의이름을지정한다. res 에있는리소스 (Image, String 등 ) 를 AndroidManifest.xml 에서불러들여사 용할수도있다. 예를들면 drawable/icon.png 는 "@drawable/icon", values/strings.xml 의 app_name 은 "@string/app_name" 형식으로사용할수있다. 5 HelloWorld 결과확인 Achro-i.MX6Q 에서실행이클립스에서실행할프로젝트를선택한뒤에실행버튼을누른다. Run As 대화창이뜨면 Android Application을선택한뒤에 OK버튼을누르면 Achro-i.MX6Q 개발보드에서실행된다. OTG Cable로보드와연결하면아래처럼목록에생긴다. 생기지않을시 USB driver 가제대로설치되지않을수있다. 이경우다시뺏다가연결해본다. 또한 Target Board에서 [ 설정 ] - [ 태블릿정보 ] - [ 빌드번호 ] 를여러번눌러서개발자옵션을활성화시켜야하며 OTG Cable로연결시권한을묻는메시지가뜬다면허용해준다. 20

실행결과 21