SlideShare a Scribd company logo
1 of 46
Download to read offline
Lecture #3
Logs
●   Log.i(tag, msg); (information)
●   Log.v(tag, msg); (verbose)
●   Log.d(tag, msg); (debug)
●   Log.w(tag, msg); (warning)
●   Log.e(tag, msg); (error)
DDMS
Log.i("my_log_tag", "gotcha!");
Activity
public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     setContentView(R.layout.my_layout);
    }
}
Declaring "launcher" Activity

<activity
     android:name=".MyActivity" >
     <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
</activity>
Declaring new Activities

<activity
   android:name=".AnotherActivity">
</activity>



      НЕ ЗАБЫВАЙТЕ!
Starting new Activity

Intent i = new Intent(context, NextActivity.class);
startActivity(intent);

context:
●   this
●   MyActivity.this
●   getApplicationContext()
Activity Lifecycle
Activity states



● Resumed ("running")
● Paused
● Stopped
Lifecycle methods

●   onCreate()
●   onRestart()
●   onStart()
●   onResume()
●   onPause()
●   onStop()
●   onDestroy()
Starting an Activity
● setContentView(R.layout.my_layout);
● подготовка пользовательского
  интерфейса
● инициализация переменных класса (если
  нужно)
● вызывается единожды за жизненный
  цикл Activity
● не выполняйте "тяжелых" задач в
  onCreate()
Pausing and Resuming an Activity
● Остановить анимации, звук, видео и т.д.
● Сохранить состояние экрана (light auto-
  save only)
● Очистить системные ресурсы (broadcast
  receivers, handlers to sensors (like GPS),
  camera, ...)
● не выполняйте "тяжелых" задач в
  onPause()
● В onResume(), наоборот, все
  восстанавливается (не забывайте, что
  вызывается каждый раз)
Stopping and Restarting an Activity

● Максимально очистить все ресурсы
● Сохранить состояние экрана (heavy
  operations)
● В onStart(), наоборот, все
  восстанавливается (не забывайте, что
  вызывается каждый раз)
Recreating an Activity



● onSaveInstanceState(Bundle savedInstanceState)
● onRestoreInstanceState(Bundle savedInstanceState)
● onCreate(Bundle savedInstanceState)
● onDestroy()
● onRestart()
github repo
@Override
protected void onPause() {
  super.onPause();
  Log.i("fsq", "onPause 1st");
}




   НЕ ЗАБЫВАЙТЕ
  ВЫЗЫВАТЬ SUPER!
Android UI
LayoutParams



               android:layout_width="fill_parent"
               android:layout_height="wrap_content"

               android:layout_width="100dip" android:
               layout_height="100dip"
К каждому View применимы
следующие listener'ы


●   OnClickListener
●   OnLongClickListener
●   OnTouchListener
●   OnDragListener
●   OnTouchListener
●   OnKeyListener
padding and layout_margin

●   android:padding="5dip"
●   android:paddingRight="5dip"
●   android:layout_margin="5dip"
●   android:layout_marginRight="5dip"




             dp or dip
TextView
●   android:text="@string/text"
●   android:textColor="@android:color/black"
●   android:textStyle="italic|bold"
●   android:textSize="14sp"


                    sp
Buttons
● Button
● ImageButton

● android:text="@string/button_text"
● android:src="@drawable/button_icon"
● android:background="@android:color/transparent"
  (for ImageButton)
● selector (for ImageButton)
Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
        // Do something in response to button click
    }
});
● button.setOnClickListener(this)
● button.setOnClickListener(myClickListener)
● android:onClick="clickMethod"
switch (v.getId()) {
  case R.id.button1:
     //
     break;
  case R.id.button2:
     //
     break;
}
EditText
●   editText.getText();
●   android:inputType="textEmailAddress"
●   OnEditorActionListener
●   OnTextChangedListener
ImageView



            android:src="@drawable/icon"
            android:scaleType="fitXY"
● CheckBox
● RadioButton
● ToggleButton
Pickers
ListView and GridView
LinearLayout
RelativeLayout



                 ●   android:layout_alignParentLeft="
                     true"
                 ●   android:layout_centerVertical="true"
                 ●   android:layout_toRightOf="@+id/id"
                 ●   android:layout_below="@+id/id"
FrameLayout
ScrollView
gravity
● android:gravity="center"
● android:layout_gravity="center_horizontal|right"
weight




   ● android:weight="1"
   ● android:layout_width="0dip"
Toast




Toast.makeText(context, text, duration).show();
Resources for multiple screens

●   drawable
●   drawable-xhdpi
●   drawable-hdpi
●   drawable-mdpi
●   layout
●   layout-land
Other Resources


●   anim
●   assets
●   libs
●   values
External jars   Хранить в папке libs!
Android Library Project
Menu




No Context menu is a good Context menu (c)
Homework



● Activity Lifecycle
● Views and Layouts

More Related Content

What's hot

Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн2ГИС Технологии
 
Использование API Яндекс.Карт
Использование API Яндекс.КартИспользование API Яндекс.Карт
Использование API Яндекс.КартFDConf
 
Techtalk#8: Design patterns in real life
Techtalk#8: Design patterns in real lifeTechtalk#8: Design patterns in real life
Techtalk#8: Design patterns in real lifeDA-14
 
Fun with core graphics
Fun with core graphicsFun with core graphics
Fun with core graphicsSoftTechnics
 
Making Scalable JavaScript Application
Making Scalable JavaScript ApplicationMaking Scalable JavaScript Application
Making Scalable JavaScript ApplicationMikhail Davydov
 
jQuery. Введение и практика
jQuery. Введение и практикаjQuery. Введение и практика
jQuery. Введение и практикаSlava Aliev
 
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays
 
FrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + Redux
FrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + ReduxFrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + Redux
FrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + ReduxFrontDays
 

What's hot (12)

Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн
 
Использование API Яндекс.Карт
Использование API Яндекс.КартИспользование API Яндекс.Карт
Использование API Яндекс.Карт
 
Techtalk#8: Design patterns in real life
Techtalk#8: Design patterns in real lifeTechtalk#8: Design patterns in real life
Techtalk#8: Design patterns in real life
 
Fun with core graphics
Fun with core graphicsFun with core graphics
Fun with core graphics
 
Triggers для Mysql
Triggers для MysqlTriggers для Mysql
Triggers для Mysql
 
Making Scalable JavaScript Application
Making Scalable JavaScript ApplicationMaking Scalable JavaScript Application
Making Scalable JavaScript Application
 
jQuery. Введение и практика
jQuery. Введение и практикаjQuery. Введение и практика
jQuery. Введение и практика
 
Javascript
JavascriptJavascript
Javascript
 
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
 
FrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + Redux
FrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + ReduxFrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + Redux
FrontDays #2. Игорь Лобанов, Миграция Backbone (Marionette) -> React + Redux
 
Презентация jQuery
Презентация jQueryПрезентация jQuery
Презентация jQuery
 
Суперсилы Chrome developer tools
Суперсилы Chrome developer toolsСуперсилы Chrome developer tools
Суперсилы Chrome developer tools
 

Similar to Android Development Course in HSE lecture #3

Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutRambler Android
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеГлеб Тарасов
 
MVP, Moxy. Как правильно пользоваться
MVP, Moxy. Как правильно пользоватьсяMVP, Moxy. Как правильно пользоваться
MVP, Moxy. Как правильно пользоватьсяYuri Shmakov
 
Android Development Course in HSE lecture #1
Android Development Course in HSE lecture #1Android Development Course in HSE lecture #1
Android Development Course in HSE lecture #1Empatika
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоStanfy
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеГлеб Тарасов
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Noveo
 
Коротко о React.js
Коротко о React.jsКоротко о React.js
Коротко о React.jsMad Devs
 
Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1Technopark
 
Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Ontico
 
Журат М. - AFramework
Журат М. - AFrameworkЖурат М. - AFramework
Журат М. - AFrameworkInnim
 
Как стать продуктивным Android разработчиком
Как стать продуктивным Android разработчикомКак стать продуктивным Android разработчиком
Как стать продуктивным Android разработчикомPavel Shchahelski
 
«Custom View. Делаем быстро, красиво, чисто». Илья Демидов
«Custom View. Делаем быстро, красиво, чисто». Илья Демидов«Custom View. Делаем быстро, красиво, чисто». Илья Демидов
«Custom View. Делаем быстро, красиво, чисто». Илья ДемидовDataArt
 
Программирование под Maemo
Программирование под MaemoПрограммирование под Maemo
Программирование под Maemodmitryml
 
Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Ontico
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_schoolITmozg
 
Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”
Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”
Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”Lviv Startup Club
 

Similar to Android Development Course in HSE lecture #3 (20)

Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayout
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
 
MVP, Moxy. Как правильно пользоваться
MVP, Moxy. Как правильно пользоватьсяMVP, Moxy. Как правильно пользоваться
MVP, Moxy. Как правильно пользоваться
 
Android Development Course in HSE lecture #1
Android Development Course in HSE lecture #1Android Development Course in HSE lecture #1
Android Development Course in HSE lecture #1
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)
 
Views обзор
Views обзорViews обзор
Views обзор
 
Коротко о React.js
Коротко о React.jsКоротко о React.js
Коротко о React.js
 
Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1
 
Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)
 
Журат М. - AFramework
Журат М. - AFrameworkЖурат М. - AFramework
Журат М. - AFramework
 
Как стать продуктивным Android разработчиком
Как стать продуктивным Android разработчикомКак стать продуктивным Android разработчиком
Как стать продуктивным Android разработчиком
 
«Custom View. Делаем быстро, красиво, чисто». Илья Демидов
«Custom View. Делаем быстро, красиво, чисто». Илья Демидов«Custom View. Делаем быстро, красиво, чисто». Илья Демидов
«Custom View. Делаем быстро, красиво, чисто». Илья Демидов
 
Программирование под Maemo
Программирование под MaemoПрограммирование под Maemo
Программирование под Maemo
 
Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_school
 
Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”
Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”
Lviv MDDay 2014. Андріан Буданцов “Внутрішній світ iOS додатків”
 

More from Empatika

Gamification 101 - Intro
Gamification 101 - IntroGamification 101 - Intro
Gamification 101 - IntroEmpatika
 
Travel 101 - On Distribution
Travel 101 - On DistributionTravel 101 - On Distribution
Travel 101 - On DistributionEmpatika
 
Travel Tech 101 - Introduction
Travel Tech 101 - IntroductionTravel Tech 101 - Introduction
Travel Tech 101 - IntroductionEmpatika
 
Subscriptions business model - FAQ
Subscriptions business model - FAQSubscriptions business model - FAQ
Subscriptions business model - FAQEmpatika
 
Theories of Innovation
Theories of InnovationTheories of Innovation
Theories of InnovationEmpatika
 
Lessons learned & not learned at MSU
Lessons learned & not learned at MSULessons learned & not learned at MSU
Lessons learned & not learned at MSUEmpatika
 
Disruptive Innovations
Disruptive InnovationsDisruptive Innovations
Disruptive InnovationsEmpatika
 
US Commercial Aviation History - 1
US Commercial Aviation History - 1US Commercial Aviation History - 1
US Commercial Aviation History - 1Empatika
 
Life in a startup
Life in a startupLife in a startup
Life in a startupEmpatika
 
Machine Learning - Empatika Open
Machine Learning - Empatika OpenMachine Learning - Empatika Open
Machine Learning - Empatika OpenEmpatika
 
Machine learning 2 - Neural Networks
Machine learning 2 - Neural NetworksMachine learning 2 - Neural Networks
Machine learning 2 - Neural NetworksEmpatika
 
Machine Learning - Introduction
Machine Learning - IntroductionMachine Learning - Introduction
Machine Learning - IntroductionEmpatika
 
Online Travel 3.0 - Mobile Traveler (Rus)
Online Travel 3.0 - Mobile Traveler (Rus)Online Travel 3.0 - Mobile Traveler (Rus)
Online Travel 3.0 - Mobile Traveler (Rus)Empatika
 
Flight to 1000000 users - Lviv IT Arena 2016
Flight to 1000000 users - Lviv IT Arena 2016Flight to 1000000 users - Lviv IT Arena 2016
Flight to 1000000 users - Lviv IT Arena 2016Empatika
 
introduction to artificial intelligence
introduction to artificial intelligenceintroduction to artificial intelligence
introduction to artificial intelligenceEmpatika
 
Travel inequality - Bayram Annakov
Travel inequality - Bayram AnnakovTravel inequality - Bayram Annakov
Travel inequality - Bayram AnnakovEmpatika
 
App in the Air Travel Hack Moscow - Fall, 2015
App in the Air Travel Hack Moscow - Fall, 2015App in the Air Travel Hack Moscow - Fall, 2015
App in the Air Travel Hack Moscow - Fall, 2015Empatika
 
Product Management
Product ManagementProduct Management
Product ManagementEmpatika
 
Intro to Exponentials - Part 1
Intro to Exponentials - Part 1Intro to Exponentials - Part 1
Intro to Exponentials - Part 1Empatika
 
Singularity University Executive Program - Day 1
Singularity University Executive Program - Day 1Singularity University Executive Program - Day 1
Singularity University Executive Program - Day 1Empatika
 

More from Empatika (20)

Gamification 101 - Intro
Gamification 101 - IntroGamification 101 - Intro
Gamification 101 - Intro
 
Travel 101 - On Distribution
Travel 101 - On DistributionTravel 101 - On Distribution
Travel 101 - On Distribution
 
Travel Tech 101 - Introduction
Travel Tech 101 - IntroductionTravel Tech 101 - Introduction
Travel Tech 101 - Introduction
 
Subscriptions business model - FAQ
Subscriptions business model - FAQSubscriptions business model - FAQ
Subscriptions business model - FAQ
 
Theories of Innovation
Theories of InnovationTheories of Innovation
Theories of Innovation
 
Lessons learned & not learned at MSU
Lessons learned & not learned at MSULessons learned & not learned at MSU
Lessons learned & not learned at MSU
 
Disruptive Innovations
Disruptive InnovationsDisruptive Innovations
Disruptive Innovations
 
US Commercial Aviation History - 1
US Commercial Aviation History - 1US Commercial Aviation History - 1
US Commercial Aviation History - 1
 
Life in a startup
Life in a startupLife in a startup
Life in a startup
 
Machine Learning - Empatika Open
Machine Learning - Empatika OpenMachine Learning - Empatika Open
Machine Learning - Empatika Open
 
Machine learning 2 - Neural Networks
Machine learning 2 - Neural NetworksMachine learning 2 - Neural Networks
Machine learning 2 - Neural Networks
 
Machine Learning - Introduction
Machine Learning - IntroductionMachine Learning - Introduction
Machine Learning - Introduction
 
Online Travel 3.0 - Mobile Traveler (Rus)
Online Travel 3.0 - Mobile Traveler (Rus)Online Travel 3.0 - Mobile Traveler (Rus)
Online Travel 3.0 - Mobile Traveler (Rus)
 
Flight to 1000000 users - Lviv IT Arena 2016
Flight to 1000000 users - Lviv IT Arena 2016Flight to 1000000 users - Lviv IT Arena 2016
Flight to 1000000 users - Lviv IT Arena 2016
 
introduction to artificial intelligence
introduction to artificial intelligenceintroduction to artificial intelligence
introduction to artificial intelligence
 
Travel inequality - Bayram Annakov
Travel inequality - Bayram AnnakovTravel inequality - Bayram Annakov
Travel inequality - Bayram Annakov
 
App in the Air Travel Hack Moscow - Fall, 2015
App in the Air Travel Hack Moscow - Fall, 2015App in the Air Travel Hack Moscow - Fall, 2015
App in the Air Travel Hack Moscow - Fall, 2015
 
Product Management
Product ManagementProduct Management
Product Management
 
Intro to Exponentials - Part 1
Intro to Exponentials - Part 1Intro to Exponentials - Part 1
Intro to Exponentials - Part 1
 
Singularity University Executive Program - Day 1
Singularity University Executive Program - Day 1Singularity University Executive Program - Day 1
Singularity University Executive Program - Day 1
 

Android Development Course in HSE lecture #3