대학생 ( 또는안드로이드초보자 ) 을위한강의노트 안드로이드교과과정개요 2009. 9. 3. wwwkandroid www.kandroid.orgorg 운영자 : 양정수 (yangjeongsoo@gmail.com) 출처 : www.kandroid.org ( 탭메뉴 ) 북스토어 ( 왼쪽메뉴 ) 대학생을위한강의노트
목차 새로움에대한도전, 그아름다움과가치오픈소스의시대이동통신산업안드로이드 App. 개발준비안드로이드 App. 교육 ( 개요 )
새로움에대한도전, 그아름다움과가치 : iphone 우리가 iphone 에주목하는 ( 했던 ) 이유는? - Hardware 사양 - 사용자인터페이스 - 탑재된 Software - ipod 성공이후의애플야심작에대한기대 - 폰디자인프로세스의변화또는혁신 3
새로움에대한도전, 그아름다움과가치 : iphone ( 간단한역사 ) - 1973 년 : Xerox Alto - GUI 최초구현 (Icon, Window, Mouse, etc) Small Talk 란프로그래밍언어를개발한것으로유명한앨런케이는 1972년제록사의 PARC(Palo Alto Research Center) 에서 GUI에대한개념과기술구현에대한연구를진행하였음. 케이는 1960년대후반부터맥루한의미디어이론과제롬부루너의인지이론을점목해어린이가컴퓨터와경험을공유할수있는환경으로 GUI를제안했다. GUI는문자를대신해정보를전달하는아이콘, 스크린을효율적으로활용하는중첩윈도우, 더글러스엥겔바트가개발한마우스라는입력장치로구성되었다. - 1976년 : Apple사설립및AppleⅠ출시, 1977년 : Apple Ⅱ출시 ( 큰성공을거둠 ) - 1979년 : Steve Jobs Xerox의 PARC 방문, 알토컴퓨터를보고, 차세대컴퓨터에적용할 ' 데스크탑메타포 ' 란개념을만들어냄. - 1983 년 : Apple 사 LISA 출시 - 현재존재하는 GUI 를사실상완성 ( 사업적으로는실패 ) - 1984년 : 애플사 Macintosh 출시 ( 큰성공을거둠 ) - 1986 년 : Steve Jobs Apple 사를떠남 NeXT computer 설립 ( WWW, Doom, MaxOS X) - 1990년 : 마이크로소프트윈도우 3.0 출시 - 1992년 : 마이크로소프트윈도우 3.1 출시 - 1996년 : 애플사 NeXT 매입, 1997년 : Steve Jobs Apple CEO 복귀 - 2001 년 : ipod 출시, 2003 년 : itunes, 2005 년 itunes Video 4
새로움에대한도전, 그아름다움과가치 : iphone ( 맥월드 2007) 출처 : http://www.youtube.com/watch?v=d5vtb7lj_na 5
새로움에대한도전, 그아름다움과가치 : iphone ( 스티브잡스의선택 ) Alan Kay 6
새로움에대한도전, 그아름다움과가치 : Android ( 개발자챌린지공지 ) 출처 : http://www.youtube.com/watch?v=xpd0cshamy4 7
새로움에대한도전, 그아름다움과가치 : Android ( 간단한역사 ) Android 관련주요일정 2005.8 Google, Android Inc. 를매입함. 2005.11 Google, Skia 를매입함. 2007.10 Google, Jaiku Inc. 를매입함. 2007.11.5 OHA 설립, 모바일디바이스에대한오픈스탠다드개발착수 2007.11 Ascender Corp, OHA 를위한 Droid Font Collection 공급 2007.11.12. Google, Android SDK 릴리즈 Google, Android ADC 발표. ( 총 1,000만달러상금규모 ) 2007.12.3. Google, 700MHz 주파수경매참여 2008.1.24. 美 FCC, 700MHz 주파수경매시작 2008.1.28. 28 Google, Android ADC 일정연기발표 2008.2.13. Google, Android SDK m5-rc14 릴리즈 2008.2.11~14. 2 14 The Mobile World Congress 2008 Barcelona Texas Instruments, Google Android 프로토타입시연 8
새로움에대한도전, 그아름다움과가치 : Android (G1 폰발표회 ) 2008 년 9 월 23 일 9
새로움에대한도전, 그아름다움과가치 : Android ( 로드맵 ) < Android 1.1 Android 1.5 (Cupcake) Android 1.6(?) (Donut) Android 2.0 (Eclair and Flan) 2008.09.23 : 안드로이드 1.0 SDK Release 1 배포 2008.10.21 : 안드로이드전체소스공개 2008. 4/4 분기 Localization : 문자열, 사용자인터페이스, 날짜및숫자표기 Support for multiple APNs SIM application toolkit (STK) 2009. 1/4 분기 Input method framework (IMF) Input method engines (IME) 2009. 02 : 안드로이드 1.1 SDK R1 배포 2009. 04 : 안드로이드 1.5 SDK R1, R2, R3 배포 2009. 06 : 안드로이드 1.5 NDK R1 배포 10
새로움에대한도전, 그아름다움과가치 : 생각해볼만한것 1964 년 미디어의이해 라는책을통해 옷은피부의확장, 자동차의바퀴는다리의확장, 책은눈의연장이며, 전기는중추신경의연장 이라고언급했던마샬맥루한은 모든기술을인간기능 (function) 의확장 이라고정의했다. 더불어 미디어는감각기능의확장 이라고정의하면서 그정세도 ( 精細度 /definition) 와참여도 ( 參與度 /participation) 의정도에따라 Hot media 와 Cool media 로구분했다. 일반적으로핫미디어는높은정세도를가지기때문에정보를접하는사람은큰상상력을동원할필요가없다. 반면에쿨미디어는정세도가낮은대신참여도는높은매체이다. 오늘날수많은매체들이핫미디어에서쿨미디어로빠르게진행중에있다. 대표적인것이모바일, 휴대전화일것이다. 스마트폰의쌍두마차, iphone 과 Android 는여전히모바일의화두이다. 누군가는아이폰은핫미디어에, 구글폰은쿨미디어에비유했다. 스스로를혁신할수있고그것을통해시장을혁신할수있다고믿는애플 iphone 과, 공개시장을통해혁신의가치를수렴해서궁극적인혁신을이루고자하는구글과 OHA 의 Android 는 우리가분명주목할만한것이다. 11
오픈소스의시대 : GNU 와 Linux Richard Stallman 출처 : http://www.youtube.com/watch?v=ixuxnm8a-n8 Linus Torvalds 12
오픈소스의시대 : GNU 출처 : http://www.freesoftwaremagazine.com/node/2564/pdf 1983년 Richard Matthew Stallman(RMS) GNU Project 시작 1985년 RMS, FSF(Free Software Foundation) 창립 1989년 : GNU GPL 1.0 발표 1991년 : GNU GPL 2.0 발표 1999년 : GNU LGPL 2.1 발표 2007년 : GNU GPL 3.0, LGPL 3.0 발표 Freedom 0: the freedom to run the program as you wish. Freedom 1: the freedom to study the source code, and change it to make the program do what you wish. Freedom 2: the freedom to redistribute ib t copies of the program when you wish. Freedom 3: the freedom to distribute copies of your modified versions when you wish. 13
오픈소스의시대 : Linux (Unix, Minix, Linux) Ken Thompson & Dennis Ritchie Hello everybody out there using minix - Andrew Stuart Tanenbaum I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torva...@kruuna.helsinki.fi) ki PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(. 14
오픈소스의시대 : 안드로이드와오픈소스 Android is open source. Richard Stallman 구분 Apache License BSD License GPL LGPL MIT License MPL Common Public License Eclipse Public License Linus Torvalds Copyleft No No Yes Yes No Yes Yes No Project bionic bootloader/legacy build dalvik development frameworks/base frameworks /policies/base system/extras Project hardware/libhardware hardware/ril kernel prebuilt recovery system/bluetooth system/core External Project Packages Toolchain Emulator, Eclipse Plugin system/wlan/ti 15
오픈소스의시대 : 우리가오픈소스시대에산다는것은? 담론이란, 어떤특수한주제를말하고, 생각하고재현하는방식임. 담론의생산을통제하고, 선별하고, 조직화하고나아가재분배하는일련의과정들 을분석함. - 미셸푸코, 1970 년, 콜레주드프랑스취임연설, 담론의질서中에서 Subversion is the devil, use Git. 상세보기 : http://www.kandroid.org/board/board.php?board=androidmarket&command=body&no=10 16
이동통신산업 : 주파수산업의기원및그존재적본질 dot-dot-dot(s) Marconi's antenna system at Poldhu, Guglielmo Marconi Cornwall, December 1901. (John (1874~1937) 1937) Belrose) Marconi's 1901 receiving i station ti was on the grounds of this castlelike structure on what's now called Signal Hill, overlooking St John's Harbor in Newfoundland. Signal Hill is home to VO1AA. [Rick Lindquist, N1RL, Photo] The frequency spectrum is technology, industry, money, culture, and power. 주파수는기술임과동시에산업이며, 돈이며, 문화이며, 그리고권력이다. - J.D. Bedin in Struzak 2000 공공성 ITU 국가방통위통신사업자 17
이동통신산업 : 안드로이드가극복하고자하는이동통신시장의현실 The FOUR OPENS of Successful Open Access - The letter of GOOGLE to FCC, July 18, 2007 소비자는지금의무선환경보다더많은경쟁과혁신을경험할가치가있다. 누가궁극적으로이경매에서이기든상관없이, 진정한승리자는인터넷을접속하는방법에서이전보다더나은선택을경험할미국의소비자다. - 2007. 11. 30. 구글 CEO, 에릭슈미츠 Open Networks Open Devices Open Services Open Applications 18
안드로이드 App. 개발준비 : 이클립스, 안드로이드 SDK, ADT 등 19
안드로이드 App. 개발준비 : Dan Morrill 의애플리케이션개발설명 출처 : http://www.youtube.com/watch?v=i6obtqiiyfe 20
안드로이드 App. 개발준비 : MIT 학생들의안드로이드 App. 작품 출처 : http://techtv.mit.edu/videos/270-60876081-students-create-award-winning-mobile-platform-software 21
안드로이드 App. 개발준비 : 안드로이드개발자챌린지최우수작 (?) 출처 : http://www.youtube.com/watch?v=v2-jlk0anii 22
안드로이드 App. 교육 : 교육을위한최소요구사항 http://java.sun.com/docs/books/tutorial/java/toc.html /d /b /t t /TOC l What Is an Object? What Is a Class? What Is Inheritance? What Is an Interface? What Is a Package? 23
안드로이드 App. 교육 : 평가방법 1. 과제의내용 ( 제한없음 ) 및형식 ( 개인또는팀 ) 안드로이드관련문서정리 ( 용어, 역사, 기술개념정리등 ) 안드로이드관련기획 ( 서비스, 컨텐트, 애플리케이션등 ) 안드로이드애플리케이션개발 안드로이드 Native 애플리케이션개발 안드로이드디바이스프로토타이핑 2. 과제제출시점 ( 총2회 ) 중간고사시점 기말고사시점 3. 기타 모든평가는과제제출로대신합니다. ( 시험은없습니다.) 과제제출방법은별도로공지할예정입니다. 24
안드로이드 App. 교육 : 강의개요 ( 준비 : 안드로이드 SDK 란?) 1. http://www.kandroid.org/ / 접속 2. 회원가입 3. 탭메뉴에서북스토어클릭 4. 왼쪽메뉴에서대학생을위한강의노트클릭 5. 게시글중, 준비물 : 안드로이드개발환경설정클릭후읽고따라서해보세요. 6. 그런다음, p20 의 Dan Morrill 의애플리케이션개발설명을보고따라서해보세요. ( 단, 실행해보기전에 AVD 생성하여야함. p26 에생성방법설명되어있음 ) 이것을통해이해해야하는것은, 다음페이지 (p27, p28) 에나오는안드로이드빌드프로세스 (1,2) 입니다. 25
안드로이드 App. 교육 : 강의개요 ( 준비 : 안드로이드 SDK 란?) 1. 클릭후, 2. google_android1.5 입력 3. Google APIs 1.5 선택 4. Create AVD 클릭 1 2. my_android1.1 입력 3. Android 1.1 1.1 선택 4. Create AVD 클릭 2. my_android1.5 입력 3. Android 1.5 1.5 선택 4. Create AVD 클릭 5. Finish 클릭 2 3 4 5 26
안드로이드 App. 교육 : 강의개요 ( 준비 : 안드로이드 SDK 란?) 안드로이드애플리케이션빌드프로세스 (1) Eclipse (ADT Plug-in) Java compiler dx / aapt converter 결과물 : Unsigned APK Java Dalvik (classes) (.dex) Android Application (.apk) Ref. Libs Resources Manifest XML Res. Compilation + Other Res. Pre-process Zip Compressed File Key (Debug Key Custom Key) 27
안드로이드 App. 교육 : 강의개요 ( 준비 : 안드로이드 SDK 란?) 안드로이드애플리케이션빌드프로세스 (2) jarsigner (keytool) adb install am start 결과물 : App. Launch Android Application (.apk) Zip Compressed File Key (Debug Key Custom Key) Signed Android Application (.apk) by Debug Key Signed Android Application (.apk) by Debug Key 28
안드로이드 App. 교육 : 강의개요 (1 강. 안드로이드플랫폼기초 ) Java A PPLICATIONS Alarm Dialer SMS/MMS IM Browser Camera Alarm Home Contacts Voice Dial Email Calendar Media Player Albums Clock A PPLICATION F RAMEWORK Activity Manager Window Manager Content Provider View System Notification Manager Package Manager Telephony Manager Resource Manager Location Manager C/C++ Surface Manager Media Framework L IBRARIES SQLite A NDROID R UNTIME Core Libraries OpenGL ES FreeType WebKit Dalvik Virtual Machine SGL SSL Libc H ARDWARE A BSTRACTION L AYER Graphics Audio Camera Bluetooth GPS Radio(RIL) WiFi L INUX K ERNEL Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Driver Power Management 29
안드로이드 App. 교육 : 강의개요 (1 강. 안드로이드플랫폼기초 ) Zygote App. Framework System Services Hardware Services Dalvik VM Home Dalvik VM Native Server Audio Flinger Surface Flinger daemons usbd adbd debuggerd rild Service Manager runtime Zygote libc libc libc Init Kernel Binder Driver System Server libc Home libc zygote란애플리케이션을빠르게구동하기위해서미리 fork 되어있는프로세스이다. 이것은시스템에서 exec() 호출을통해특정애플리케이션을실행하고자하기전까지는중립적인상태, 즉특정애플리케이션과합체되지않는상태를유지한다. 30
안드로이드 App. 교육 : 강의개요 (2 강. 안드로이드애플리케이션기초 ) Application Building Block AndroidManifest.xml Activity ContentProvider Service BroadcastReceiver Intent : Bundle of Information - Explicit Method : Call Class - Implicit Method : IntentFilter Action, Data, Category Declared at AndroidManifest.xml Activity Activity Task Activity Activity ContentProvider ContentProvider Service Process Service include Dalvik VM Process Include Dalvik VM Process include Dalvik VM APK Package APK Package 31
안드로이드 App. 교육 : 강의개요 (2 강. 안드로이드애플리케이션기초 ) Application Lifecycle Activity y Lifecycle Service Lifecycle Service is started by startsservice() Service is started by bindservice() oncreate() oncreate() onstart() onbind() Service is running Client interacts with the service onrebind() The service is stopped (no callback) onunbind() ondestory() ondestory() Service is Shut down Service is Shut down 32
안드로이드 App. 교육 : 강의개요 (3 강. 사용자인터페이스 ) ViewGroup ViewGroup View View View View View <?xml version="1.0" "10" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/... android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello, I am a Button" /> </LinearLayout> L t 33
안드로이드 App. 교육 : 강의개요 (3 강. 사용자인터페이스 ) Dynamic Data Binding Mechanism AdapterView Adapter Data Source Handling User Selection Event External Data Source Cursor ArrayList Adapter AdapterView ListView Spinner Gallery 34
안드로이드 App. 교육 : 강의개요 (4 강. 리소스와에셋 ) Eclipse Java dx / aapt 결과물 : (ADT Plug-in) compiler converter Unsigned APK Java (classes) Ref. Libs Resources Manifest Dalvik (.dex) XML Res. Compilation + Other Res. Pre-process Android Application (.apk) Zip Compressed File Key (Debug Key Custom Key) 35
안드로이드 App. 교육 : 강의개요 (4 강. 리소스와에셋 ) Alternate Resources Basic Resource Folder Add Qualifier Qualifier MCC and MNC Language and region Screen orientation Screen pixel density Touchscreen type Whether the keyboard is available to the user Primary text input method Primary non-touchscreen navigation method Screen dimensions SDK version (Minor version) 36
안드로이드 App. 교육 : 강의개요 (5 강. 인텐트와인텐트필터 ) Intent Intent Intent Component Name Action Category Data Extras Flags Activity Activity Task Activity Activity ContentProvider ContentProvider Service Process Service include Dalvik VM Process Include Dalvik VM Process include Dalvik VM APK Package APK Package 37
안드로이드 App. 교육 : 강의개요 (5 강. 인텐트와인텐트필터 ) Implicit Intent Component Name Action Category Data Extras Flags AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.kandroid.helloandroid android:versioncode="1" android:versionname="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".helloandroid android:label="@string/app @string/app_name name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> <uses-sdk android:minsdkversion="3" /> </manifest> Intent Resolution Component Name Action Test Category Test Data Test Extras Flags Activ vities Serv vices Broadcast Receivers Providers Content 38
안드로이드 App. 교육 : 강의개요 (6 강. 데이터저장공간 ) All Application Haves their own directory /data/data/<package_name> 39
안드로이드 App. 교육 : 강의개요 (6 강. 데이터저장공간 ) AndroidManifest.xml Activitie s Services Br roadcast Rec ceivers Content Prov viders /data/data/<package_name> preferences databases files networks (sqlite3) 40
안드로이드 App. 교육 : 강의개요 (7 강. 컨텐트프로바이더 ) All application data are private to that application. Data sharing mechanism between apps. 41
안드로이드 App. 교육 : 강의개요 (7 강. 컨텐트프로바이더 ) ContentResolver content:// ContentProvider Ac ctivities Se ervices Br roadcast Receivers Co ontent Prov viders query() insert() delete() update() /data/data/<package_name> preferences files AndroidManifest.xml databases (sqlite3) networks 42
안드로이드 App. 교육 : 강의개요 (8 강. 보안과퍼미션 ) USER PID PPID VSIZE RSS PC NAME ----------------------------------------------------------------------- root 1 0 264 176 0000c36c S /init root 17 1 724 300 afe0b50c S /system/bin/sh system 18 1 796 252 afe0b74c S /system/bin/servicemanager root 19 1 1824 324 afe0b50c S /system/bin/mountd root 20 1 652 252 afe0c0bc S /system/bin/debuggerd radio 22 1 5308 636 afe0bdbc S /system/bin/rild root 23 1 69732 18780 afe0b874 S zygote media 24 1 16052 3068 afe0b74c S /system/bin/mediaserver bluetooth 26 1 1160 560 afe0c69c S /system/bin/dbus-daemon root 27 1 788 288 afe0b50c S /system/bin/installd root 30 1 820 316 afe0c61c S /system/bin/qemud root 33 1 3328 144 0000e794 S /sbin/adbd system 46 23 196516 23832 afe0b74c S system_serverserver radio 84 23 103296 16628 afe0c824 S com.android.phone app_5 90 23 121588 21136 afe0c824 S android.process.acore app_11 108 23 92172 11984 afe0c824 S com.android.mms app_16 121 23 95200 11588 afe0c824 S com.google.process.gapps gapps app_1 134 23 91844 11188 afe0c824 S com.android.alarmclock app_0 148 23 94584 13200 afe0c824 S com.google.android.apps.maps app_4 155 23 91908 12100 afe0c824 S android.process.media root 174 33 724 320 afe0c4cc S /system/bin/sh 43
안드로이드 App. 교육 : 강의개요 (8 강. 보안과퍼미션 ) Permission enforcement cases At the time of a call into the system When starting an activity Both sending and receiving broadcast When accessing and Operating on a content provider URI Permission Binding or starting ti a service 44
안드로이드 App. 교육 : 강의개요 (9 강. 안드로이드매니페스트파일 ) 45
안드로이드 App. 교육 : 강의개요 (9 강. 안드로이드매니페스트파일 ) Structure of the Manifest File <?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission /> <permission /> <permission-group /> <permission-tree /> <instrumentation /> <uses-sdk /> <application> <activity> <intent-filter><action /><category /><data /></intent-filter><meta-data /> </activity> <activity-alias> <intent-filter>.. </intent-filter> <meta-data /> </activity-alias> <service> <intent-filter>.. </intent-filter> <meta-data /> </service> <receiver> <intent-filter>.. </intent-filter> <meta-data /> </receiver> <provider> <grant-uri-permission /> <meta-data /> </provider> <uses-library /> </application> </manifest> 46
안드로이드 App. 교육 : 강의개요 (10 강. 그래픽, 2 차원및 3 차원 ) 47
안드로이드 App. 교육 : 강의개요 (10 강. 그래픽, 2 차원및 3 차원 ) 2D Drawables ShapeDrawable NinePatchDrawable TweenAnimation FrameAnimation 3D SurfaceView OpenGL ES EGL OpenGL ES pipeline stages vertices primitives fragments 48
안드로이드 App. 교육 : 강의개요 (11 강. 오디오와비디오 ) Audio/Video Playback android.media.mediaplayer Record android.media.mediarecorder 49
안드로이드 App. 교육 : 강의개요 (11 강. 오디오와비디오 ) Android Supported Media Formats (Core Media Formats) Type Format E D Details File Type(s) Supported Audio AAC LC/LTP X Mono/Stereo content in any combinatio HE-AACv1(AAC+) HE-AACv2 (enhanced AAC+) X X n of standard bit rates up to 160 kbps a nd sampling rates from 8 to 48kHz AMR-NB X X 4.75 to 12.22 kbps sampled @ 8kHz 3GPP (.3gp) 3GPP (.3gp) and MPEG-4 (.mp4,.m4a). No support for raw AAC (.aac) AMR-WB 9 rates from 6.60 kbit/s to 23.85 kbit/s s X ampled @ 16kHz 3GPP (.3gp) MP3 Mono/Stereo 8-320Kbps constant (CBR X ) or variable bit-rate (VBR) MP3 (.mp3) MIDI Type 0 and 1. DLS Version 1 and Type 0 and 1 (.mid,.xmf,. MIDI 2. XMF and Mobile XMF. Support for rin mxmf). Also RTTTL/RTX ( X gtone formats RTTTL/RTX, OTA, and i.rtttl,.rtx), OTA (.ota), and Melody imelody (.imy) Ogg Vorbis X Ogg (.ogg) PCM/WAVE 8- and 16-bit linear PCM (rates up to lim X it of hardware) WAVE (.wav) Image JPEG X X base+progressive JPEG (.jpg) GIF X GIF (.gif) PNG X PNG (.png) BMP X BMP (.bmp) Video H.263 X X 3GPP (.3gp) H.264 X X 3GPP (.3gp) and MPEG-4 (.mp4) MPEG4 SP X 3GPP (.3gp) 50
안드로이드 App. 교육 : 강의개요 (12 강. 위치기반서비스와맵서비스 ) 51
안드로이드 App. 교육 : 강의개요 (12 강. 위치기반서비스와맵서비스 ) Location Service getsystemservice LOCATION_SERVICE GPS_PROVIDER Map Service 52
안드로이드 App. 교육 : 강의개요 (13 강. 안드로이드인터페이스정의언어 ) IDL File idl tool Code - C - C++ - Java - Perl AIDL File aidl tool Java Code aidl 53
안드로이드 App. 교육 : 강의개요 (13 강. 안드로이드인터페이스정의언어 ) RPC Mechanism case : called locally case : called remotely defined by Android IBinder interface Binder class AIDL Client bindservice(intent,..) Interface generated by the aidl tool Stub inner class inner class Used by Android AIDL Service return IBinder defined by application class that implements the interface used remotely (by the service) used locally (by clients of the service) 54
안드로이드 App. 교육 : 강의개요 (14 강. 애플리케이션위젯 ) Adding App Widget - Long Click at Launcher 55
안드로이드 App. 교육 : 강의개요 (14 강. 애플리케이션위젯 ) App Widget Examples 56
안드로이드 App. 교육 : 강의개요 (15 강. 안드로이드마켓과 App. 배포 ) Android Market Service : www.android.com/market/ 57
안드로이드 App. 교육 : 강의개요 (15 강. 안드로이드마켓과 App. 배포 ) Android Market Client http://www.kandroid.org/board/board.php?board=androidmarket&command=body&no=17 58
안드로이드 App. 교육 : 강의개요 (16 강. 안드로이드관련우수사례 ) 성능 (Performance) 안드로이드애플리케이션디자인철학 응답성 (Responsiveness) 무결절성 (Seamlessness) 59
안드로이드 App. 교육 : 강의개요 (16 강. 안드로이드관련우수사례 ) Time 3,000,000 2,500,000 2,000,000 1,500,000 1,000,000 500,000 성능 (Performance) Action 60
질의및응답 61