Академический Документы
Профессиональный Документы
Культура Документы
Разработчик программы
Шершаков С. А., sshershakov@hse.ru
Москва 2016
1 Course Description
Course title: Android Applications Development
Author of the program: Sergey A. Shershakov, MSc (responsible lecturer)
1.2 Pre-requisites
It is presupposed that all students enrolled in the course have completed corresponding full-time Bach-
elor degree training programs and been selected (based on either portfolio performance or other core
performance indices) to continue their MS education in the Program.
Students should be familiar with the basics of the following training courses: (a) Object-oriented
analysis and programming (Java experience highly recommended); (b) Mobile Applications Develop-
ment.
1.3 Abstract
Nowadays, mobile devices become widely spread due to a number of reasons. Among them, one can
distinguish an increase in performance and data storage, elongation of operation time together with
reducing the size of devices as well as their cost. Convergence of data and voice networks and ever-
increasing Internet accessibility plays here a significant role. Currently Android OS runs the majority
of devices all over the world and their number only increases. Hence, owning Android development
competencies is therefore highly valuable.
The training course “Android Applications Development” introduces participants to the design
and development of Android applications for handheld devices. The course starts with basic concepts
and step by step it involves all necessary components for building modern and reliable applications
for various purposes. The course concerns a number of perspectives including application develop-
ment workflow with modern tools and techniques, debugging and deployment, UI-related concepts,
domain-specific applications, distributed systems and others. Some of the most useful related libraries
are also considered. The participants develop their practical skills by doing problem-oriented exercises
throughout the course to reinforce material that is presented in the form of lectures.
2 Learning Objectives
During the course “Android Applications Development” the participants will:
• study platforms and toolkits for fast development of modern Android applications;
• practice application debugging and deployment with respect to different devices or emulators;
2
• investigate various use cases and appropriate tools for implementing them in Android applica-
tions;
• intensively use widespread industrial tools for software project management (such as Redmine,
git and others).
3 Learning Outcomes
By the end of the course the students will acquire theoretical knowledge and practical skills and will
be able to:
(Technical skills)
• analyze a problem to be implemented in the form of an Android application;
• design app architecture with respect to problem decomposition and known limitations;
• select the most appropriate toolset for app development;
• select a set of related protocols, libraries, and frameworks, taking into account the need to interact
with both a local and a distributed environment;
• develop the application and deploy it for different app stores;
• create a testbed environment for essential testing of the application.
(Soft skills)
• improve team-working skills with using collaborative working tools (Redmine);
• improve presentation skills;
• improve skills on writing reports and technical documentation, including rapidly changing docu-
mentation with using wiki and other specific tools;
• improve self- and peer-review skills.
Generally, the course contributes to the developments of the following competencies (as for FSES/HSE
(ФГОС/НИУ ВШЭ) code, rus. abbrev.): СК-М5, СК-М7, СЛК-М5, СЛК-М9, ИК-М2.1.АД (ПИ),
ИК-М2.2.АД (ПИ), ИК-М3.1.ПД (ПИ), ИК-М3.2.ПД (ПИ), ИК-М7.1.ОУД (ПИ).
4 Course Plan
Course Audience Hours Self
№ Topic Name
Hours, Lectures Practical Study
Total Studies
Module 1 (20 hrs. = 9 + 11)
1 Introduction to Android Development (Sec. 7.1) 15 2.5 1.5 11
2 GUI: Views, Widgets and Layouts (Sec. 7.2) 16 1.5 2.5 12
3 Activities and Intents (Sec. 7.3) 16 2 2 12
4 Dynamic UI and Fragments (Sec. 7.4) 16 1.5 2.5 12
5 Data Storage (Sec. 7.5) 16 1.5 2.5 12
6 Multi-threading (Sec. 7.6) 16 — — 16
Module 1, totally 95 9 11 75
Module 2 (20 hrs. = 9 + 11)
7 Services (Sec. 7.7) 16 1.5 2.5 11
8 Networking and Distributed Systems (Sec. 7.8) 15 2 2 12
9 Localization and Supporting Different Devices 16 — — 16
(Sec. 7.9)
10 Accessing Android Hardware (Sec. 7.10) 16 2 2 12
11 Multimedia (Sec. 7.11) 16 1.5 2.5 12
12 Android “Kernel Mode” (Sec. 7.12) 16 2 2 12
Module 2, totally 95 9 11 75
TOTAL: 190 18 22 150
3
Notes:
1. Each sequential number above corresponds to a separate theme, whereas a theme can span over
one or more lectures.
2. The modules above are about half a semester long. Modules 1 and 2 belong to the first semester.
5 Reading List
Books [43], [44].
Internet Sources [1], [2], [3], [4], [5], [6], [7], [8], [9] (for additional sources see references below).
6 Grading System
The course grade is based on both ongoing assessment and final examination. Every module ends up
with a final test. The grade for the test together with a cumulative grade represent a final grade for the
module. The final grade for the second module is the ultimate grade for the course.
The final grade F G1 for the first module is calculated as follows:
4
Table 1: Correspondence of ten-point to five-point marks
As a result of every class, a certain maximum number of RP can be earned (RPmax ). RPs are
accumulated during a semester and give a resulting grade as maximum 8 points (10-point scale) to
OA1 and OA2 only if every class brings a maximum number of points (RPmax ) for a given participant.
EPs are given for additional efforts and for excellent jobs. They are also accumulated and can be used
in the end of a semester for compensating deficiency of RPs and increasing an OA grades up to 10
points.
Finally, some kinds of out-of-class activities can be accounted for as a part of ongoing assessment.
Peer review work, preparing and reporting one of a course-related topics are examples of such activities.
Ongoing activities grades can be significantly decreased (down to 0 points) if a participant does not
attend a class or attends it sporadically even though all other formal requirements for earning points
are met.
7 Course Content
7.1 Introduction to Android Development
Topic outline:
• Introduction
• Basics of Android development [1]
• Android architecture [10], [11]
• IDE, tools and main components [12]
• Java review
• Android Virtual Devices
• First application
Main references/books/reading: [43], [44], [3], [6], [8].
5
7.3 Activities and Intents
Topic outline:
• Creating an activity
• Activity lifecycle [16]
• Android activity classes
• Intents; implicit and explicit intents [17]
• Multiple activities and intents
• Debugging, ADB and Logcat [18]
Main references/books/reading: [43], [44].
7.6 Multi-threading
Topic outline:
• Threading overview [26]
• Java threads
• Android App’s UI thread
• AsyncTask class
• Messages and Handlers [27]
Main references/books/reading: [43], [44].
7.7 Services
Topic outline:
• Introducing services [28]
• Alarms [29]
• Notifications [30]
• Broadcasting [31]
• BroadcastReceiver class
6
Main references/books/reading: [43], [44].
7.11 Multimedia
Topic outline:
• 2D- and 3D- graphics [38]
• Animations
• Touch and Gestures [39]
• Introducing Android TV [40]
• Touching GameDev
Main references/books/reading: [43], [44].
7
8 Special Equipment and Software Support (if required)
Generally, it is possible to develop and debug an Android application by using simulator software.
Presence of a physical device is therefore not mandatory. Nevertheless, if such a device is available,
it allows to develop the application more naturally. Moreover, exploring some hardware features may
require specific devices.
Finally, a desktop or laptop computer is a must, preferably with a USB-port for connecting a physical
Android-based device.
References
[1] url: http://developer.android.com.
[2] url: https://developer.android.com/training/index.html.
[3] url: http://developer.android.com/sdk/index.html.
[4] url: https://developers.google.com/admob/android/quick-start.
[5] url: developer.android.com/wear/.
[6] url: https://developer.android.com/reference/packages.html.
[7] url: http://www.anddev.org/.
[8] url: http://docs.oracle.com/javase/7/docs/api/.
[9] url: http://android-developers.blogspot.com.
[10] url: https://developer.android.com/guide/platform/index.html.
[11] url: https://source.android.com/devices/.
[12] url: https://developer.android.com/studio/index.html.
[13] url: https://developer.android.com/reference/android/view/View.html.
[14] url: https://developer.android.com/guide/topics/ui/declaring-layout.html.
[15] url: https://developer.android.com/guide/topics/appwidgets/index.html.
[16] url: https://developer.android.com/guide/components/activities.html.
[17] url: https://developer.android.com/guide/components/intents-filters.html.
[18] url: https://developer.android.com/studio/command-line/adb.html.
[19] url: https://developer.android.com/guide/components/fragments.html.
[20] url: https://developer.android.com/guide/topics/ui/dialogs.html.
[21] url: https://developer.android.com/training/testing/start/index.html.
[22] url: https://developer.android.com/guide/topics/ui/settings.html.
[23] url: https://developer.android.com/training/basics/data-storage/files.html.
[24] url: https://developer.android.com/training/basics/data- storage/databases.
html.
[25] url: https://developer.android.com/guide/topics/providers/content-providers.
html.
[26] url: https://developer.android.com/guide/components/processes- and- threads.
html.
[27] url: https://developer.android.com/reference/android/os/Handler.html.
8
[28] url: https://developer.android.com/guide/components/services.html.
[29] url: https://developer.android.com/training/scheduling/alarms.html.
[30] url: https://developer.android.com/guide/topics/ui/notifiers/notifications.
html.
[31] url: https://developer.android.com/guide/components/fundamentals.html.
[32] url: https://developer.android.com/training/basics/network-ops/index.html.
[33] url: https://netbeans.org/kb/docs/websvc/rest_ru.html.
[34] url: https://developer.android.com/guide/topics/resources/localization.html.
[35] url: https://developer.android.com/wear/index.html.
[36] url: https://developer.android.com/distribute/googleplay/index.html.
[37] url: https : / / developer . android . com / guide / topics / sensors / sensors _ overview .
html.
[38] url: https://developer.android.com/guide/topics/graphics/index.html.
[39] url: https://developer.android.com/training/gestures/index.html.
[40] url: https://developer.android.com/tv/index.html.
[41] url: https://developer.android.com/guide/topics/security/permissions.html.
[42] url: http://doc.qt.io/qt-5/android-support.html.
[43] Reto Meier. Professional Android Application Development. Wiley Publishing, Inc., 2014.
[44] Bill Phillips et al. Android Programming: The Big Nerd Ranch Guide. 2nd. Pearson Technology
Group, 2015.