Android Platform2009.10NemusTech이승민
네무스텍(주)분야 : 모바일/임베디드전문 : 플랫폼/솔루션사업 : 컨설팅/디자인Android, Linux, iPhoneQuick Tiffany 3D Modelingpanels on linear rail modeling (20 source line)Quick remodeling with single line modificationvertical axisCubeCircular rail
Agenda Google Android IntroductionHistoryCurrent StatusArchitectureDeveloping Android Building ApplicationAndroid RoadmapFuture of AndroidSummary
Google Android
Current MobilePlatform Software Stack– Kernel the core of the SW (HW drivers, memory,filesystem, and process management)– Middleware The set of peripheral software libraries(messaging and communication engines,WAP renders, codecs, etc)– Application Execution Environment An application manager and set APIs– UI framework A set of graphic components and aninteraction framework– Application Suite The set of core handset application ( IDLEscreen, dialer, menu screen, contacts,calendar, etc)
Major Platforms Microsoft Windows Mobile- Nokia S60 Platform-Lenovo,LGE,Panasonic,Samsung-Symbian OS 9.x (Java MIDP, C , Python)RIM’s BlackBerry-Push E-Mail Service-MS Exchange, Lotus Domino/Notes, Novell GroupWiseApple’s iPhone- Will release WM7 in 2010Advanced UI , Robust Mac OSPalm Pre-WebOS (WebKit Based)
Linux Platforms LiMo /do/homeTrollTechQtopia GreenPhoneAcquired by NokiaOpenMoko : GNU/Linux based software development platformhttp://www.openmoko.org , http://www.openmoko.comLinux Kernel, GUI using X. Org Server, GTK ,Matchbox window managerFirst Supported phone, Neo1973 (also support Qtopia)ALP (Access Linux Platform)http://alp.access-company.com/Nokia N810 – Maemohttp://maemo.org/MontaVista - MobilinuxPalm Pre - WebOS (WebKit Based)Google - OHA, Android OShttp://www.openhandsetalliance.com/Android : A complete set of SW for mobile devicesOperation System, Middleware, and Key mobile applications
Linux Platforms Benefits– Linux is designed to avoid single-vendor domination– The Linux kernel has been ported to more than a dozen chipsets– Linux is cheap and open to innovation– Technically competent and cost-effective for converged devices– Several governments (most notably China) support Linux Challenges– The Linux kernel is optimized for desktop and embedded– Distribution lack the feature set requested by network operators (except Vodafone?)– No consensus on Linux’s APIs– Mitigating legal challenges
Smart Phone Market Share2009 1Q Market2009 2Q MarketSales (1K)Share (%)Sales (1K)Share 8.918.7iPhone OS3,938.710.85,437.713.3Windows .6Android575.31.6755.91.8SmartPhone WebOS00205.00.5Palm 4.610040,962.8100Source: Gartner Press Releases
What is Android?Android is a software stackthat includes anfor mobile devicesoperating system,middlewareand key applications.developing applications .using the Java programming language.
History of Android History2001 search service for wireless device 2005 Acquire Android (Andy Rubin : Danger CEO, Development Sidekick of TMobile)Acquire Skia (2D Graphics for mobile device)Acquire RegWireless (Browser and Email for mobile device)Move Engineers from PalmSource (Dianne Hackborn, etc )2007.11 Android SDK Release, OHA2008. 2 Android Developer Challenge2008. 11 Android Phone (G1 Phone by HTC/T-mobile)2008. 11 Full Source Open2009. 4 HTC Magic2009. 7 HTC Hero, Samsung i7500, Android Netbook, Set-top.2009. 8 Android Developer Challenge 2
Open Handset AllianceMobile OperatorsSemiconductor CompaniesHandset ManufacturersSoftware CompaniesCommercialized Companies
Androids.각 제조사 사업자 별로다양한 안드로이드 단말 개발 예정 발표
Android Devices.First Google Android Phone AnniversarySource from http://www.googleandblog.comAcer Liquid – A1 – November 28th1. Compulab Exeda2. Dell Ophone mini3i – Benzine3. Geek Phone One4. General Mobile DSTL15. Haier H76. HKC Pearl7. HighScreen PP54208. HTC Click – Fiesta – Tattoo9. HTC Desire 6200 – November10. HTC Dragon – Zoom 211. HTC Dream – T-Mobile G112. HTC Hero – G2 Touch13. HTC Lancaster14. HTC Magic – Sapphire – T-Mobile myTouch3G – Google Ion – Dopod A618815. HTC Passion16. HTC Predator17. Huawei U8220 – T-Mobile Pulse18. Huawei U823019. Innocomm Skate20. Kogan Agora21. Koolu Freerunner – Openmoko GTA0222. Lenovo O1 Ophone23. LG Etna24. LG GW620 Eve – November 1.42.43.44.45.46.47.48.49.50.LG GW880Motorola CalgaryMotorola DevourMotorola Droid – Sholes – Tao – November 7thMotorola HeronMotorola MB200Motorola MB300Motorola Morrison – Cliq – DEXTMotorola Motis – 2010Motorola Sholes Tablet – 2010Motorola Zeppelin – 2010Philips V808Qigi i6Samsung Behold 2 T939 – November 18thSamsung BigfootSamsung Galaxy i7500Samsung Galaxy Lite i5700 – Spica – 2010Samsung HoudiniSamsung m850 QSamsung Moment – InstinctQ m900 – November1stSciphone N12Sony Ericsson XPERIA X3 / x10 Rachael –January 2010Sunno S880Tiger G3ZTE Android
T-Mobile G1/HTC
HTC Hero Sense UI Upgraded framework
Motorola - Cliq MOTOBLUR UI Home ScreenSocial NetworksContactsMessagingCalendar
Android Architecture
Linux Kernel Linux version 2.6 for core system services Security, Memory Management, ProcessManagement, network stack, driver model Kernel : Abstraction Layer between theHW and the rest of the SW stack Android uses only “Kernel” portion inLinux
Android Runtime Core Libraries Provides the functionality of the Java Programming LanguageAndroid Application runs in its own process, with its own instance of the Dalvik virtual machineDalvik VM : Java based license free VM Register based VM, optimization for low memory requirementsExecutes files in the Dalvik Executable (.dex) formatDX tool converts classes to .dex formatWhy Dalvik, Why Java? Separate HW layer/ SW layer Kernel is responsible for SecurityAllow Multiple VM instanceTo insure compatibility Support different HWs (LCD, Keypad, etc)Avoid License Issues
Architecture in detail The Design goal of Android – OpennessBe as flexible as possibleHow it handles access to data (Mashups on the internet and everythingelse)Rapid development (XML, Java)Dev Language?App: JavaFramework: JavaLibraries: C/C OS & Driver: CCreating Native C ApplicationsPossible, but.
Android’s Browser WebKit based (Safari like, same with iPhone and Nokia Series 60) Opera mini passed ACID3 test in AndroidHighly optimized for mobile environment by GoogleNo flash support yet, but Hero supports FlashSupport package and interfaces for SDK
Developing Android
Android SDK ToolsEmulator : QEMU libSDLProvide emulator console, telephony emulation, skinsDDMS (Dalvik Debug Monitor Service)Thread/Heap/Process/Log MonitorFile ExplorerADB ShellLogcat, Android Log, TraceviewSamples/DocsSystem and Software RequirementsSupported Operating SystemsWindows XP/VistaMac OS X 10.4.8 or later (x86 only)Linux(tested on Linux Ubuntu Dapper Drake)Supported Development EnvironmentsEclipse IDEEclipse 3.2,3.3 (Europa)Eclipse JDT PluginJDK 5 or JDK 6ADT (Android Development Tools plugin), optionalOther IDEsJDK 5 or JDK 6Apache AntGCJ(Gnu compiler for Java) not compatibleSources
Eclipse Using ADT (Android Development Tools) PluginGenerate Android Template Packages srcresassetsAndroidManifest.xml
Android Manifest Structured XML file, always namedAndroidManifest.xml Declare the application’s components Identifying permissions ?xml version "1.0" encoding "utf-8"? manifest xmlns:android e "com.nemustech.todolist"android:versionCode "1"android:versionName "1.0.0" application android:icon "@drawable/icon" android:label "@string/app name" activity android:name ".ToDoList"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
Building Android Application Hello AndroidAdding TextViewUsing XML based codingRes.layout.main.xml Simple Web Viewuses-permission - InternetUsing WebKit classwv new WebView(this); wv.loadUrl("http://www.naver.com");Simple Map View - Need API Keykeytool -list -alias androiddebugkey -keystore /.android/debug.keystore -storepassandroid -keypass aps-api-signup.htmlUsing MapActivitymv new MapView(this);setContentView(mv);Using XMLview class "com.google.android.maps.MapView"
Sample - API Demos ApiDemos comes with the Android SDK - Ultimate Reference!Each subdirectory have a high-level functional area of the Android API APP Examples of application-level constructs such as Activities, Alarms, Dialogs, and Services.Content Describes how to read assets from a file, from resources, and from an XML file.Graphics Many types of graphics examples, such as arcs bitmap manipulation, clipping, layers, andOpenGL.Media MediaPlayer,VideoViewOS Examples of how to invoke operating system servicesText Cool text tricksViews All of the various Android views
ADB (Android DebugBridge) Command-line debugging application included with theSDK. It provides tools to browse the device, copy toolson the device, and forward ports for debugging. Eclipse Integration ADB PUSHADB PULLADB INSTALLADB UNINSTALLADB SHELL
DDMS Dalvik Debug Monitor Service GUI debugging application included withthe SDK. Provides screen capture, log dump, andprocess examination capabilities. If you are developing in Eclipse using theADT Plugin, DDMS is integrated into yourdevelopment environment
References http://developer.android.com/index.html Dev Guide, Blog, Groups Android Application Development, 1stEdition, By Rick Rogers, John Lombardo,O’reilly Media, Inc. Professional Android ApplicationDevelopment, by Reto Meier, Wrox
Three Delicious Flavors Managed CodeAjaxNative Code Reference Google IO 2009How Do I Code Thee?by Dan Morrill, Google Developer Relations
Dalvik - Overview Dalvik is a virtual machine, similar to the JVMor .NET CLR Memory-protected, garbage-collected, andlifecycle-managed Optimized for embedded machines Build to reduce much of the need for a JITCCustom bytecode format; included translatorfrom Java bytecode
Writing Dalvik Apps Apps run on Dalvik , which provides core framework APIsAPIs are backed by system infrastructure in native code e.g. OpenGL, Binder IPC, Media, etcPopular tools are supported, and an Eclipse plugin is avaliable
Dalvik Apps What Can You Do Rich UIsBackground ServicesShared ComponentsTight integration with system events and UIWhat Can’t You Do Dalvik is the primary app platform - the crossroadsSome apps need raw speedSome apps don’t need tight integration
Dalvik - Future Improved (faster, better) garbage collection Just-In-Time Compilation Optimizations in core libraries Additional APIs -- Bluetooth, P2P, and more
Ajax(Web) - Overview Apps are broken up into convenientdeclarative layouts & code JavaScript code mutates the DOM to createUI effects Network access is available viaXMLHttpRequest Recently, canvas allows JavaScript to dodirect painting
Ajax on Android Android’s Browser is based on WebKit SquirrelFish WebKit v528.5, equivalent to Safari 4 beta Reports as 3.1.2 in the user-agent string Includes Gears 0.5.17.0 (including location) Includes support for the canvas tag
Ajax Apps Of course, just build static web page appsWhat can you do Build dynamic UIs, via DOM or canvas You can fetch & store data on your origin serverWith HTML5, you can also: Access locationRun code outside the main threadStore data & pages locallyWhat can’t you do Background processingAccess system & framework APIs
Ajax - Future HTML5 will keep getting better Android will continue to include a worldclass browser Gears today, HTML5 in the future Plans to upgrade to an even faster JSVM
Ajax - What else canyou doAugmented Ajax Inject functionality into JavaScript
Native - Overview Launched as a Dalvik Application Makes calls into native code via JNI for heavylifting .so files are created using the NDKcomplement to the SDK Work-in-progress NDK added to donut branchLoads a dynamic library (.so, ARM ELF, linkedagainst Bionic)
Native Apps What can you do Physics simulationsEfficient/Fast loading of large-ish data filesSpeed-intensive lookups, such as for IMEsCustom VMsUnsupported things. Technically, other libraries are present, but have no guaranteesUse them, and you deserve the Market user ratings you will get when yourapp breaksWhat can’t you do Current set of APIs is limited to libm and libcMore will be added over timeh@x0r the system -- sandboxing still applies
Android NDK Allows developers to implement parts of applications using native-codelanguages such as C and C The NDK provides A set of tools and build files used to generate native code libraries from Cand C sources A way to embed the corresponding native libraries into application packagefiles (.apks) that can be deployed on Android devices A set of native system headers and libraries that will be supported in allfuture versions of the Android platform, starting from Cupcake. : libc, libm,JNI interface headers, libz, liblog, A minimal set of headers for C support Docs, Samples, TutorialsGood candidates for NDK : Self-contained, CPU-intensive operations such assignal processing, intensive physics simulations, data processing.
Native - Future Add additional libraries,. TBD No plans to make native code a fullyindependent app model .but there’s no reason to preventdevelopers from doing stuff
Demo K-Means clustering Used to identify clusters in sets of pointsSimple 2D VersionEasy to visualize on screenSource and App Available at : pspot.com/index.html
Benchmarks Dalvik is very competitive with other pure-interpreted VMsDalvik, as a front-end for native code, usually beats JavaScript .But clearly, there are use cases where that doesn’t matterAnd of course, custom native code will always win the speed test
Android Roadmap Cupcake Version : Android 1.5 Input method framework / Input method enginesApplication Upgraded Email/MMS/Alarm/Music/Browser,.Linux Kernel UpgradedBasic x86 SupportSDK ImprovementsDonut Version : Android 1.6 Support for additional types of displaysAGPS (Using SUPL support)Gesture, Universal Search, TTS, CDMA SupportEclair Version : Android 2.0 (Flan?) Google Chrome (fixed)Google Maps, Google Earth, New Android Market3D enhancement, Multi-TouchFlash 10SNS Integration
Future of Android Business modelOrganize the world’s information and make it universallyaccessible and relevantNo direct-advertising component in the platformSearch and Advertisement (Network Desktop Mobile Phone)Will NOT make A gPhoneGoogle 700Mhz bid - FAILED but.Open Market Store (like AppStore)A broad developer communityLicense Issues?Open Source 위주로만 구성!ASL (Apache Software License)Linux Kernel is licensed under (GPLv2)
Developer Challenge 10 million in awards Challenge I : Emulator Version ( Jan 2. 2008 )Challenge II : Handset Version (Announced Recently, Oct. 2009)Opened Project Social Network (with 2d&3d animation)FPS : Wi-Fi ArmyLocation Search : with google mapDrive By Ad. : Location base Ad.Car NavigationMobile ShoppingEbook with full text index : google phone search?Location Base! Almost Location Base Service except ebook, Social Network (over 80%)Small group is discussing game/PDA apps
ADC Winners!"# %&'((Developer: Michael Zitzelsberger) '* %,-(. /0- ( # %&(.,%,1 '(,%2(3'0 %2*405(6%2 '("!(!,*7(. 84,%0*.(& (,'',%1 (. 9%1*(:0&4(7 ;'(3'0 %2* ( '1,%0 (&4 .(,%2(,88 5&(0%#0&,9 %*( (5,'&7 (*5 '&*( '(8 %8 '&*(?,@ (7 ;'( # %&(.,%,1 '(:0&4(7 ;(
Mash Up Mash-upNew service with existing informationNot supported directly yetSourceGoogle : www.google.comride findermaps : street viewsearch by locationvideo & youtubemash-up editorgoogle talkGoogleMobile : asaweb3rd Party? AndroidH/W SupportGPS LocationCompass Direction SensorAccelerometerCamera(Still/Video)Network SupportGPRS700MHz W-MANWi-FiIntentAccess Service via URLXMPPGoogle Instant Message
Mash Up Example
Summary- Android?Benefits Open Platform / License FreeRobust OS Kernel, Innovative Library PackagesEasy App. DevelopmentRapid ImprovementChallenges Performance ConsiderationHard to Integrate for VendorsToo Much Google DependentKey Factor : The Market Response
Thank youzaharang@nemustech.com
4. General Mobile DSTL1 5. Haier H7 6. HKC Pearl 7. HighScreen PP5420 8. HTC Click – Fiesta – Tattoo 9. HTC Desire 6200 – November 10. HTC Dragon – Zoom 2 11. HTC Dream – T-Mobile G1 12. HTC Hero – G2 Touch 13. HTC Lancaster 14. HTC Magic – Sapphire – T-Mobile myTouch
Android Studio IDE Android SDK tool Latest Android API Platform - Android 6.0 (Marshmallow) Latest Android API emulator system image - Android 6.0 Android Studio is multi-platform Windows, MAC, Linux Advanced GUI preview panel See what your app looks like in different devices Development environment Android Studio 9
2010 - May: Android 2.2 / Froyo 2010 - Dec: Android 2.3 / Gingerbread 2011 - Jan : Android 3.0 / Honeycomb - Tablet-optimized 2011 - May: Android 3.1 - USB host support 2011 - Nov: Android 4.0 / Ice-Cream Sandwich - merge Gingerbread and Honeycomb 2012 - Jun: Android 4.1 / Jelly Bean - Platform Optimization
ADT (Android Development Tool) bundle or ! Eclipse ADT plug-in Android SDK or ! Android studio ! Download earlier SDK versions using SDK manager if needed . Android Virtual Device (AVD) ! Android emulator allows . Android App Essentials ! Layout ! View objects: UI widgets such as buttons, text box etc. .
Android Development Tools ADT A plug-in for Eclipse (see Eclipse) to develop Android applications. Android Operating system for smartphones. Android Market The Android distribution service of mobile applications. Android Lifecycle A model Android uses to handle the lifecycle of an activity in applications.
Dial91 Android Edition User Guide 1 About Dial91 Android Edition Dial91 Android Edition is a SIP- based phone for an Android phone. With Dial91 Android Edition (Dial91), you can use the Wi-Fi internet connection on your Android phone to make and receive calls without using your mobile
ANDROID QUICK START GUIDE WELCOME TO ANDROID 1 1 Welcome to Android About Android 5.0, Lollipop Android 5.0, Lollipop is the latest version of Android, the oper-ating system that powers not just phones and tablets, but also wearables, TVs, and even cars. Android 5.0 features a bold and bright new design, 3D graphics
Navigate to https://developer.android.com/studio/index.html and download Android Studio for your appropriate OS. The Android SDK should be included with Android Studio. Make sure you do not choose an Android Studio installation that excludes the Android SDK. Standard download option for Windows OS (above). Alternative
An Android Studio SQLite Database Tutorial Previous Table of Contents Next An Android Studio TableLayout and TableRow Tutorial Understanding Android Content Providers in Android Studio eBookFrenzy.com Purchase the fully updated Android 6 Edition of this Android Studio Development Essentials publication in eBook ( 9.99) or Print ( 38.99) format