SlideShare a Scribd company logo
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

PDF
10 Insightful Quotes On Designing A Better Customer Experience
PPTX
How to Build a Dynamic Social Media Plan
PDF
Learn BEM: CSS Naming Convention
PDF
SEO: Getting Personal
PDF
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
PDF
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
PDF
Mantri Presentation One
PDF
Jollen's Presentation: Introducing Android low-level
10 Insightful Quotes On Designing A Better Customer Experience
How to Build a Dynamic Social Media Plan
Learn BEM: CSS Naming Convention
SEO: Getting Personal
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Mantri Presentation One
Jollen's Presentation: Introducing Android low-level

Similar to Hello android (20)

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

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Machine Learning_overview_presentation.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Machine learning based COVID-19 study performance prediction
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Digital-Transformation-Roadmap-for-Companies.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
sap open course for s4hana steps from ECC to s4
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf
Spectroscopy.pptx food analysis technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A comparative analysis of optical character recognition models for extracting...
Machine Learning_overview_presentation.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Spectral efficient network and resource selection model in 5G networks
Machine learning based COVID-19 study performance prediction
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Programs and apps: productivity, graphics, security and other tools
Ad

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