SlideShare a Scribd company logo
1 of 26
Download to read offline
OSLL



Hello Android
         Vasily Romanikhin




                                     1
       vasily.romanikhin@gmail.com
                   
Table of content
●   About Android
●   Android Architecture
●   Application Fundamentals
       ●   Activity, Service,  ContentProvider, 
            BroadcastReceiver, Intent classes 
●   Application Resources
●   User Interface
●   Software for developing
●   Practice                      
                                                   2
What is Android?


                 ●   Android Inc.
                 ●   Open Handset Alliance 
                      (OHA)
                 ●   September 23, 2008
                 ●   October 21, 2008



              
                                          3
Android Architecture




              
                       4
The project structure
MyProject/                   ✔   src/
   src/
      MyActivity.java        ✔   res/
   res/
      drawable/
                                   ✔    drawable/
         icon.png                  ✔    layout/
      layout/
         main.xml                  ✔    values/
      values/
         strings.xml         ✔   gen/
      raw/
   libs/
                             ✔   AndroidManifest.xml
      ...
   assets/
      ...
   gen/
      R.java                                        5
   AndroidManifest.xml    
Application Fundamentals

●   Application Components:
       ●   Activities
       ●   Services
       ●   Broadcast receivers
       ●   Content providers
●   ~ Intent


                                
                                   6
Activity
http://developer.android.com/reference/android/app/Activity.html


                                                     ●        protected void 
                                                              onCreate(Bundle 
                                                              savedInstanceState);
                                                     ●        protected void onStart();
                                                     ●        protected void 
                                                              onRestart();
                                                     ●        protected void 
                                                              onResume();
                                                     ●        protected void 
                                                              onPause();
                                                     ●        protected void onStop();
                                                     ●        protected void 
                                                              onDestroy();

                                          
                                                                                     7
Service
http://developer.android.com/reference/android/app/Service.html




                                             ● startService(...)
                                             ● stopService(...)




                                             ● bindService(...)
                                             ● unbindService(...)




                                       
                                                                  8
Service Implementation
example




              
                         9
BroadcastReceiver
http://developer.android.com/reference/android/content/BroadcastReceiver.ht
ml



●   public void onReceive(Context context, 
      Intent intent) {/* Actions … */}
●   Before using BR you should register it 
      (dynamically – in code; or statically – 
      in AndroidManifest.xml)
●   The most often used with Service




                                       
                                                                        10
ContentProvider
http://developer.android.com/reference/android/content/ContentProvider.html


    The primary methods that need to be implemented are:
●   onCreate() which is called to initialize the provider
●   query(Uri, String[], String, String[], String) which returns data to the 
       caller
●   insert(Uri, ContentValues) which inserts new data into the content 
       provider
●   update(Uri, ContentValues, String, String[]) which updates existing data 
       in the content provider
●   delete(Uri, String, String[]) which deletes data from the content 
       provider




       ● Why is it need?
       ● See also ContentResolver, SQLiteOpenHanhler,

       SQLiteDatabase, SQLiteQueryBuilder, Cursor,
       ManagedCursor.
                                         
                                                                          11
Process Lifecycle

  Foreground process       Critical Priority



    Visible process
                           High Priority
   Service process


  Background process
                           Low Priority

    Empty process
                        
                                               12
AndroidManifest.xml
http://developer.android.com/guide/topics/manifest/manifest-intro.html

                                  <activity>
                                      <intent-filter>
                                          <action />
                                          <category />
<?xml version="1.0"                       <data />
encoding="utf-8"?>                    </intent-filter>
<manifest>                            <meta-data />
    <uses-permission />           </activity>
    <permission />                <activity-alias>
    <permission-tree />               <intent-filter>...</intent-filter>
    <permission-group />              <meta-data />
    <uses-sdk />                  </activity-alias>
    <uses-configuration />        <service>
    <uses-feature />                  <intent-filter>...</intent-filter>
    <supports-screens />              <meta-data/>
    <compatible-screens />        </service>
    <supports-gl-texture />       <receiver>
    <application>                     <intent-filter>...</intent-filter>
       ...                            <meta-data />
    </application>                </receiver>
</manifest>                       <provider>
                                      <grant-uri-permission />
                                      <meta-data />
                                  </provider>
                                       
                                                                           13
Application Resourses
                            res/
MyProject/                  ●   anim/
   src/
      MyActivity.java       ●   color/
   res/
      drawable/             ●   drawable/
         icon.png
      layout/               ●   layout/
         main.xml
      values/               ●   menu/
         strings.xml
      raw/                  ●   values/
   gen/
      R.java                ●   xml/
                            ●   raw         14
Application Resources




res/
    drawable/
        icon.png
        background.png
    drawable-hdpi/
        icon.png
        background.png




                          
                             15
Accessing Resources
/res/values/strings.xml




                           
                              16
User Interface
●   Runtime (programmically)
●   Xml layout file (ex: res/layout/main.xml)


●   ViewGroup
●   View




                             
                                                17
Example layout file




               
                      18
DDMS

DDMS (Dalvik Debug Monitoring Service) provides: 
● thread and heap information on the device


●   logcat
●   process
●   radio state information
●   incoming call and SMS spoofing 
●   location data spoofing
●   screen capture on the device and more.
                               
                                             19
Application Testing

                                      TestCase         JUnit
       Project

            Test Project           AndroidTestCase
     tested.project.dir=./..

                                         ServiceTestCase

                                   ProviderTestCase2
adb shell monkey ­p 
  ru.spb.osll.fileman      ApplicationTestCase
  ager ­v 500                   
                                                         20
Required software
●   JDK  >= 1.5 
●   Android SDK 
             (http://developer.android.com/sdk/index.html)

         ●   Adding Platforms and Other Components
●   Android NDK (http://developer.android.com/sdk/ndk/index.html)
●   Ant >= 1.7
   Eclipse (http://www.eclipse.org/downloads/)
   ADT (http://developer.android.com/sdk/eclipse­adt.html)
                                              
                                                                    21
Adding Platforms and Other
Components
●   android­sdk<...>/tools/android (Linux or Mac)
●   SDK Manager.exe (Windows)


                                         Result:
                                     ●   AVDs
                                     ●   USB Drivers
                                     ●   ...

                            
                                                       22
Troubles

●   Problems with jdk (don't use open­jdk)
●   ia32­libs (apt­get install ia32­libs)
●   Developing on a Device
        ●   USB Vendor IDs (for Linux or Mac)     Device ????
        ●   USB Driver (for Windows)




                                   
                                                                23
Practice
●   ExampleButton
●   ExampleButtonExt
●   ExStackActivity
●   ExService
●   ExBroadcastReceiver




                           
                              24
What is remained...

●   Storage data 
       ●   Internal, External Storage
       ●   DB
       ●   SharedPreferences


●   Designing for Performance 




                                 
                                        25
●   Questions... ???
     ●   Thanks!




               
                       26

More Related Content

Similar to Hello android

Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
ConFoo
 

Similar to Hello android (20)

Native Android Development Practices
Native Android Development PracticesNative Android Development Practices
Native Android Development Practices
 
Ruby conf2012
Ruby conf2012Ruby conf2012
Ruby conf2012
 
Android training in mumbai
Android training in mumbaiAndroid training in mumbai
Android training in mumbai
 
Android101
Android101Android101
Android101
 
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012
 
Five android architecture
Five android architectureFive android architecture
Five android architecture
 
React django
React djangoReact django
React django
 
Android - Anatomy of android elements & layouts
Android - Anatomy of android elements & layoutsAndroid - Anatomy of android elements & layouts
Android - Anatomy of android elements & layouts
 
Droidcon 2011: Working with the Android source, Ronan Schwarz, Openintents
Droidcon 2011: Working with the Android source, Ronan Schwarz, OpenintentsDroidcon 2011: Working with the Android source, Ronan Schwarz, Openintents
Droidcon 2011: Working with the Android source, Ronan Schwarz, Openintents
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
 
Dori waldman android _course
Dori waldman android _courseDori waldman android _course
Dori waldman android _course
 
Dive into Play Framework
Dive into Play FrameworkDive into Play Framework
Dive into Play Framework
 
How to React to JavaScript Insecurity
How to React to JavaScript InsecurityHow to React to JavaScript Insecurity
How to React to JavaScript Insecurity
 
Batch Applications for the Java Platform
Batch Applications for the Java PlatformBatch Applications for the Java Platform
Batch Applications for the Java Platform
 
Grails 101
Grails 101Grails 101
Grails 101
 
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop material
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
 

Recently uploaded

+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Hello android

  • 1. OSLL Hello Android Vasily Romanikhin 1 vasily.romanikhin@gmail.com  
  • 2. Table of content ● About Android ● Android Architecture ● Application Fundamentals ● Activity, Service,  ContentProvider,  BroadcastReceiver, Intent classes  ● Application Resources ● User Interface ● Software for developing ● Practice   2
  • 3. What is Android? ● Android Inc. ● Open Handset Alliance  (OHA) ● September 23, 2008 ● October 21, 2008   3
  • 5. The project structure MyProject/ ✔ src/ src/ MyActivity.java ✔ res/ res/ drawable/ ✔ drawable/ icon.png ✔ layout/ layout/ main.xml ✔ values/ values/ strings.xml ✔ gen/ raw/ libs/ ✔ AndroidManifest.xml ... assets/ ... gen/ R.java 5 AndroidManifest.xml  
  • 6. Application Fundamentals ● Application Components: ● Activities ● Services ● Broadcast receivers ● Content providers ● ~ Intent   6
  • 7. Activity http://developer.android.com/reference/android/app/Activity.html ●      protected void  onCreate(Bundle  savedInstanceState); ●      protected void onStart(); ●      protected void  onRestart(); ●      protected void  onResume(); ●      protected void  onPause(); ●      protected void onStop(); ●      protected void  onDestroy();   7
  • 8. Service http://developer.android.com/reference/android/app/Service.html ● startService(...) ● stopService(...) ● bindService(...) ● unbindService(...)   8
  • 10. BroadcastReceiver http://developer.android.com/reference/android/content/BroadcastReceiver.ht ml ● public void onReceive(Context context,  Intent intent) {/* Actions … */} ● Before using BR you should register it  (dynamically – in code; or statically –  in AndroidManifest.xml) ● The most often used with Service   10
  • 11. ContentProvider http://developer.android.com/reference/android/content/ContentProvider.html The primary methods that need to be implemented are: ● onCreate() which is called to initialize the provider ● query(Uri, String[], String, String[], String) which returns data to the  caller ● insert(Uri, ContentValues) which inserts new data into the content  provider ● update(Uri, ContentValues, String, String[]) which updates existing data  in the content provider ● delete(Uri, String, String[]) which deletes data from the content  provider ● Why is it need? ● See also ContentResolver, SQLiteOpenHanhler, SQLiteDatabase, SQLiteQueryBuilder, Cursor, ManagedCursor.   11
  • 12. Process Lifecycle Foreground process Critical Priority Visible process High Priority Service process Background process Low Priority Empty process   12
  • 13. AndroidManifest.xml http://developer.android.com/guide/topics/manifest/manifest-intro.html <activity> <intent-filter> <action /> <category /> <?xml version="1.0" <data /> encoding="utf-8"?> </intent-filter> <manifest> <meta-data /> <uses-permission /> </activity> <permission /> <activity-alias> <permission-tree /> <intent-filter>...</intent-filter> <permission-group /> <meta-data /> <uses-sdk /> </activity-alias> <uses-configuration /> <service> <uses-feature /> <intent-filter>...</intent-filter> <supports-screens /> <meta-data/> <compatible-screens /> </service> <supports-gl-texture /> <receiver> <application> <intent-filter>...</intent-filter> ... <meta-data /> </application> </receiver> </manifest> <provider> <grant-uri-permission /> <meta-data /> </provider>   13
  • 14. Application Resourses res/ MyProject/ ● anim/ src/ MyActivity.java ● color/ res/ drawable/ ● drawable/ icon.png layout/ ● layout/ main.xml values/ ● menu/ strings.xml raw/ ● values/ gen/ R.java ● xml/   ● raw 14
  • 15. Application Resources res/ drawable/ icon.png background.png drawable-hdpi/ icon.png background.png   15
  • 17. User Interface ● Runtime (programmically) ● Xml layout file (ex: res/layout/main.xml) ● ViewGroup ● View   17
  • 19. DDMS DDMS (Dalvik Debug Monitoring Service) provides:  ● thread and heap information on the device ● logcat ● process ● radio state information ● incoming call and SMS spoofing  ● location data spoofing ● screen capture on the device and more.   19
  • 20. Application Testing TestCase JUnit Project Test Project AndroidTestCase tested.project.dir=./.. ServiceTestCase ProviderTestCase2 adb shell monkey ­p  ru.spb.osll.fileman ApplicationTestCase ager ­v 500   20
  • 21. Required software ● JDK  >= 1.5  ● Android SDK  (http://developer.android.com/sdk/index.html) ● Adding Platforms and Other Components ● Android NDK (http://developer.android.com/sdk/ndk/index.html) ● Ant >= 1.7  Eclipse (http://www.eclipse.org/downloads/)  ADT (http://developer.android.com/sdk/eclipse­adt.html)   21
  • 22. Adding Platforms and Other Components ● android­sdk<...>/tools/android (Linux or Mac) ● SDK Manager.exe (Windows) Result: ● AVDs ● USB Drivers ● ...   22
  • 23. Troubles ● Problems with jdk (don't use open­jdk) ● ia32­libs (apt­get install ia32­libs) ● Developing on a Device ● USB Vendor IDs (for Linux or Mac)     Device ???? ● USB Driver (for Windows)   23
  • 24. Practice ● ExampleButton ● ExampleButtonExt ● ExStackActivity ● ExService ● ExBroadcastReceiver   24
  • 25. What is remained... ● Storage data  ● Internal, External Storage ● DB ● SharedPreferences ● Designing for Performance    25
  • 26. Questions... ??? ● Thanks!   26