Download presentation
Presentation is loading. Please wait.
Published byLambert Henry Modified over 9 years ago
1
Introduction to Android Software Development T-110.5130 Mobile Systems programming Juha-Matti Liukkonen juha-matti.liukkonen@reaktor.com
2
Introduction to Android Software Development 1. Introduction to Android 2. Development Tools 3. Interlude: The Design Step 4. Key Android Concepts 5. Putting Your App Together 6. Where to go next
3
Introduction to Android World’s most popular mobile operating system
4
Android = Linux Linux kernel Most Android specific mechanisms now included in mainstream Linux kernel – wakelocks, binder, etc Custom startup script mechanism A simple, classic init.rc script solution (Generic) applications written in Java Applications do not need to care about underlying processor capabilities Custom Java runtime (actually 2: Dalvik, Android RunTime) Optimized for low footprint = suitable for mobile devices
5
1.400.000.000 users In 2015, 82% of new smartphones ran Android 1.4 billion users, 1.5 million new devices activated every day 54% total market share (and obviously rising) 78% of Chinese market 70% of tablet market 4000+ different device models 400+ device manufacturers Also used in wearables, TVs and cars Small segments so far
6
Most devices are never updated Main versions: 6.0 2015 4.4W (watch) 2015 5.x 2014 4.4 2014 4.x 2012-2013 4.0 2011-2012 3.0 2011 2.x 2010
7
Many screen sizes, form factors Also – different interaction models!
8
Variety pros & cons Con: your software will not work properly on most Android devices Choose your target devices wisely to reach your targeted users! Customized layouts, graphics, interaction models needed to support different device types Some handled via Play Store device filters, some by app manifest tags, some by resources, some you need to handle in your code Pro: the same programming model works on all Android devices If you know how to create software for an Android phone, you also know how to do it for tablets, smartwatches, cars and TVs
9
Takeaway Android is basically Java on Linux It’s easy to reach gazillions of users with Android apps Variety makes it hard to write good Android apps
10
Development Tools What you need to get your app done
12
The good and the bad news Android Studio contains everything you need (yay 2016!) …just that it usually doesn’t contain it by default For very simple apps, only for latest devices, defaults are OK So, after Android Studio installation, remember to: Configure -> SDK Manager Install the Android versions you want to build software for Also advisable to install the most common support libraries
16
Getting ready to do software Press ”OK” – now your environment is set up Android Studio will generate application skeletons for common application types for you All you need to do is …”fill in the details”
19
Now things get interesting What to choose as Activity? What does your software actually need to do? This is the stage when we usually do…
20
Interlude: The Design Step The critical step before actually writing any software (nothing to do with Android as such)
21
Understand your use case What problem does your app solve? For whom? (Concrete example, no abstract persons!) In which situation does the problem occur? How does the user launch your app in that situation? How does your app fulfill the user’s need?
22
Example: Adhoc Ideas Problem: helping ad-hoc ideas be stored (eg. app ideas!) User: my colleague Antti (will use him for testing) Where: in public transport, during work commutes (noisy environment so audio recording isn’t polite & doesn’t work) Launch: shortcut icon on home screen Fulfillment: it’s easy to write free-form text immediately
23
Identify & prioritize features 1. Open up, instantly ready for writing 2. Autosave entered text 3. Multiple notes can be saved 4. Any saved note can be opened up for reading 5. Any saved note can be emailed 6. Any saved note can be deleted 7. Bold and italic text 8. Email recipients can be taken from the address book 9. … This is clearly our priority #1 – if the app has this feature, it is already useful to Antti
24
Draft the user interface Pen and paper are good – low cost, quick iterations Build a runnable app from your doodles using POP Online wireframe apps also available: Fluid, InDesign Test your design with a real user! Clickable prototype (POP, Fluid, InDesign) or just flip paper pics Is your assumption about the need valid? Is your assumption about the 1st feature workflow valid?
25
Incremental design Split non-trivial features into clear workflow steps Design the simplest possible implementation for each step Think how each step can be improved later on (if needed) Implement the simplest variant end-to-end Now go test it with the real user – what’s the user’s priority, which step would benefit most from an improvement? Does the user benefit more from an improvement to the existing minimal workflow, or from a new feature?
26
User story slicing By Arto Eskelinen, see slideshare.com
27
Takeaway Think about your app before coding it Test your concept with a real user Paper or wireframe apps are good for getting feedback Implement something simple end-to-end first, add complexity later, when it has value
28
Key Android Concepts What you need to know about Android app structure
29
Intents launch Activities Each screen with a user interface is an Activity A note writing screen, a list of notes, app settings, … The user is focused on doing one thing A component in your app implements one Activity Your app usually has multiple Activities (so, also multiple components) Components invoke other Activities using Intents Simply pass an Intent object to startActivity() Activities in other apps can also be invoked – for example, viewing web pages can invoke Activity in the browser app Your app can publish any Activity it implements via its manifest file
30
Non-interactive activities A Service is a component running in the background Playing music, fetching data, mining bitcoin, etc. Another component can use bindService() to interact with it A ContentProvider is a shared data manager A music library, text notes, search results etc. Rich API inherited from the ContentProvider class A BroadcastReceiver listens for system state changes Battery low, network connection lost, memory low, etc. May eg. trigger autosave, show an icon in status bar, lock the screen
31
Declaring public activities This is the application manifest XML file, generated by Android Studio for you
32
Filtering Intents you can serve
33
Declaring your requirements Devices that don’t fulfill your manifest requirements can’t even install the app from Play Store.
34
Non-code elements Resources = images, view layout, localization text, etc. Stored under the res/ subdirectory in your app Drawables (= images) in res/drawables/ Localized files in res/subdirectory-languagecode/ You can provide different layouts & images for different device types Provide resource file variants for different resolutions, aspect ratios and localizations The system automatically chooses the best matching resources
35
Putting Your App Together Making it all work and run on your device
36
Getting to the beef You have validated your app concept with the user? You have chosen your first feature? You have tested your wireframe mockup with the user? You have some idea about Activities, Intents, the manifest file, and resources? You have installed Android Studio? Good: then let’s get back to ”Start a new Project”… let’s click it all together!
37
Give your app a name here
38
Now you need to decide which device types and versions to support…
39
Several template Activities are available. We’ll build our own so choose Empty!
40
MainActivity is a good name, just click Finish!
41
This skeleton is automatically generated for us
42
Click on the left at 1:Project to find all the elements of your app
43
The manifest maps the Launcher’s start-up action (”MAIN”) to your MainActivity
44
Now select your layout, the device view appears to the right. Here is the layout object. Select and delete the default TextView
45
Drag the Multiline Text from the widget palette on top of your RelativeLayout and resize to fit screen. When done, press Play!
46
Selecting the device to run on If you have a real Android device Enable Developer Mode in the Android Settings app In 4.2+, go to About device, tap Build Number 7 times (really!) Connect it to your PC/Mac with a USB cable Select the device from the pop-up that appears after Play If you don’t Select emulator, and choose the device type to emulate Note: it’s a good idea to test on all device variants you wish to support, so you may want to use the emulator for other types even if you have some real device
47
The Adhoc Ideas app, 1st priority feature ready for user testing! Multitasking, limited autosave, etc provided by system.
48
Drag a button to your Layout, give it a label Resize the UI elements to fit
49
Write a function to implement desired behavior (e.g. send email) The editor will help you add the imports
50
In layout view, select the button, then select your new function as its onClick event handler
51
Next steps Adding useful functionality Advertisements!, billing per-typed-letter, … Plenty of useful APIs available in Google Services library Making it pretty and natural to use Study the Google Material Design guidelines Add drawable resources to have image backgrounds etc Optimizing UI layout for different device types Create resolution specific layout XML files Remember resolution variants of your drawables
52
Where to go next Where to find additional information
53
First place to visit This is the treasure trove
54
Start from Training or API Guides, also do look at the Design page
55
Developer Reference is where most Android developers spend their days…
56
This is where you get to distribute and sell your app via the Play Store!
57
Thank You! Juha-Matti Liukkonen juha-matti.liukkonen@reaktor.com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.