Архитектура Андроид-приложения

Содержание

Слайд 2

Архитектура

Архитектура

Слайд 3

Изолированность приложения Android

1. Каждое приложение имеет свой Linux user Id
2. Для каждого

Изолированность приложения Android 1. Каждое приложение имеет свой Linux user Id 2.
приложения запускается своя Dalvik VM
3. Любой компонент приложения, будет запускаться в своем Linux процессе

Слайд 4

Размеры экранов

Размер

Плотность

470dip x 320 dip = WVGA800 (480x800)

Размеры экранов Размер Плотность 470dip x 320 dip = WVGA800 (480x800)

Слайд 5

Как работать?

px - пиксели

in, mm, pt - дюймы, миллиметры, точки (1/72 дюйма)

dip

Как работать? px - пиксели in, mm, pt - дюймы, миллиметры, точки
(device independent pixel) - абстрактные пиксели, зависящие от плотности экрана. Для экрана плотностью 160 dpi один dp равняется одному пикселю (px). 

ldpi: 1 dip = 0,75px
mdpi: 1 dip = 1px
hdpi: 1 dip = 1,5px
xhdpi: 1 dip = 2px

Слайд 6

Строительные блоки приложения

› Activity
› Service
› ContentProvider – ПОСТАВЩИК СОДЕРЖИМОГО
› BroadcastReceiver – ПОЛУЧЕНИЕ

Строительные блоки приложения › Activity › Service › ContentProvider – ПОСТАВЩИК СОДЕРЖИМОГО
ВНЕШНИХ СОБЫТИЙ И РЕАКЦИЯ НА НИХ
› Intent – НАМЕРЕНИЯ

Слайд 7

Рабочие лошадки

Activity

малосвязанные
не подходят для длительных операций

Service

работают в фоне (backgroud)
подходят для длительных операций

Рабочие лошадки Activity малосвязанные не подходят для длительных операций Service работают в

Слайд 8

Структура проекта (Android Studio)

› Вместо bin — build, там всё сгенерированное
› Папка

Структура проекта (Android Studio) › Вместо bin — build, там всё сгенерированное
с исходными файлами теперь содержит и ресурсы
› Файлы настройки Gradle
› Многие настройки вынесены в Gradle
› Библиотеки можно как подкладывать руками, так и подгружать автоматически

Слайд 9

AndroidManifest.xml

› определяет имя Java-пакета приложения = уникальный идентификатор для приложения.
› описывает компоненты

AndroidManifest.xml › определяет имя Java-пакета приложения = уникальный идентификатор для приложения. ›
приложения: Activity, Service, BroadcastReceiver, ContentProvider. Определяет имена классов, реализующие каждый из компонентов и оглашает их возможности (например, какие Intent-сообщения они могут обрабатывать). Эти объявления позволяют системе Android знать, какие компоненты и при каких условиях могут быть запущены.
› объявляет разрешения, которые приложение должно иметь для доступа к защищённым частям API и взаимодействия с другими приложениями.
› объявляет минимальный уровень Android API, который требует приложение.
› и другие...

Слайд 10

Ресурсы

Типы ресурсов
› drawable
) .png, .jpg, .gif
) .9.png
) .xml
) shape
) selector
› layout
› anim

Ресурсы Типы ресурсов › drawable ) .png, .jpg, .gif ) .9.png )
values
) strings
) dimensions
) colors
) arrays
› xml
› raw

Селекторы ресурсов
› Ориентация
) land, port
› Плотность точек
) ldpi, mdpi, hdpi, xhdpi, nodpi
› Размер экрана
) small, normal, large, xlarge
› Версия Android
) v3, . . . , v15
› Язык
) en, fr, ru, . . .

Слайд 11

Ресурсы R.java автоматически генерируется средой разработки

package my.favorite;
public final class R { public static

Ресурсы R.java автоматически генерируется средой разработки package my.favorite; public final class R
final class attr {
}
public static final class drawable { public static final int ic_launcher=0x7f020000;
}
public static final class id { public static final int message_edit_text=0x7f050000;
public static final int message_show_text_view=0x7f050003;
public static final int send_button=0x7f050002;
public static final int show_button=0x7f050001;
}
public static final class layout {
public static final int message_input_layout=0x7f030000;
public static final int message_show_layout=0x7f030001;
}
public static final class string {
public static final int app_name=0x7f040003;
public static final int message_input_message_hint=0x7f040000;
public static final int message_input_send_button=0x7f040002;
public static final int message_input_show_button=0x7f040001;
}
}

  содержит ссылки на все ресурсы проекта

Слайд 12

Строковые ресурсы

› res/values/strings.xml
It is a simple string
It is a string

Строковые ресурсы › res/values/strings.xml It is a simple string It is a
with integer arg: %1$d
› res/values-ru/strings.xml
Это обычная строка
Это строка с целочисленным аргументом:
%1$d

› src/my/favorite/TestActivity.java
TextView simpleText = (TextView)findViewById(R.id.text_view); simpleText.setText(getString(R.string.simple_string));
TextView argsText = (TextView)findViewById(R.id.text_view); simpleText.setText(getString(R.string.args_string, 999));

Слайд 13

Жизненный цикл Activity

Жизненный цикл Activity

Слайд 14

Жизненный цикл Activity

Жизненный цикл Activity

Слайд 15

Жизненный цикл Activity

public class TestActivity extends Activity {
private static final String TAG

Жизненный цикл Activity public class TestActivity extends Activity { private static final
= TestActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG,"onCreate"); setContentView(R.layout.main);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); Log.d(TAG,"onRestoreInstanceState");
}
@Override
protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Log.d(TAG,"onSaveInstanceState");
}
@Override
protected void onDestroy() {
Log.d(TAG,"onDestroy");
super.onDestroy();
}
//...
}
Имя файла: Архитектура-Андроид-приложения.pptx
Количество просмотров: 42
Количество скачиваний: 0