알지오 평생교육원

로그인|회원가입|고객센터
HOME>IT전문가>모바일 / 앱>안드로이드 NDK

안드로이드 NDK

안드로이드 NDK
20회차 속성과정
전체 : 15시간 34분|회차당 평균 : 46분42초

이용기간 2개월

전문강사 : 알지오 R&D [IT]

370,000225,000



안드로이드 NDK 인강 평생교육원 교육 안내
안드로이드 NDK는 Native Development Kit의 약자로 자바 프로그래밍 언어로 작성된 안드로이드 애플리케이션에서 사용이 가능한 개발 툴 체인입니다. 알지오 안드로이드 NDK 강좌를 통해 NDK 개발 환경 구축을 시작으로 JNI를 이용한 자바와 C 인터페이스, 네이티브 코드에서 자바 콜백 호출, OpenGL ES를 이용한 그래픽 랜더링, 입력 기기 처리, 기존 라이브러리 포팅, 물리 시뮬레이션, 3D 그래픽 랜더링, 멀티미디어 재생 등을 배울 수 있습니다.
  • 01.50분 JNI를 이용한 자바와 C 인터페이스 part1

    JNI 인터페이스를 사용해서 자바 코드와 네이티브 C 코드 사이에 자료를 주고 받기

    책갈피 : [00:15] 빈 프로젝트 생성/[00:22] MainActivity.java 코드 열기/[07:29] 해당파일 추가 생성/[15:43] activity_main.xml 파일 수정/[21:32] 변수 선언/[30:37] 안드로이드 파일 생성/[37:52] GetStringUTFChars 함수/[43:34] 버튼을 눌렀을 때 동작 코드 추가/[47:45] 에뮬레이터 확인

  • 02.51분 JNI를 이용한 자바와 C 인터페이스 part2

    JNI 인터페이스를 사용해서 자바 코드와 네이티브 C 코드 사이에 객체 및 배열 형식의 자료를 주고 받으며 오류를 처리

    책갈피 : [00:09] 객체 정보 교환 방법/[05:30] 4개의 공용 함수-메소드에서 동일한 기능/[11:05] 에러 메시지 구문 추가/[20:41] ndk-build/[28:51] Store.java 파일 열기/[34:00] Store.c 에서 오류 함수 추가/[42:07] refresh-라이브러리 자동 생성/[49:45] 오류 해결 후 ndk-build

  • 03.51분 네이티브 코드에서 자바 콜백 호출

    JNI 인터페이스를 사용해서 네이티브 코드에서 자바 코드의 매소드 호출

    책갈피 : [00:09] 자바와 네이티브 thread 동기화/[05:27] 3개의 상수 define/[11:54] MonitorEnter/[18:59] processEntry 메소드 구현/[22:32] 헤더 파일 추가/[26:37] 인터페이스 상속/[32:00] runWatcher/[38:22] 콜백하는 메소드 정보 연동/[42:37] 각각의 자료형에 맞는 대표 심볼/[49:14] processEntry 수정/[51:15] 콜백/콜백 중단 확인

  • 04.50분 완전한 네이티브 어플리케이션 작성

    자바 코드 없이 순수 네이티브 C/C++ 코드만을 사용해서 기본적인 이벤트를 처리하는 안드로이드 어플리케이션 제작

    책갈피 : [00:12] c네이티브 코드만을 사용해 어플리케이션 생성/[00:17] 새 프로젝트 생성/[05:15] Apply 현재설정 수정/[10:39] 두번째 Header File 추가/[17:18] 동일한 이름의 c++ 파일 추가/[23:29] module 이름으로 라이브러리 생성/[30:52] 콜백함수 선언/[35:49] 추가적으로 코드 삽입/[39:43] 함수 수정/[44:15] 메시지 log로 출력/[48:20] log 메시지 확인

  • 05.42분 OpenGL ES로 그래픽 랜더링 part1

    OpenGL ES 그래픽 라이브러리를 사용해서 안드로이드 어플리케이션을 제작

    책갈피 : [00:11] 타이머를 통해 물체를 이동시키는 어플리케이션/[04:55] blaster.hpp 파일 열기/[08:22] TimeService-reset/[16:15] 오류 처리/[18:59] GraphicsService class 선언/[24:32] OpenGL을 사용하기 위해 초기화 하는 start 메소드/[28:37] paths and symbols/[33:45] 기존 코드 삭제하고 update 메소드 호출/[38:00] scripts/[41:30] obj-libpng.a라이브러리 생성 확인

  • 06.50분 OpenGL ES로 그래픽 랜더링 part2

    OpenGL ES 그래픽 라이브러리를 사용해서 텍스쳐 및 스프라이트를 표현하기

    책갈피 : [00:08] OpenGS ES로 텍스쳐 로딩 실습/[05:45] 텍스쳐를 사용하는데 관련된 class 만들기/[10:31] 콜백함수 등록/[16:26] png_read_image/[22:51] 추가로 만든 소멸자 구현/[28:11] LogCat 확인/[33:15] header file 추가/[38:44] 해당 x,y 인덱스 값 구하기/[42:20] 스프라이트 관련 변수 초기화/[46:57] class 구현/[49:38] 에뮬레이터 실행 후 애니메이션 확인

  • 07.46분 OpenGL ES로 그래픽 랜더링 part3

    OpenGL ES 그래픽 라이브러리를 사용해서 타일맵 랜더링 작업 수행하기

    책갈피 : [00:08] 타일맵 랜더링/[05:45] 타일맵 class 선언/[10:30] xmlDocument 인스턴스 사용/[15:43] Tiles/[23:29] 필요한 vertex 좌표값 저장/[31:40] 그림을 잘라 타일로 붙여넣기/[37:52] Blaster코드에서 background class 생성/[42:07] 변수 사용/[45:59] 라이브러리 사용 기본 작업 완료

  • 08.42분 OpenSL ES로 사운드 재생

    OpenSL ES 사운드 라이브러리를 사용해서 사운드를 재생 및 녹음 작업 수행하기

    책갈피 : [00:18] 음악 재생 실습/[05:00] descript에서 음악파일 확인/[10:03] 음악을 멈추는 메소드 구현/[16:48] unload메소드/[23:03] 사운드 서비스가 멈췄을 때의 동작 추가/[27:18] assets폴더에 효과음 넣기/[34:07] 녹음을 초기화 하는 메소드 호출/[39:19] blaster코드 열기

  • 09.38분 입력 기기 처리

    안드로이드 NDK를 사용해서 입력 기기에서 발생하는 이벤트 처리하기

    책갈피 : [00:10] 입력장치 처리 실습/[05:46] input핸들러를 사용하기 위해 자료 추가/[12:20] ontouchevent메소드 구현/[19:07] update메소드 추가/[24:40] 키보드,디패드,트랙볼 입력처리 실습/[31:02] 트랙볼 이벤트 메소드 구현/[36:21] 설정 정보 중 dPad를 yes로 변경

  • 10.50분 센서 처리

    안드로이드 NDK를 사용해서 센서에서 발생하는 이벤트를 처리하기

    책갈피 : [00:06] 가상키보드 제어 방법 구현/[05:46] 가상키보드를 보여주는 메소드/[12:31] 키보드 클래스를 입력서비스를 처리하는 input서비스에서 가져와 사용/[31:26] 멤버변수 수정/[43:42] findrotation메소드 실행/[48:20] 화면 회전에 관련된 멤버변수 추가/[50:04] 가속도 센서축을 전환

  • 11.47분 기존 라이브러리 포팅 part1

    안드로이드 NDK를 통해 기존의 C++ 관련 범용 라이브러리를 가져와서 적용하기

    책갈피 : [00:07] c++ 라이브러리 포팅/[06:12] close메소드 코드 수정/[13:20] sd카드를 사용할 수 있도록 권한 추가/[19:18] ship파일 열어 경로 수정/[24:14] 장애물 클래스 구현//[31:33] onactivate가 호출되었을 때 코드 입력/[39:29] 빌드 설정 파일 수정/[41:49] try/catch문으로 변경/[45:58] 소멸자 삭제

  • 12.45분 기존 라이브러리 포팅 part2

    안드로이드 NDK를 통해 기존의 그래픽관련 라이브러리를 가져와서 적용하기

    책갈피 : [00:06] 부스트 라이브러리 오류 수정/[05:14] lthread생성/[13:24] box2d에 있는 모든 소스파일 선택/[19:30] box2d_static추가/[26:26] 3개의 경로 추가/[31:07] properties for jni에서 경로 추가/[39:45] 헤더파일 추가 후 생성자 구현/[44:28] createbody메소드

  • 13.41분 물리 시뮬레이션

    안드로이드 NDK를 통해 Box2D 라이브러리를 사용해서 물리 시뮬레이션 수행하기

    책갈피 : [00:08] createtarget메소드/[05:55] 헤더파일과 소스파일 생성/[10:35] joint라는 물리효과를 내기위한 속성값/[15:28] update메소드/[22:21] 결과 update/[26:14] 물리효과 추가/[32:22] 우주선에 물리효과 추가/[37:45] 블라스터 코드 열기/[40:44] 에뮬레이터 실행 동작 확인

  • 14.41분 3D 그래픽 랜더링

    안드로이드 NDK를 통해 Irrlicht 라이브러리를 사용해서 3D 그래픽 랜더링 수행하기

    책갈피 : [00:09] 3d그래픽 랜더링 실습/[05:46] 헤더파일 경로 추가/[12:20] graphicsservice클래스 수정/[17:52] stop메소드 수정/[23:45] 배경 만들기/[32:04] 장애물과 우주선 객체에 변경된 사항 적용/[36:00] background 헤더파일과 소스파일 제거/[41:07] 3d그래픽 표현과 애니메이션 구현 확인

  • 15.45분 디버깅과 문제해결

    안드로이드 NDK를 통해 디버깅 및 성능 분석 작업 수행하기

    책갈피 : [00:07] 어플리케이션 디버깅과 문제해결 방법 실습/[06:46] 경고 해결 방법/[13:43] acroedit실행/[21:26] cygwin입력창에 ndk-gdb2실행/[29:45] prof헤더파일 빌드 설정 변경/[35:15] 빌드 설정파일 android로 변경/[38:44] cmd창 열고 adb pull명령어 입력/[43:52] gprof는 간단한 결과를 보여주는 프로파일러

  • 16.43분 멀티미디어 재생 part1

    안드로이드 NDK를 통해 멀티미디어 데이터 처리하기

    책갈피 : [00:09] 멀티미디어 재생 실습/[05:39] value값 변경/[05:46] 저장 후 graphical laout으로 확인/[13:09] 크기 조정/[21:00] log출력/[29:03] 2개의 메소드 구현/[37:15] 버튼 구현/[42:22] jni인터페이스를 통해 메소드를 구동할 수 있도록 선언

  • 17.46분 멀티미디어 재생 part2

    안드로이드 NDK를 통해 멀티미디어 데이터 처리하기

    책갈피 : [00:00] 오픈맥스 라이브러리를 이용한 멀티미디어 재생/[05:01] datacache 배열로 저장되도록 선언/[12:23] rewind 함수 호출/[21:00] streamchangecallback 함수/[29:10] 반환값의 정보를 담고있는 변수 선언/[36:35] player에 대한 인터페이스 추가/[41:42] shutdown/[45:06] 빌드 설정 코드 삽입

  • 18.45분 FFMPEG 활용

    안드로이드 NDK를 통해 FFMPEG 라이브러리를 가져와 비디오, 오디오 데이터 디코딩 작업 수행하기

    책갈피 : [00:10] FFMPEG적용 실습/[06:12] pkt_queue_get함수 구현/[17:18] 실제로 video 디코딩하는 부분 구현/[25:03] audioflinger_device를 세팅하는 래핑함수/[32:07] jni관련 메소드 구현/[38:34] 생성된 ui개체를 자바코드에 가져다 활용/[43:27] surfaceholder선언/[45:04] button까지 import

  • 19.47분 PDK 기반 어플리케이션 개발

    안드로이드 전체 소스를 이용해서 PDK 기반으로 어플리케이션을 개발하는 방법 알아보기

    책갈피 : [00:13] PDK 기반 어플리케이션 개발/[01:23] PDK 설명/[07:00] 터미널을 연 상태에서 downloads디렉토리로 이동[/14:39] 안드로이드 명령셋 입력/[24:03] pdk 기반 어플리케이션 생성/[33:30] apk파일이 생성된 부분 확인/[43:30] 안드로이드 전체 소스가 빌드된 결과/[46:45] path지정

  • 20.1시간 4분 SDL 라이브러리 기반 어플리케이션 개발

    안드로이드로 포팅된 SDL 라이브러리를 NDK를 사용해서 JAVA 코드와 연동하는 실습을 수행하기

    책갈피 : [00:47] Android application만들기/[12:49] Maudiobuffer 함수/[21:22] SDLlibraries 소스코드 확인/[26:07] 사각형 오브젝트에 좌표값 지정/[33:31] SDL_mutexP(audiomutex);/[39:48] 프로젝트에서 확인하는방법/[58:12] 비디오설정/[01:00:20] 설정에 hw.dpad를 yes로 변경/[01:03:51] 기존소스와 비교





주소 : 경기 의정부시 시민로122번길 41-46, 2F|e-mail : help@alzio.co.kr|호스팅 제공자 : SK브로드밴드
회사명 : 알지오|대표 : 채명수|개인정보관리자 : 박진엽|사업자등록번호 : 217-90-17793|통신판매 제2008-0312호
SSL발급자 Equifax Secure Global eBusiness CA-1|Copyright since 2003ⓒalzio.co.,Ltd all rights reserved. SNS

* 중소기업진흥공단 신기술밴처지원

* 서울기술보증 제 20031501호