Slideshare.net/khirulnizam
       fb.com/khirulnizam
            blog.kerul.net




          Android Dev 101
             June 23, 2012
  Khirulnizam Abd Rahman
Agenda
   Intro
   Demo 1: New Android project
    Properties window
    Android Emulator
    DDMS - Dalvik Debug Monitor
    Demo 2: Widgets and Interactions

   Day 2 - 24-06-2013 (8.30am - 4pm)
    Demo 3: HTML and Webview
    Demo 4: Audio
   Demo 5: Video
    Signing APK
   Uploading to Google Play




    6/22/2012                http://blog.kerul.net   2
Android Devices




6/22/2012   http://blog.kerul.net   3
Android Story
     http://www.techsavys.info/2011/07/the-
      android-story-an-android-infographic-
      discussing-about-its-beginning-on-
      going-changes-and-worldwide-market-
      shares.html




6/22/2012              http://blog.kerul.net   4
Faq1: What is Android?
  Android is a software stack for mobile devices
   that includes an operating system,
   middleware and key applications (platform).
   The Android SDK provides the tools and APIs
   necessary to begin developing applications on
   the Android platform using the Java
   programming language.
  The kernel of most Android version is based
   on Linux 2.6 (3.0 for ICS).
  Android architecture;


6/22/2012           http://blog.kerul.net           5
Android Architecture




6/22/2012    http://blog.kerul.net   6
Faq2: Who develop
Android?
    Initially developed by Andrew
     (Andy) Rubin and his team in
     Android Inc.
    Google acquired Android Inc.
     in 2005.
    Now, it is developed by Google
     under Andy Rubin (Senior Vice
     President of Mobile)



6/22/2012            http://blog.kerul.net   7
Faq3: How many versions
(distributions) Android has?




6/22/2012     http://blog.kerul.net   8
     Source:
      http://developer.android.com/resources/dashb
      oard/platform-versions.html
6/22/2012               http://blog.kerul.net        9
Faq4: What is API Level?
       API Level is an integer value that uniquely
        identifies the framework API revision offered
        by a version of the Android platform.
       The Android platform provides a framework
        API that applications can use to interact with
        the underlying Android system.




6/22/2012               http://blog.kerul.net        10
Faq5: What is Android
app?
      Developer can develop application that runs
       on top of Android.
      App is actually a simpler version of
       application.
      Uses *.apk for the installer file extension.




6/22/2012              http://blog.kerul.net          11
App samples




6/22/2012     http://blog.kerul.net   12
Faq6: What is the language
used to develop Android
app?
  Java
     compiled into Dalvik Bytecode (NOTJava
      bytecode).
     Android provides Dalvik virtual machine-
      DVM inside Android (NOT Java virtual
      machine-JVM)
     Using Android API – (with some Java
      APIs).


6/22/2012             http://blog.kerul.net      13
Faq7: What is Dalvik Virtual
Machine, is it similar as JVM?
       Author - Dan Bornstein
       Dalvik VM implementing slightly different
        architecture to JVM.
       Dalvik VM is a register-based
        architecture.
       Being optimized for low memory and
        slower processing speed.
       The VM was slimmed down to use less
        space.

6/22/2012               http://blog.kerul.net       14
Faq8: What are tools needed
to develop Android App?
           Latest JDK – version 6 -
             http://www.oracle.com/technetwork/java/javase/downl
            oads/jdk-6u27-download-440405.html (not yet tested
            against JDK 7)
           Eclipse (as the IDE) -
             http://www.eclipse.org/downloads/packages/eclipse-
            ide-java-developers/indigor
           Android Development Toolkit (ADT 12) for Eclipse -
             http://developer.android.com/sdk/eclipse-adt.html
           Android SDK - http://developer.android.com/sdk/
           Installation guide - http://blog.kerul.net/2011/06/eclipse-
            helios-android-development.html
           Third parties: Titanium, PhoneGap, Unity3D



6/22/2012                         http://blog.kerul.net                   15
IDE - Eclipse




6/22/2012       http://blog.kerul.net   16
AppInventor -
appinventor.mit.edu/




6/22/2012     http://blog.kerul.net   17
Emulator




6/22/2012   http://blog.kerul.net   18
Dalvik Debugger




6/22/2012   http://blog.kerul.net   19
Faq8: Where to distribute my
App?
             market.android.com
             MobileApps.com
             GetJar.com




6/22/2012                 http://blog.kerul.net   20
6/22/2012   http://blog.kerul.net   21
6/22/2012   http://blog.kerul.net   22
Android Project Structure
     Inside Android Project, there should be;
      /src – the Java codes are here
      /gen – generated automatically
      /assets – put your fonts, videos, sounds here
      /res – images, layout and global variables
        /drawable-hdpi –for high spec phones
        /drawable-ldpi –for low spec phones
        /drawable-mdpi –for medium spec phones
        /layout – all XML file for the screen(s) layout
        /values – global constant variables

6/22/2012                 http://blog.kerul.net           23
6/22/2012   http://blog.kerul.net   24
AndroidManifest
     AndroidManifest.xml – app’s
      permissions need to be registered here
      – (eg: app can access Internet, phone
      contacts, camera, etc must be
      mentioned here)




6/22/2012              http://blog.kerul.net   25
<?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         android:versionCode="7"
         android:versionName="1.7"
         package="net.kerul.mMathurat">

         <application android:icon="@drawable/icon" android:label="@string/app_name"
         android:taskAffinity=".mMathuratActivity">
            <activity android:name=".mMathuratActivity"
                    android:label="@string/app_name"
                    android:screenOrientation="portrait">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
            </activity>
            <activity android:name=".Aboutus" class=".Aboutus"
            android:label="Mengenai kami..." android:screenOrientation="portrait">
          </activity>
          <activity android:name=".Berterusan" class=".Berterusan"
            android:label="Mod pemanduan..." android:screenOrientation="portrait">
          </activity>
         </application>
         <uses-sdk android:minSdkVersion="7" />
         <receiver android:name=".DetectIncomingCall">
      <intent-filter>
         <action android:name="android.intent.action.PHONE_STATE" />
      </intent-filter>
      </receiver>

        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.VIBRATE"></uses-permission>
      </manifest>

6/22/2012                                        http://blog.kerul.net                  26
DEMO
 Demo 0: The IDE (Eclipse + ADT)
 Demo 1: Creating a new Android Project
  (and the project structure).
 Demo 2: Widgets and interaction –
  Textbox and Button.
 Demo 3: HTML and WebView
 Demo 4: APK and Distribution




6/22/2012          http://blog.kerul.net   27
TQvm




                                Q&A
6/22/2012          http://blog.kerul.net   28

Android development beginners faq

  • 1.
    Slideshare.net/khirulnizam fb.com/khirulnizam blog.kerul.net Android Dev 101 June 23, 2012 Khirulnizam Abd Rahman
  • 2.
    Agenda  Intro  Demo 1: New Android project Properties window Android Emulator DDMS - Dalvik Debug Monitor Demo 2: Widgets and Interactions  Day 2 - 24-06-2013 (8.30am - 4pm) Demo 3: HTML and Webview Demo 4: Audio  Demo 5: Video Signing APK  Uploading to Google Play 6/22/2012 http://blog.kerul.net 2
  • 3.
    Android Devices 6/22/2012 http://blog.kerul.net 3
  • 4.
    Android Story  http://www.techsavys.info/2011/07/the- android-story-an-android-infographic- discussing-about-its-beginning-on- going-changes-and-worldwide-market- shares.html 6/22/2012 http://blog.kerul.net 4
  • 5.
    Faq1: What isAndroid?  Android is a software stack for mobile devices that includes an operating system, middleware and key applications (platform). The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.  The kernel of most Android version is based on Linux 2.6 (3.0 for ICS).  Android architecture; 6/22/2012 http://blog.kerul.net 5
  • 6.
    Android Architecture 6/22/2012 http://blog.kerul.net 6
  • 7.
    Faq2: Who develop Android?  Initially developed by Andrew (Andy) Rubin and his team in Android Inc.  Google acquired Android Inc. in 2005.  Now, it is developed by Google under Andy Rubin (Senior Vice President of Mobile) 6/22/2012 http://blog.kerul.net 7
  • 8.
    Faq3: How manyversions (distributions) Android has? 6/22/2012 http://blog.kerul.net 8
  • 9.
    Source: http://developer.android.com/resources/dashb oard/platform-versions.html 6/22/2012 http://blog.kerul.net 9
  • 10.
    Faq4: What isAPI Level?  API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform.  The Android platform provides a framework API that applications can use to interact with the underlying Android system. 6/22/2012 http://blog.kerul.net 10
  • 11.
    Faq5: What isAndroid app?  Developer can develop application that runs on top of Android.  App is actually a simpler version of application.  Uses *.apk for the installer file extension. 6/22/2012 http://blog.kerul.net 11
  • 12.
    App samples 6/22/2012 http://blog.kerul.net 12
  • 13.
    Faq6: What isthe language used to develop Android app?  Java  compiled into Dalvik Bytecode (NOTJava bytecode).  Android provides Dalvik virtual machine- DVM inside Android (NOT Java virtual machine-JVM)  Using Android API – (with some Java APIs). 6/22/2012 http://blog.kerul.net 13
  • 14.
    Faq7: What isDalvik Virtual Machine, is it similar as JVM?  Author - Dan Bornstein  Dalvik VM implementing slightly different architecture to JVM.  Dalvik VM is a register-based architecture.  Being optimized for low memory and slower processing speed.  The VM was slimmed down to use less space. 6/22/2012 http://blog.kerul.net 14
  • 15.
    Faq8: What aretools needed to develop Android App?  Latest JDK – version 6 - http://www.oracle.com/technetwork/java/javase/downl oads/jdk-6u27-download-440405.html (not yet tested against JDK 7)  Eclipse (as the IDE) - http://www.eclipse.org/downloads/packages/eclipse- ide-java-developers/indigor  Android Development Toolkit (ADT 12) for Eclipse - http://developer.android.com/sdk/eclipse-adt.html  Android SDK - http://developer.android.com/sdk/  Installation guide - http://blog.kerul.net/2011/06/eclipse- helios-android-development.html  Third parties: Titanium, PhoneGap, Unity3D 6/22/2012 http://blog.kerul.net 15
  • 16.
    IDE - Eclipse 6/22/2012 http://blog.kerul.net 16
  • 17.
  • 18.
    Emulator 6/22/2012 http://blog.kerul.net 18
  • 19.
    Dalvik Debugger 6/22/2012 http://blog.kerul.net 19
  • 20.
    Faq8: Where todistribute my App?  market.android.com  MobileApps.com  GetJar.com 6/22/2012 http://blog.kerul.net 20
  • 21.
    6/22/2012 http://blog.kerul.net 21
  • 22.
    6/22/2012 http://blog.kerul.net 22
  • 23.
    Android Project Structure  Inside Android Project, there should be; /src – the Java codes are here /gen – generated automatically /assets – put your fonts, videos, sounds here /res – images, layout and global variables /drawable-hdpi –for high spec phones /drawable-ldpi –for low spec phones /drawable-mdpi –for medium spec phones /layout – all XML file for the screen(s) layout /values – global constant variables 6/22/2012 http://blog.kerul.net 23
  • 24.
    6/22/2012 http://blog.kerul.net 24
  • 25.
    AndroidManifest  AndroidManifest.xml – app’s permissions need to be registered here – (eg: app can access Internet, phone contacts, camera, etc must be mentioned here) 6/22/2012 http://blog.kerul.net 25
  • 26.
    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="7" android:versionName="1.7" package="net.kerul.mMathurat"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:taskAffinity=".mMathuratActivity"> <activity android:name=".mMathuratActivity" android:label="@string/app_name" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Aboutus" class=".Aboutus" android:label="Mengenai kami..." android:screenOrientation="portrait"> </activity> <activity android:name=".Berterusan" class=".Berterusan" android:label="Mod pemanduan..." android:screenOrientation="portrait"> </activity> </application> <uses-sdk android:minSdkVersion="7" /> <receiver android:name=".DetectIncomingCall"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.VIBRATE"></uses-permission> </manifest> 6/22/2012 http://blog.kerul.net 26
  • 27.
    DEMO  Demo 0:The IDE (Eclipse + ADT)  Demo 1: Creating a new Android Project (and the project structure).  Demo 2: Widgets and interaction – Textbox and Button.  Demo 3: HTML and WebView  Demo 4: APK and Distribution 6/22/2012 http://blog.kerul.net 27
  • 28.
    TQvm Q&A 6/22/2012 http://blog.kerul.net 28