• Save
Play With Android
Upcoming SlideShare
Loading in...5
×
 

Play With Android

on

  • 5,677 views

 

Statistics

Views

Total Views
5,677
Views on SlideShare
5,152
Embed Views
525

Actions

Likes
9
Downloads
0
Comments
0

17 Embeds 525

http://champyen.blogspot.com 341
http://champyen.blogspot.tw 63
http://gcet.do.am 57
http://www.slideshare.net 19
http://champyen.blogspot.in 18
http://webcache.googleusercontent.com 8
http://champyen.blogspot.kr 4
http://translate.googleusercontent.com 3
http://localhost 2
http://champyen.blogspot.de 2
http://champyen.blogspot.jp 2
http://www.champyen.blogspot.in 1
http://champyen.blogspot.co.il 1
http://champyen.blogspot.be 1
http://champyen.blogspot.ru 1
http://result.do.am 1
http://champyen.blogspot.hu 1
More...

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Play With Android Play With Android Presentation Transcript

    • Play with Android Champ Yen http://champyen.blogspot.com [email_address]
    • Outlines
      • Architecture
      • Why Android!?
      • How to start?
      • Software Development
      • Take Care of API Levels!
      • Build it Yourself!
      • Kernels for versions of Android
      • Customization
      • Optimization
    • Android Architecture
    • Features
      • Architecutes
        • ARM, x86, MIPS
      • Kernel
        • Linux-based with modification for Android
      • Native Layer
        • Bionic C library, SQLite, OpenGL ES, Webkit, OpenCore..
      • Application Layer
        • Dalvik Virtual Machine
        • Dex format framework, application
      • Application Development
        • Java Language for Development
        • JNI used for performance critical application.
      • Far different from known GNU/Linux!
        • http://walkingice.twbbs.org/~walkingice/files/document/coscup_2009_walkingice.pdf
    • License Perspective Kernel - GNU Public License Android - Apache License
    • Why Android?
      • IC Design House
        • Since system is not bound to ARM platform, it is flexible to design cost-efficient ICs
      • Product Manufactor
        • Consistency
        • Open Source (no blackbox anymore)
        • Open Platform (community supported kernel/app. development)
        • No license fee (no extra product tax)
      • Software Developer
        • easy development on PC
        • licensed SDK is not needed
        • Open platform
      • User
        • full-feature system
        • many applications
        • longer software support (active community)
    • How to start?
      • There are many active Android projects for several open platforms.
      • x86 platform
        • EeePC 701
          • Android 1.5 adds official eeepc701 support and most x86 porting base on this.
          • 0xlab’s android-eeepc project http://gitorious.org/android-eeepc
            • Extra hardware support (ex: 3D)
        • PC platform
        • VirtualBox/QEMU
          • try to build a workable Android system for VirtualBox/QEMU
            • Many building tutorials can be get by searching on Google.
          • Android LiveCD
            • http://code.google.com/p/live-android/
            • http:// code.google.com/p/livedroid /
    • How to start? (cont.)
      • ARM platform ( >= ARMv5)
        • exists product
          • Current Android Mobile Phones
          • Nokia N770/N8x0, Zaurus PDA, OpenMoko, SmartQ 5/7 MID
        • development boards
          • BeagleBoard, OMAP 35x EVM
          • S3C6410 boards
          • FreeScale EVBs
        • qemu
      • MIPS
        • http:// www.mips.com /android/
      • More supported architecture by porting (ex: PowerPC)
    • Software Development
      • For those who only have interests on develop applications on Android
      • http://developer.android.com/sdk/
      • SDK
        • develop application with application framework
        • built-in emulator & debugger
      • NDK
        • for development native libraries for performance critical implementation.
      • 1.0 r1, r2
        • API Level 1
      • 1.1
        • API Level 2
      • 1.5 r1 ~ r3
        • API Level 3
        • API Changes significantly
        • supported languages increase significantly
      • 1.6
        • API Level 4
      Take care of API Levels http://developer.android.com/intl/fr/guide/appendix/api-levels.html
    • Build it Yourself!
      • For fun or for product?
        • Just for fun is easy. enjoy writing code & hacking!
        • Product quality takes great time to achive. (so be patient and take it easy!)
      • Linux kernel with Android support
        • http:// android.git.kernel.org/?p =kernel/ common.git;a =summary
        • BSP for target platfrom
        • For different versions of Android, different supports are needed.
        • try different kernel options!
        • Good ideas? Just do it! Ex: http:// code.google.com/p/compcache /
      • Building Android System
        • generic building guide: http:// source.android.com /download
        • 3 images generated
          • yaffs2 image : system.img usrdata.img
            • try! http:// code.google.com/p/unyaffs /
          • gzipped cpio archive: ramdisk.img
        • further target platform customization is needed
          • Where is my WIFI? Audio!? 3D support?
    • Kernels for Android versions Basic support : logger, binder, network, power ASHMEM : Android Shared Memory Subsystem PMEM : Physical Memory Allocator 2.6.23 2.6.25 2.6.27 2.6.29 Basic Support ○ ○ ○ ○ ASHMEM ╳ ○ ○ ○ PMEM ╳ ╳ ○ ○ 2.6.23 2.6.25 2.6.27 2.6.29
    • System Directories Structure
      • /data
        • to keep user data
      • /etc
        • system compatibility (link to /system/etc)
      • /system
        • Android main system directories
      • /proc, /sys
      • /cache
    • Customization
      • It may take much time to integrate/customize specific devices for Android.
      • Keyboard/Mouse/Touchscreen
      • Audio/Display/Camera
      • Network (Wifi, Ethernet)
      • USB/Bluetooth
      • Telephony (GSM, GPRS, 3G)
      • User Interface / Applications
      • Power Management
      • System initialization
    • Optimization
      • Most Android optimization must be done in native library and kernel layer. It may take great effort to do just an optimization item.
      • Dalvik - JIT
      • Native library optimization – (add VFP, NEON, MMX, SSE.. support)
      • Display – (accelerated fb, OSD, layers)
      • Graphics – OpenGL ES (Hardware Acceleration)
      • Multimedia – OpenMax (SIMD, DSP or Hardware Codec)
      • Power Management
    • Optimization Example 0xlab intends to make use of several feature of OMAP 3530 on BeagleBoard (includes NEON, DSP, 3D and OMAP DSS2) to improve performance of graphics and multimedia on Android. And some features have been implemented. Rock the World! 0xlab!
    • Q & A