Laboratorium Systemów Mobilnych. Wykład 1



Podobne dokumenty
Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

AndroidManifest.xml. Plik manifestu opisuje podstawowe charakterystyki aplikacji i definiuje jej komponenty.

[Android] Podstawy programowania

Systemy operacyjne na platformach mobilnych

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Systemy operacyjne na platformach mobilnych

Mariusz Fraś. Instytut Informatyki. olitechnika Wrocławska. Systemy Wbudowane. Android. Dr inż. Mariusz Fraś. maf 1

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Systemy operacyjne na platformach mobilnych

Layouty. Kilka layoutów

Laboratorium Systemów Mobilnych. Wykład 2

Mobilne aplikacje multimedialne

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 8 Wykorzystanie układu RelativeLayout

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

akademia androida Pierwsze kroki w Androidzie część I

Tworzenie aplikacji na platformie Android

Wsparcie dla różnych urządzeń. SDK pozwala przystosować aplikację do większości tych wypadków

Tworzenie wydajnych interfejsów. Autorzy: Piotr Michałkiewicz, 2 rok AiR Daniel Maksymow, 2 rok Informatyki

Podstawowe elementy GUI - zadania

Systemy operacyjne na platformach mobilnych

Instalujemy środowisko. Hello World! Odczyt/zapis informacji do komponentów na formie. onclick()

Android pierwsza aplikacja

Powiadomienia w systemie Android

Android, wprowadzenie do SDK

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Android tworzenie aplikacji mobilnych

Programowanie aplikacji mobilnych

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Programowanie aplikacji mobilnych

Obsługa SMS i telefonii

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

Mechanizm powiadomień

Podstawowe elementy GUI - zadania

Agenda. Implicit intents Wyświetlanie obrazków Menu Ikona aplikacji Praca z kolekcjami i ListView Własny widok

Android - wprowadzenie. Łukasz Przywarty

Wprowadzenie do systemu Android

Programowanie Urządzeń Mobilnych. Laboratorium nr 9,10

Systemy operacyjne na platformach mobilnych

Automatyczne testowanie aplikacji Android

Agenda. Activity cd Layouty Jednostki Dialogi LogCat Drugie Activity i Intents Serializacja Własne widoki Menu

Java jako język programowania

Technologie internetowe w programowaniu.

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

JAVA : TELEFONY KOMÓRKOWE I ANDROID 1. WSTĘP

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

Szkolenie Android dla początkujących

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Kontakt. Krzysztof Bzowski Tel B5 / 605

Zaawansowane aplikacje WWW - laboratorium

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

WSTĘP DO ANDROIDA. Laboratorium

Wprowadzenie do systemu Android

grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie

WSTĘP DO ANDROIDA. Laboratorium 2 Systemy i aplikacje bez granic

Szybciej (pisać) Łatwiej (czytać) Prościej (utrzymywać) Marcin Wąsowski Amsterdam Standard Sp. z o.o.

RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie

Dlaczego Android? Uczę się Javy więc piszę.. w Androidzie. Nie mam telefonu z Androidem!

Fragmenty są wspierane od Androida 1.6

Mechanizm zapisu preferencji

WPAM. W5 Android bardzo krótkie wprowadzenie. Piotr Gawrysiak.

Agenda. Wprowadzenie do Androida

Programowanie w Internecie. Java

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Czym jest Android Architektura systemu Cechy platformy Android

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Spis treści. Programowanie aplikacji na platformę Android v 1.0. A.Klusiewicz

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Laboratorium 9 (Więcej Aktywności, w Androidzie)

akademia androida Intencje oraz URI część III

Tworzenie dialogów i wykorzystanie klasy Toast

akademia androida Http i AsyncTask część VII

Wykorzystanie plików

PODRĘCZ NIKI. Android i ios tworzenie aplikacji mobilnych. Edyta Łukasik Maria Skublewska-Paszkowska Jakub Smołka. Lublin 2014

Podstawy języka Java. przygotował:

ANDROID. OpenGL ES 1.0. Tomasz Dzieniak

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Android Studio. Położenie: (nie dotyczy) 3bird Projects 2016,

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Programowanie obiektowe

Życie aktywności Nawigując przez aplikacje poszczególne Aktywności przechodzą pomiędzy stanami. Dla przykładu gdy aktywność uruchamia się po raz

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Programowanie dla Androida. Ubiquitous

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Programowanie obiektowe zastosowanie języka Java SE

Wykorzystanie map i geolokalizacji

Google Android. Opracował Maciej Ciurlik

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Programowanie obiektowe

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

Programowanie obiektowe

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Zaawansowane aplikacje internetowe

ZAPOZNANIE SIĘ Z TWORZENIEM

Architektura systemu. Środowisko programistyczne. Emulator systemu Android. Przegląd podstawowych pojęć. Pierwszy program.

Transkrypt:

Laboratorium Systemów Mobilnych 2015-02-27 Wykład 1 (Wstęp do programowania w systemie Android) Wojciech Wawrzyniak

Zaliczenie wykładu i ćwiczeń Wykład omówienie zagadnień Ćwiczenie praktyczne zastosowanie Zaliczenie: Zadania + projekt (50%) Egzamin (50%)

Literatura Andorid Developer - http://developer.android.com/index.html Professional Android Application Development - Reto Meier

Wprowadzenie

Android co to jest? System operacyjny oparty na Linux Kompilator Debugger Emulator Dalvik Virtual Machine (DVM)

Dalvik Virtual Machine dlaczego nie zwykła JVM? Plik.dex zamiast.jar Specjalny bytecode Zoptymalizowana pod kątem wielu JVM JIT (just-in-time compiler)

Instalacja środowiska - komponenty JDK SDK Android Środowisko programistyczne (np. Eclipse ) Plug-in do Eclipse (ADT) Ustawienie ścieżki do środowiska w Eclipse

Składniki aplikacji Android Aktywności (Activity) Widoki (Views) Usługi (Services) Dostarczyciele zawartości (Content Providers) Intencje (Intents) Odbiorniki (Broadcast receivers) Widżety (Widgets)

Hello Android Stworzenie prostej przykładowej aplikacji Hello Android

Src kody źródłowe Struktura Aplikacji Gen wygenerowane pliki Assets pliki wykorzystywane w aplikacji np. Obrazki Res zasoby Main.xml wygląd ekranu Strings.xml teksty w aplikacji AndroidManifest.xml

Struktura Aplikacji - src package com.example.helloandroid; import android.os.bundle; import android.app.activity; import android.view.menu; public class MainActivity extends Activity { } @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } @Override public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.main, menu); return true; }

Katalog gen /* AUTO-GENERATED FILE. DO NOT MODIFY. */ package com.example.helloandroid; public final class R { public static final class attr { } public static final class dimen { public static final int activity_horizontal_margin=0x7f040000; public static final int activity_vertical_margin=0x7f040001; } public static final class drawable { public static final int ic_launcher=0x7f020000; } public static final class id { public static final int action_settings=0x7f080000; } public static final class layout { public static final int activity_main=0x7f030000; }

Main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin"...> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout> Wygląd definiowany w XML Layout Komponent

Strings.xml Teksty definiowane w XML Posiadają nazwę - name

Budowa Systemu Android

Warstwy systemu Android

Liunx Kernel Android to system oparty na systemie Linux Linux zapewnia podstawowe operacje systemowe Użytkownik nigdy nie widzi podsystemu Linux Istnieją komendy umożliwiające dostęp do Linux shell (adb)

Libraries / Android Runtime Core Libraries: - java.rmi, javax.security.auth.kerberos, javax.sound, javax.transaction + java.io, java.math, java.lang, java.security, java.sql, java.crypto, javax.net

Dalvik VM Dalvik VM - googlowska implementacja Java VM Podstawowe różnice: Zoptymalizowana dla urządzeń mobilnych Uruchamiane są pliki.dex Inny zbiór bibliotek niż w Java SDK.dex + resources =.apk

Application Framework Warstwa zawiera moduły wysokiego poziomu pozwalające na łatwe budowanie aplikacji. Moduły te są preinstalowane jednak istenieje możliwość dodania do tej warstwy swoje autorskie moduły.

Application and Widgets Najwyżej położona warstwa, umieszczamy w niej swoją aplikację oraz tzw. Widget-y. Aplikacją nazywamy program działający na całym pełnym obszarze ekranu. Widget to aplikacja wykorzystująca tylko pewną prostokątną część ekranu.

Programowanie Narzędzia

Programowanie w Android vs? Tylko jedna widoczna aplikacja Aplikacja składa się z Aktywności(ekranów) Aplikacja to Aktywności + proces je zawierający

Dalvik Debug Monitor Server (DDMS)

LogCat Śledzenie logów działającej aplikacji

Debugger

Traceview

GUI - Layout

GUI Ekran Activity View prosty komponent View group layout (grupa) Hierarchia

Layout przykład XML Przykład projekt

Parametry layout FILL_PARENT/MATCH_PARENT - element stara się zająć pełen obszar układu. WRAP_CONTENT - element chce zajmować tylko tyle ile potrzebuje ekranu.

Atrybut id "+" - oznacza, że tworzymy nowy identyfikator. "id/text" - oznacza identyfikator o nazwie text. Analogicznie dla pozostałych View

Przykład Przykład użycie match_parent

Layout - hierarchia

Layouts LinearLayout TableLayout

Layouts - RelativeLayout <RelativeLayout <TextView android:id="@+id/label" android:text="type here:"/> android:layout_width="fill_parent" android:layout_height="wrap_content" <EditText android:id="@+id/entry" droid:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/label"/> <Button android:id="@+id/ok" android:layout_width="wrap_content" android:text="ok" droid:layout_height="wrap_content" android:layout_below="@id/entry" android:layout_alignparentright="true" android:layout_marginleft="10dip"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toleftof="@id/ok" android:layout_aligntop="@id/ok" android:text="cancel" /> </RelativeLayout>

TextView Button Spinner ProgressBar MultilineText Itp. GUI Komponenty

Projekt Timerprzykładowa aplikacja

Jak wspierać różne rozdzielczości i urządzenia?

GUI Wymiary w Android Rozmiar ekranu Gęstość ekranu Orientacja Niezależna gęstość pikesela (dip)

Dpi (niezależność od gęstości)

Jak wspierać różne urządzenia W grafikach używać rozmiarów w postaci dip, Dla tekstów używać: sp px = dp *(dip / 160) Używać <supports-screens> - określamy, jakie rozmiary ekranu są wspierane Różne layouty dla różnych rozmiarów ekranów Dostarczać różne bitmapy dla różnych rozmiarów ekranów

Supports-screens <manifest... > <supports-screens android:smallscreens="false" android:normalscreens="false" android:largescreens="true" android:xlargescreens="true" android:requiressmallestwidthdp="600" />... <application... >... </application> </manifest>

Różne apk dla kilku wersji Mamy 3 wersje w AM Takie wersje są pobierane z AM dla różnych urządzeń