Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mobile Software Development for Android - I397 IT COLLEGE, ANDRES KÄVER, 2015-2016 WEB:

Similar presentations


Presentation on theme: "Mobile Software Development for Android - I397 IT COLLEGE, ANDRES KÄVER, 2015-2016 WEB:"— Presentation transcript:

1 Mobile Software Development for Android - I397 IT COLLEGE, ANDRES KÄVER, 2015-2016 EMAIL: AKAVER@ITCOLLEGE.EEAKAVER@ITCOLLEGE.EE WEB: HTTP://ENOS.ITCOLLEGE.EE/~AKAVER/2015-2016/DISTANCE/ANDROID SKYPE: AKAVER 1

2 Requirements  Development environment – latest Android Studio (java, IntelliJ)  http://developer.android.com/sdk/index.html http://developer.android.com/sdk/index.html  Base OS – free choice (MS Windows, OS X, Linux)  Android based development device for testing – not required. School has some test equipment available (old devices – ca 2010).  Personal Android device – (phone/tablet) strongly recommended  If possible, use personal laptop for development  Projects in GitHub 2

3 Topics  Android overview  Basic Android Studio usage  UI creation  Web services (REST API)  Local storage and data access (SQLite)  App lifecycle and state  Sensors (proximity, geomagnetic, motion, GPS, …)  Google Play - publishing 3

4 Android  Operating system, devised for mobile equipment (mostly)  Usage: phones, tablets, TV-s, watches, glasses, cars, laptops, cameras, game consoles, …  Market share among smartphones – ca 82%  Open source project  Google apps are closed source (mail, map, etc.) 4

5 Android - mobile 5

6 Android - tablet 6

7 Short history  2003 – founded (lead: Andy Rubin)  Initial idea – OS for cameras  New plan – Mobile OS, (others: Symbian/Nokia and Win Mobile)  2005 – Google acquires the whole project  2007 – Open Handset Alliance  Google, HTC, Sony, Samsung, Dell, Motorola, LG, Qualcomm, Intel, etc…  2008 – Android 1.0 (HTC Dream, no touchscreen)  2009 – Android 1.5 Cupcake (iPhone 2007, iPhone 3G 2008)  2010 – Android 2.2 Froyo, 2.3 Gingerbread 7

8 Short history  2011 – Android 3.0 Honeycomb (tablets only)  2011 - Android 4.0 Ice Cream Sandwich  HOLO UI  2014 - Android 5 Lollipop  Material design  Dalvik vs ART (Android Runtime) (JIT or precompile, garbage collection)  2015 - Android 6 Marshmallow 8

9 Version distribution  Source: http://developer.android.com/about/dashboards/index.html 9 Lollipop - 5.X – 23% KitKat, Jelly Bean, Ice Cream Sandwich - 4.X - 73%

10 Android architecture 10

11 Android - App types  NDK - C/C++  Close to hardware and opsys  SDK - Native <- this course!!!!  Java (ART/Dalvik), using system libraries  Crossplatform – Xamarin (C#), etc  Html  One codebase/layout for different platforms  Problems with UI, weak access to hardware 11

12 Android – App architecture AndroidManifest.xml  The manifest file presents essential information about your app to the Android system, information the system must have before it can run any of the app's code.  Describes the components of the application — the activities, services, broadcast receivers, and content providers that the application is composed of.  Declares which permissions the application must have in order to access protected parts of the API and interact with other applications.  Declares the minimum level of the Android API that the application requires. 12

13 Android – AndroidManifest.xml Example - 13

14 Android – Java code MainActivity.java 14 import android.widget.TextView; public class MainActivity extends AppCompatActivity { private SectionsPagerAdapter mSectionsPagerAdapter; private ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.container); mViewPager.setAdapter(mSectionsPagerAdapter); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(mViewPager); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show(); } }); } ……..

15 Android – Layout - Resource files activity_main.xml fragment_main.xml 15

16 Android – Other resources  Images  Animations  Menu  Strings  Misc files 16

17 Android - apk  Android Application Package  ZIP file, combines all the resources and java bytecode  Signed with developer key  Developer key must be the same from version to next version  Don’t lose your keys (passwords)  Android Studio takes care of APK creation  APK-s can be downloaded from store, using 3-rd party utilities  Resources can be used as is  Most elements/code can be decompiled/recompiled 17

18 Android – Google Play - appstore  No review process  Problems are dealt with afterwards  App hijacking, etc. are real problems 18

19 Android – App security  Every app works in its own private virtual machine (Zygote)  Need permission for system resources (confirmed on app install)  Data is private, no other app can access directly other app data  Everything is possible on rooted device  End user is the weakest link 19

20 Android – dev problems  Gazillion different hardware devices and capabilities  Lots of different Android implementations  Samsung TouchWiz  HTC Sense  CyanogenMod  …..  Migration to newer versions very slow (or not done at all)  Rooted phones  Ca 2X time spent on development compared to iOS  Ca 60% better income on iOS 20

21 Android – testing on devices 21

22 Android – HelloWorld 22

23 Android - HelloWorld 23

24 Android - HelloWorld 24

25 Android - HelloWorld 25

26 Android - HelloWorld 26

27 Android - HelloWorld 27

28 Android - HelloWorld 28

29 Android - HelloWorld 29

30 Android - HelloWorld 30

31 Android - HelloWorld 31

32 Android - HelloWorld 32

33 Android - HelloWorld 33

34 Android – HelloWorld – add TextBox 34

35 Android – HelloWorld – activity_main.xml 35

36 Android – HelloWorld – MainActivity.java 36 package com.akaver.helloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void buttonClicked(View view) { TextView textView = (TextView) findViewById(R.id.textView); EditText editText = (EditText) findViewById(R.id.editText); textView.setText("Hello "+editText.getText()+"!"); editText.setText(""); InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); } }


Download ppt "Mobile Software Development for Android - I397 IT COLLEGE, ANDRES KÄVER, 2015-2016 WEB:"

Similar presentations


Ads by Google