Linux/UNIX Programming

Slides:



Advertisements
Similar presentations
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
Advertisements

CHAP. 2 안드로이드 개발 도구 설치. © 2012 생능출판사 All rights reserved 개발 과정의 개요.
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
앱인벤터 기초과정 (1차시) ㈜헬로앱스 강사: 김영준 목원대학교 겸임교수.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Security Solutions (S/W) - Fortify
A n d r o i d Android 2010년 5월 19일 동서대학교 백선재
Linux/UNIX Programming
그래픽스 및 웹 응용설계 자기소개 멀티미디어 학과 4학년 장정환.
안드로이드 철학, Open Access.
그림으로 쉽게 설명하는 안드로이드 프로그래밍
2. 앱 개발환경 구축 Step by Step 안드로이드 프로그래밍 쉽게 시작하는 안드로이드 4.4 앱 개발.
Linux/UNIX Programming
네트워크 기술을 통한 현재와 미래 소개.
안드로이드 개요.
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
Power Java 제2장 자바 개발 도구.
Linux/UNIX Programming
Linux/UNIX Programming
운영체제 박상민.
Java 기초 (Java JDK 설치 및 환경설정)
강 명 수 LINUX 설치 강 명 수
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
소개. 소개 Silverlight, WPF, RIA, UX.... ? Silverlight, WPF, RIA, UX.... ? IT환경의 진화.
Visual Basic .NET 처음 사용하기.
컴퓨터과학 전공탐색 배상원.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
제1강 안드로이드 특징과 개발환경 구축 안드로이드 앱 개발 강좌.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
1. MIDP란? 2. 하드웨어 사양 3. MIDlet 4. MIDlet Suite
CHAP 12. 리소스와 보안.
Wireless Java Programming
Android studio로 Application 만들기.
Linux/UNIX Programming
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
Device Driver 임베디드 시스템 I.
제목소개 1. 안드로이드소개 2. 패킷캡쳐를 위한 환경 소개 3. ndk 소개 4. lipcap 5. 6.도식화 그림
Xscale Educational Kit
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
Linux/UNIX Programming
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
모바일 자바 프로그래밍 J2ME 개발 살펴보기 Ps lab 오민경.
Linux/UNIX Programming
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
CHAP 21. 전화, SMS, 주소록.
Self Introduction Template PowerPoint
Linux/UNIX Programming
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
암호학 응용 Applied cryptography
뇌를 자극하는 Solaris bible.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
발표자 : 이지연 Programming Systems Lab.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
CHAP 15. 데이터 스토리지.
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

Linux/UNIX Programming Linux on Android 문양세 강원대학교 IT대학 컴퓨터과학전공

안드로이드 정의 안드로이드는 운영체제(operating system), 미들웨어 (middleware), 핵심 애플리케이션들(key applications) 을 포함하고 있는 모바일 디바이스를 위한 소프트웨어 스택(software stack)이다. 안드로이드는 모바일 기기의 외관, 분위기, 기능을 모양 지을 수 있는 모바일 애플리케이션을 작성하기 위한 API 라이브러리 셋과 더불어, 운영체제, 미들웨어, 핵심 애플 리케이션을 포함하는 오픈 소스 소프트웨어(OSS: open source software) 스택이다.

안드로이드 아키텍처

애플리케이션 캘린더, 전화번호부(contact), 맵, 브라우저, 이메일, SMS 프로그램 등의 핵심 app을 탑재한다. 모든 app은 Java 언어로 작성되어 있다. 우리가 작성하는 app들도 이 layer에 속하게 된다.

애플리케이션 프레임워크 (1/3) App 작성/구동에 필요한 서비스를 제공한다. Core system service Hardware service Native app과 동일한 수준으로, 프레임워크 API 사용이 가능하다. Java 사용이 가능한 프레임워크를 제공하며, 내부적으로 는 대부분 C/C++ 코드로 작성되어 있다.

애플리케이션 프레임워크 (2/3) Core system service Activity manager: 애플리케이션의 life cycle을 관리하며, navigation history(뒤로 돌아가기)를 관리한다. View system: 리스트, 버튼, 텍스트 박스, (내장된) 웹 브라우저 등 풍부 하고 확장성 뛰어난 뷰 집합을 제공한다. Content provider: 다른 응용프로그램들의 데이터를 가져오고 또한 자신 의 데이터를 제공한다. Resource manager: 프로그램 레벨의 코딩을 하지 않고도 다양한 리소 스(strings, graphics 등)를 사용할 수 있도록 도와준다. Notification Manager: Status bar에 알림문구를 표시하는 제공합니다.

애플리케이션 프레임워크 (3/3) Hardware service Location manager Telephony manager Bluetooth service WiFi service, USB service, sensor service

라이브러리 안드로이드는 C/C++ 라이브러리를 포함하고 있다. 라이브러리 기능은 애플리케이션 프레임워크를 통해 개발자 에게 제공된다. 주요 라이브러리 시스템 C 라이브러리: BSD의 libc에서 파생되어 구현됨 미디어 라이브러리: MPEG4, H.264, JPG 등 지원 Surface 매니저: 2D 및 3D 그래픽 레이어 관리 SGL(2D graphics engine), 3D 라이브러리 SQLite: Lightweight한 관계형 데이터베이스 엔진

안드로이드 런타임 안드로이드 런타임은 달빅(Dalvik) 가상 머신과 Core 라이브 러리로 구성된다 달빅은 임베디드 환경에 적합하게 디자인되었으며, 모든 안드 로이드 app은 달빅 상에서 구동된다. 달빅은 높은 수준으로 CPU 최적화된 바이트코드를 interpret 하며, 실행 시 메모리를 매우 효율적으로 사용한다. 컴파일(빌드) 시점에 Java .class와 .jar 파일들이 달빅 바이트 코드인 dex 파일로 변환된다.

리눅스 커널 핵심 시스템 서비스(보안, 메모리 관리, 네트워크 스택, 드라이버 등)에 대해 리눅스 버전 2.6 사용 핵심 시스템 서비스(보안, 메모리 관리, 네트워크 스택, 드라이버 등)에 대해 리눅스 버전 2.6 사용 리눅스 커널은 하드웨어와 안드로이드 플랫폼 스택 사이 의 추상화 계층 역할 수행

안드로이드 아키텍처 (revisit)

목차 안드로이드 정의 안드로이드 특징 안드로이드 아키텍처 안드로이드 커널 접근

에뮬레이터 쉘 접속 에뮬레이터가 수행 중인 상태에서 다음과 같이 입력한다. adb –s emulator-5554 shell 5554는 포트 번호이다. 포트 번호 확인

오드로이드 쉘 접속 개발용 디바이스가 연결된 상태에서 다음과 같이 입력한다. adb –s serial_number shell

안드로이드 리눅스 둘러보기(1/7)

안드로이드 리눅스 둘러보기(2/7)

안드로이드 리눅스 둘러보기(3/7)

안드로이드 리눅스 둘러보기(4/7)

안드로이드 리눅스 둘러보기(5/7)

안드로이드 리눅스 둘러보기(6/7)

안드로이드 리눅스 둘러보기(7/7)

당근, 에뮬레이터를 실행 후, 리눅스에 접근해야 합니다. 실제 apk 파일을 볼까요~ (1/2) Native apk: “/system/app” 디렉토리에 있음 당근, 에뮬레이터를 실행 후, 리눅스에 접근해야 합니다. native applications

실제 apk 파일을 볼까요~ (2/2) Third party apk: “/data/app” 디렉토리에 있음 third party applications (즉, 제가 만든 application 입니다)

안드로이드 App의 실행 모든 app은 자신의 리눅스 프로세스 내에서 실행된다. 각 프로세스는 자기 자신의 virtual machine을 가진다. 각 app에는 고유한 리눅스 user ID가 부여된다. 리눅스 permission scheme을 이용한다. User ID