SlideShare une entreprise Scribd logo
1  sur  31
Android
     Framework and Application
            Overview

                   By: Ashish Agrawal
Android Overview                    19/12/12   1
Agenda
    Mobile Application Development (MAD)
    Introduction to Android platform
    Platform architecture
    Application building blocks
    Lets Debug
    Development tools.




Android Overview                            19/12/12   2
Introduction to Android
    Open software platform for mobile development
    A complete stack – OS, Middleware, Applications
    Powered by Linux operating system
    Fast application development in Java
    Open source under the Apache 2 license




Android Overview                                19/12/12   3
Android Overview   19/12/12   4
Application Framework
 • API interface
 • Activity manager – manages application
   life cycle.




Android Overview                      19/12/12   5
Applications
  • Built in and user apps
  • Can replace built in apps




Android Overview                  19/12/12   6
Application Lifecycle
    Application run in their own processes (VM, PID)
    Processes are started and stopped as needed to run
        an application's components
    Processes may be killed to reclaim resources




Android Overview                                 19/12/12
                                                            7
Application Building Blocks
    Activity
    Fragments
    Intents
    Service (Working in the background)
    Content Providers
    Broadcast receivers
    Action bar

Android Overview                           19/12/12   8
Activities
    Typically correspond to one UI screen
    Run in the process of the .APK which installed them
    But, they can:
         Be faceless
         Be in a floating window
         Return a value




Android Overview                                   19/12/12   9
Android Overview   19/12/12
                              10
Fragments
Fragment represents a behavior or a portion of user interface in an Activity.
You can combine multiple fragments in a single activity to build a multi-pane
UI and reuse a fragment in multiple activities.




 Android Overview                                            19/12/12     11
Fragments




Android Overview               19/12/12   12
Intents
    An intent is an abstract description of an operation to be performed.
    Launch an activity
    Explicit
        Ex: Intent intent = new Intent(MyActivity.this, MyOtherActivity.class)
    Implicit : Android selects the best
        Ex: Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(“tel:

                           555-2368”));
    startActivity()
    Extra parameter Ex: intent.putExtra(name, property);


Android Overview                                                   19/12/12
                                                                                 13
Intent Filter
    Register Activities, Services, and Broadcast Receivers as
        being capable of performing an action on a particular
        kind of data.
    Components that respond to broadcast ‘Intents’
    Way to respond to external notification or alarms
    Apps can invent and broadcast their own Intent




Android Overview                                      19/12/12
                                                                 14
Services
    Faceless components that run in the background
    No GUI, higher priority than inactive Activities
    Usage:  responding to events, polling for data, updating
        Content Providers.  However, all in the main thread
    E.g. music player, network download etc…
        Intent service = new Intent(context,
        WordService.class);

        context.startService(service);

Android Overview                                      19/12/12
                                                                 15
Using the Service

  Start the service
      Intent serviceIntent = new Intent();

      serviceIntent.setAction

      ("com.wissen.testApp.service.MY_SERVICE");

       startService(serviceIntent);




Android Overview                               19/12/12
                                                          16
Bind the service
  ServiceConnection conn = new ServiceConnection() {
               @Override
               public void onServiceConnected(ComponentName
  name, IBinder service) {
               }
               @Override
               public void
  onServiceDisconnected(ComponentName arg0) {
               }
       }
  bindService(new
  Intent("com.testApp.service.MY_SERVICE"), conn,
  Context.BIND_AUTO_CREATE);
  }
Android Overview                                    19/12/12
                                                             17
Async Task

   Asycn task enables easy and proper use of UI
   thread. This class allows to perform background
   operations and publish results on the main thread.




Android Overview                             19/12/12
                                                        18
Async Task (Example)
   private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
      protected Long doInBackground(URL... urls) {
       int count = urls.length;
         long totalSize = 0;
         for (int i = 0; i < count; i++) {
            totalSize += Downloader.downloadFile(urls[i]);
            publishProgress((int) ((i / (float) count) * 100));
         }
         return totalSize;
      }

      protected void onProgressUpdate(Integer... progress) {
        setProgressPercent(progress[0]);
      }

        protected void onPostExecute(Long result) {
           showDialog("Downloaded " + result + " bytes");
        }
Android Overview
    }
                                                                19/12/12
                                                                             19
ContentProviders
    Enables sharing of data across applications
         E.g. address book, photo gallery
    Provides uniform APIs for:
         querying
         delete, update and insert.
    Content is represented by URI and MIME type




Android Overview                                   19/12/12
                                                              20
Example
    private void displayRecords() {
         String columns[] = new String[] { People.NAME,
   People.NUMBER };
        Uri mContacts = People.CONTENT_URI;
        Cursor cur = managedQuery(mContacts, columns, null, null,
   null );
         if (cur.moveToFirst()) {
             String name = null;
             String phoneNo = null;
             do {
    name = cur.getString(cur.getColumnIndex(People.NAME));
               phoneNo =
   cur.getString(cur.getColumnIndex(People.NUMBER));
   } while (cur.moveToNext());
         }
      }

Android Overview                                         19/12/12
                                                                    21
Broadcast Receivers
 A broadcast receiver is a class which extends
  BroadcastReceiver and which is registered as a receiver in an
  Android Application via the AndroidManifest.xml file(or via
  code).
 <receiver android:name="MyPhoneReceiver">
    <intent-filter>
       <action

   android:name="android.intent.action.PHONE_STATE">
        </action>
     </intent-filter>
   </receiver>
Android Overview                                  19/12/12
                                                             22
Broadcast Receivers
 public class MyBroadcastReceiver extends BroadcastReceiver
   {
     @Override
     public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,
   ”BR.”,Toast.LENGTH_LONG).show();
     }
   }




Android Overview                                   19/12/12
                                                               23
ActionBar




Android Overview               19/12/12
                                          24
ActionBar
 Home Icon area: The icon on the top left-hand side of the action
  bar is sometimes called the “Home” icon.
 Title area: The Title area displays the title for the action bar.
 Tabs area: The Tabs area is where the action bar paints the list
  of tabs specified. The content of this area is variable.
 Action Icon area: Following the Tabs area, the Action Icon area
  shows some of the option menu items as icons.
 Menu Icon area: The last area is the Menu area. It is a single
  standard menu icon.



Android Overview                                     19/12/12
                                                                25
Debugging

   •Reading and Writing Logs
        Log.d("MyActivity”, position);

   •adb logcat
   • Toast :
         Toast toast = Toast.makeText(context, text, duration);

         toast.show();

Android Overview                                     19/12/12
                                                                26
Debugging Cont.

   •Hierarchy Viewer
   •Connect your device or launch an emulator.
   •If you have not done so already, install the application
   you want to work with.
   •Run the application, and ensure that its UI is visible.
   •From a terminal, launch hierarchyviewer




Android Overview                                     19/12/12
                                                                27
Debugging Cont.

      adb shell dumpsys activity




Android Overview                     19/12/12
                                                28
Debugging Cont.
   Profiling for memory




Android Overview                     19/12/12
                                                29
Development Tools

       Eclipse

       developer.android.com




Android Overview                   19/12/12
                                              30
Thank You.




Android Overview                19/12/12
                                           31

Contenu connexe

Similaire à Android overview

Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介easychen
 
Android developer interview questions with answers pdf
Android developer interview questions with answers pdfAndroid developer interview questions with answers pdf
Android developer interview questions with answers pdfazlist247
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginnerAjailal Parackal
 
Android activity, service, and broadcast recievers
Android activity, service, and broadcast recieversAndroid activity, service, and broadcast recievers
Android activity, service, and broadcast recieversJagdish Gediya
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorialAbid Khan
 
Android studio
Android studioAndroid studio
Android studioAndri Yabu
 
Android interview questions and answers
Android interview questions and answersAndroid interview questions and answers
Android interview questions and answerskavinilavuG
 
ハンズオン資料 電話を作ろう(v2.x用)
ハンズオン資料 電話を作ろう(v2.x用)ハンズオン資料 電話を作ろう(v2.x用)
ハンズオン資料 電話を作ろう(v2.x用)Kenji Sakashita
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesAhsanul Karim
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesAhsanul Karim
 
Android best training-in-mumbai
Android best training-in-mumbaiAndroid best training-in-mumbai
Android best training-in-mumbaivibrantuser
 
Getting Started with Android 1.5
Getting Started with Android 1.5Getting Started with Android 1.5
Getting Started with Android 1.5Gaurav Kohli
 
Android Development project
Android Development projectAndroid Development project
Android Development projectMinhaj Kazi
 

Similaire à Android overview (20)

Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介
 
Android developer interview questions with answers pdf
Android developer interview questions with answers pdfAndroid developer interview questions with answers pdf
Android developer interview questions with answers pdf
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
 
Android activity, service, and broadcast recievers
Android activity, service, and broadcast recieversAndroid activity, service, and broadcast recievers
Android activity, service, and broadcast recievers
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android studio
Android studioAndroid studio
Android studio
 
Android interview questions and answers
Android interview questions and answersAndroid interview questions and answers
Android interview questions and answers
 
android.ppt
android.pptandroid.ppt
android.ppt
 
Lecture-3.ppt
Lecture-3.pptLecture-3.ppt
Lecture-3.ppt
 
Android beginners David
Android beginners DavidAndroid beginners David
Android beginners David
 
Unit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.pptUnit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.ppt
 
Android the future
Android  the futureAndroid  the future
Android the future
 
ハンズオン資料 電話を作ろう(v2.x用)
ハンズオン資料 電話を作ろう(v2.x用)ハンズオン資料 電話を作ろう(v2.x用)
ハンズオン資料 電話を作ろう(v2.x用)
 
All about android
All about androidAll about android
All about android
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
 
Android best training-in-mumbai
Android best training-in-mumbaiAndroid best training-in-mumbai
Android best training-in-mumbai
 
Getting Started with Android 1.5
Getting Started with Android 1.5Getting Started with Android 1.5
Getting Started with Android 1.5
 
Android Development project
Android Development projectAndroid Development project
Android Development project
 
Best android classes in mumbai
Best android classes in mumbaiBest android classes in mumbai
Best android classes in mumbai
 

Plus de Ashish Agrawal

Difference between product manager, program manager and project manager.
Difference between product manager, program manager and project manager.Difference between product manager, program manager and project manager.
Difference between product manager, program manager and project manager.Ashish Agrawal
 
5 management &amp; leadership lessons from movie mission mangal
5 management &amp; leadership lessons from movie mission mangal5 management &amp; leadership lessons from movie mission mangal
5 management &amp; leadership lessons from movie mission mangalAshish Agrawal
 
7 factors determining deeper impact of ar based mobile application on user ex...
7 factors determining deeper impact of ar based mobile application on user ex...7 factors determining deeper impact of ar based mobile application on user ex...
7 factors determining deeper impact of ar based mobile application on user ex...Ashish Agrawal
 
E paper-IOT based-medical-emergency-detection-and-rescue
E paper-IOT based-medical-emergency-detection-and-rescueE paper-IOT based-medical-emergency-detection-and-rescue
E paper-IOT based-medical-emergency-detection-and-rescueAshish Agrawal
 
Gcm and share point integration
Gcm and share point integrationGcm and share point integration
Gcm and share point integrationAshish Agrawal
 
Odata batch processing
Odata batch processingOdata batch processing
Odata batch processingAshish Agrawal
 
Client certificate validation in windows 8
Client certificate validation in windows 8Client certificate validation in windows 8
Client certificate validation in windows 8Ashish Agrawal
 
Lync integration with metro app
Lync integration with metro appLync integration with metro app
Lync integration with metro appAshish Agrawal
 
E learning-for-all-devices
E learning-for-all-devicesE learning-for-all-devices
E learning-for-all-devicesAshish Agrawal
 

Plus de Ashish Agrawal (11)

Difference between product manager, program manager and project manager.
Difference between product manager, program manager and project manager.Difference between product manager, program manager and project manager.
Difference between product manager, program manager and project manager.
 
5 management &amp; leadership lessons from movie mission mangal
5 management &amp; leadership lessons from movie mission mangal5 management &amp; leadership lessons from movie mission mangal
5 management &amp; leadership lessons from movie mission mangal
 
7 factors determining deeper impact of ar based mobile application on user ex...
7 factors determining deeper impact of ar based mobile application on user ex...7 factors determining deeper impact of ar based mobile application on user ex...
7 factors determining deeper impact of ar based mobile application on user ex...
 
E paper-IOT based-medical-emergency-detection-and-rescue
E paper-IOT based-medical-emergency-detection-and-rescueE paper-IOT based-medical-emergency-detection-and-rescue
E paper-IOT based-medical-emergency-detection-and-rescue
 
Gcm and share point integration
Gcm and share point integrationGcm and share point integration
Gcm and share point integration
 
Agile QA process
Agile QA processAgile QA process
Agile QA process
 
Odata batch processing
Odata batch processingOdata batch processing
Odata batch processing
 
Side loading
Side loadingSide loading
Side loading
 
Client certificate validation in windows 8
Client certificate validation in windows 8Client certificate validation in windows 8
Client certificate validation in windows 8
 
Lync integration with metro app
Lync integration with metro appLync integration with metro app
Lync integration with metro app
 
E learning-for-all-devices
E learning-for-all-devicesE learning-for-all-devices
E learning-for-all-devices
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Dernier (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Android overview

  • 1. Android Framework and Application Overview By: Ashish Agrawal Android Overview 19/12/12 1
  • 2. Agenda  Mobile Application Development (MAD)  Introduction to Android platform  Platform architecture  Application building blocks  Lets Debug  Development tools. Android Overview 19/12/12 2
  • 3. Introduction to Android  Open software platform for mobile development  A complete stack – OS, Middleware, Applications  Powered by Linux operating system  Fast application development in Java  Open source under the Apache 2 license Android Overview 19/12/12 3
  • 4. Android Overview 19/12/12 4
  • 5. Application Framework • API interface • Activity manager – manages application life cycle. Android Overview 19/12/12 5
  • 6. Applications • Built in and user apps • Can replace built in apps Android Overview 19/12/12 6
  • 7. Application Lifecycle  Application run in their own processes (VM, PID)  Processes are started and stopped as needed to run an application's components  Processes may be killed to reclaim resources Android Overview 19/12/12 7
  • 8. Application Building Blocks  Activity  Fragments  Intents  Service (Working in the background)  Content Providers  Broadcast receivers  Action bar Android Overview 19/12/12 8
  • 9. Activities  Typically correspond to one UI screen  Run in the process of the .APK which installed them  But, they can:  Be faceless  Be in a floating window  Return a value Android Overview 19/12/12 9
  • 10. Android Overview 19/12/12 10
  • 11. Fragments Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. Android Overview 19/12/12 11
  • 13. Intents  An intent is an abstract description of an operation to be performed.  Launch an activity  Explicit Ex: Intent intent = new Intent(MyActivity.this, MyOtherActivity.class)  Implicit : Android selects the best Ex: Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(“tel: 555-2368”));  startActivity()  Extra parameter Ex: intent.putExtra(name, property); Android Overview 19/12/12 13
  • 14. Intent Filter  Register Activities, Services, and Broadcast Receivers as being capable of performing an action on a particular kind of data.  Components that respond to broadcast ‘Intents’  Way to respond to external notification or alarms  Apps can invent and broadcast their own Intent Android Overview 19/12/12 14
  • 15. Services  Faceless components that run in the background  No GUI, higher priority than inactive Activities  Usage:  responding to events, polling for data, updating Content Providers.  However, all in the main thread  E.g. music player, network download etc… Intent service = new Intent(context, WordService.class); context.startService(service); Android Overview 19/12/12 15
  • 16. Using the Service Start the service Intent serviceIntent = new Intent(); serviceIntent.setAction ("com.wissen.testApp.service.MY_SERVICE"); startService(serviceIntent); Android Overview 19/12/12 16
  • 17. Bind the service ServiceConnection conn = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { } @Override public void onServiceDisconnected(ComponentName arg0) { } } bindService(new Intent("com.testApp.service.MY_SERVICE"), conn, Context.BIND_AUTO_CREATE); } Android Overview 19/12/12 17
  • 18. Async Task Asycn task enables easy and proper use of UI thread. This class allows to perform background operations and publish results on the main thread. Android Overview 19/12/12 18
  • 19. Async Task (Example) private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) { totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i / (float) count) * 100)); } return totalSize; } protected void onProgressUpdate(Integer... progress) { setProgressPercent(progress[0]); } protected void onPostExecute(Long result) { showDialog("Downloaded " + result + " bytes"); } Android Overview } 19/12/12 19
  • 20. ContentProviders  Enables sharing of data across applications  E.g. address book, photo gallery  Provides uniform APIs for:  querying  delete, update and insert.  Content is represented by URI and MIME type Android Overview 19/12/12 20
  • 21. Example private void displayRecords() { String columns[] = new String[] { People.NAME, People.NUMBER }; Uri mContacts = People.CONTENT_URI; Cursor cur = managedQuery(mContacts, columns, null, null, null ); if (cur.moveToFirst()) { String name = null; String phoneNo = null; do { name = cur.getString(cur.getColumnIndex(People.NAME)); phoneNo = cur.getString(cur.getColumnIndex(People.NUMBER)); } while (cur.moveToNext()); } } Android Overview 19/12/12 21
  • 22. Broadcast Receivers  A broadcast receiver is a class which extends BroadcastReceiver and which is registered as a receiver in an Android Application via the AndroidManifest.xml file(or via code).  <receiver android:name="MyPhoneReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"> </action> </intent-filter> </receiver> Android Overview 19/12/12 22
  • 23. Broadcast Receivers  public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, ”BR.”,Toast.LENGTH_LONG).show(); } } Android Overview 19/12/12 23
  • 25. ActionBar  Home Icon area: The icon on the top left-hand side of the action bar is sometimes called the “Home” icon.  Title area: The Title area displays the title for the action bar.  Tabs area: The Tabs area is where the action bar paints the list of tabs specified. The content of this area is variable.  Action Icon area: Following the Tabs area, the Action Icon area shows some of the option menu items as icons.  Menu Icon area: The last area is the Menu area. It is a single standard menu icon. Android Overview 19/12/12 25
  • 26. Debugging •Reading and Writing Logs Log.d("MyActivity”, position); •adb logcat • Toast : Toast toast = Toast.makeText(context, text, duration); toast.show(); Android Overview 19/12/12 26
  • 27. Debugging Cont. •Hierarchy Viewer •Connect your device or launch an emulator. •If you have not done so already, install the application you want to work with. •Run the application, and ensure that its UI is visible. •From a terminal, launch hierarchyviewer Android Overview 19/12/12 27
  • 28. Debugging Cont. adb shell dumpsys activity Android Overview 19/12/12 28
  • 29. Debugging Cont. Profiling for memory Android Overview 19/12/12 29
  • 30. Development Tools Eclipse developer.android.com Android Overview 19/12/12 30

Notes de l'éditeur

  1. Dalvik VM Dex files Compact and efficient than class files Limited memory and battery power Core Libraries Java 5 Std edition Collections, I/O etc…