(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Práce na pozadí. Služby. Notifikace
|
|
- Eva Janečková
- před 6 lety
- Počet zobrazení:
Transkript
1
2 9. přednáška Práce na pozadí Služby Notifikace 2
3 3 Práce na pozadí Jeden z hlavních rozdílů oproti iphonu je možnost provádět téměř libovolné úkony na pozadí Vlákna Používají se ke spouštění kódu na pozadí, zatímco uživatel interaguje s UI (načítání stránek ve webovém prohlížeči, náročné výpočty) Služby Používají se pro pravidelné a nepřetržité provádění akci, které nevyžadují UI (např. hudební přehrávač, automatické stahování )
4 Vlákna Aplikace musí vždy odpovědět do 5 vteřin, jinak Android nabídne uživateli aby ji zabil Někdy je však potřeba provést úkony, které trvají déle než 5 vteřin nebo je potřebujeme provádět paralelně 4
5 5 Vlákna Aktivity, Služby a Broadcast Receivery běží v hlavním (UI) vlákně aplikace, kde je aplikován limit 5s Pro vytváření vláken slouží Thread nebo AsyncTask
6 Thread Jednoduchý způsob, jak něco provést na pozadí Stejné chování jaké známe z Java SE 1. new Thread(){ 2. public void run() { start(); 6
7 7 Handler Pouze hlavní vlákno může přistupovat ke GUI Pro spuštění kódu z jiného vlákna ve hlavním vlákně slouží Handler Funguje na bázi odesílání a přijímání zpráv Přijímání zpráv v hlavním vlákně: 1. private Handler mhandler = new Handler() { 2. //nasledujici kod se spusti v hlavnim (GUI) vlakne 3. public void handlemessage(message msg) { 4. Bundle bundle = msg.getdata(); 5. mytextview.settext(bundle.getstring("text")); 6. ; 7. ;
8 8 Handler Odeslání zprávy z jiného vlákna Musíme mít odkaz na vytvořený Handler mhandler.obtainmessage(); je efektivnější, než vytváření nové zprávy 2 intové hodnoty lze předat jako arg1 a arg2 u Message bez nutnosti vytvářet Bundle 1. new Thread() { 2. public void run() { Message msg = mhandler.obtainmessage(); 5. Bundle b = new Bundle(); 6. b.putstring("text", "novy text"); 7. msg.setdata(b); 8. mhandler.sendmessage(msg); start();
9 9 ProgressDialog - opakování protected Dialog oncreatedialog(int id) { case DIALOG_PROGRESS: mprogressdialog = new ProgressDialog(AlertDialogSamples.this); mprogressdialog.seticon(r.drawable.alert_dialog_icon); mprogressdialog.settitle(r.string.select_dialog); mprogressdialog.setprogressstyle(progressdialog.style_horizontal); mprogressdialog.setmax(max_progress); mprogressdialog.setbutton(dialoginterface.button_positive, gettext(r.string.alert_dialog_hide), new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int whichbutton) { ); mprogressdialog.setbutton(dialoginterface.button_negative, gettext(r.string.alert_dialog_cancel), new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int whichbutton) { ); return mprogressdialog;
10 10 ProgressDialog - pokračování public void onclick(view v) { showdialog(dialog_progress); Dialog je možné ovládat přes Handler mprogress = 0; mprogressdialog.setprogress(0); mprogresshandler.sendemptymessage(0); mprogresshandler = new Handler() public void handlemessage(message msg) { super.handlemessage(msg); Na zprávu Handler zareaguje if (mprogress >= MAX_PROGRESS) { zvýšením čítače pokroku mprogressdialog.dismiss(); else { mprogress++; mprogressdialog.incrementprogressby(1); mprogresshandler.sendemptymessagedelayed(0, 100); ;
11 11 AsyncTask Zjednodušuje volání metod v hlavním vlákně Kombinace metod, z nichž jedna běží ve vedlejším vlákně a průběžné výsledky se spouští v hlavním AsyncTask<Params, Progress, Result> má 4 základní metody: void onpreexecute() provede kód v hlavním vlákně těsně před tím, než se spustí vedlejší result doinbackground(params... params) zde se spustí kód na pozadí void onpostexecute(result result) spustí se v hlavním vlákně, jakmile se doinbackground ukončí void onprogressupdate(progress... values) spustí se když, se v doinbackground zavolá publishprogress(progress); Spustí se zavoláním asynctask.execute(params);
12 12 AsyncTask 1. mytask = new AsyncTask<String, Integer, Double>() { 3. protected void onpreexecute() { 4. mytextview.settext("loading..."); 5. super.onpreexecute(); protected Double doinbackground(string... params) { 9. Double result; 10. int progress; publishprogress(progress);//progress se preda do onprogressupdate return result;//preda se do onpostexecute protected void onprogressupdate(integer... values) { 18. mytextview.settext("running, progress= " + values[0]); 19. super.onprogressupdate(values); protected void onpostexecute(double result) { 23. mytextview.settext("finished, result= " + result); 24. super.onpostexecute(result); ; 27.myTask.execute("param");//param se preda do doinbackground
13 13 Service Vhodné, pokud potřebujeme provést úkon nezávislý na GUI Přehrávání hudby Stahování velkého objemu dat Běží v hlavním vlákně (platí zde 5s limit) Mají větší prioritu, než neaktivní aktivity Pokud jsou přeci jen sestřeleny, systém je po získání potřebných prostředků restartuje Jsou spouštěny, zastavovány a kontrolovány z jiných komponent aplikace (např. jiné služby, Activity nebo BroadcastReceivery)
14 14 Service MyService.java 1. public class MyService extends Service{ 3. public int onstartcommand(intent intent, int flags, int startid) { 4. //provedeni potrebneho ukonu 5. return START_STICKY; public IBinder onbind(intent intent) { 9. return null; MainActivity.java 1. startservice(new Intent(this, MyService.class)); 2. stopservice(new Intent(this, MyService.class)); AndroidManifest 1. <service android:enabled="true" android:name=".myservice" />
15 15 Service Běžná praktika: V onstartcommand se spustí nové vlákno, které provede potřebné úkony Jakmile dokončí svou práci, zastaví se - stopself(); onstartcommand vrací konstanty, které určují, jak se bude služba chovat, když ji systém odstřelí (kvůli nedostatku prostředků): START_STICKY standardní chování Služba se vždy restartuje (intent v onstartcommand ale bude null) Typické pro služby, které jsou explicitně spouštěny a zastavovány pomocí startservice a stopservice (přehrávač hudby) START_NOT_STICKY Služba se restartuje, pouze pokud čekají startservice požadavky Typické pro služby, které se spouští periodicky a po skončení požadovaného úkonu se samy ukončí pomocí stopself(); (aktualizace stavů) START_FLAG_RETRY Služba se restartuje, pouze pokud čekají startservice požadavky nebo pokud před odstřelením nedokončila svoji práci (byla sestřelena před zavoláním stopself) Po restartu je předán do onstartcommand původní intent
16 16 Service Na rozdíl od aktivity má daná služba vždy maximálně jednu instanci Po opětovném zavolání startservice se pouze opětovně zavolá onstartcommand v již běžící službě oncreate a ondestroy se chová stejně jako u aktivity Pro zjištění, jak se služba spustila slouží atribut flags, který může nabývat těchto hodnot: START_FLAG_REDELIVERY indikuje, že služba byla restartována systémem (kvůli nedostatku prostředků) před ukončením činnosti a původní Intent je znovu předán START_FLAG_RETRY indikuje, že služba byla restartována systémem (kvůli nedostatku prostředků) a měla nastaveno START_STICKY
17 17 Service 2. public int onstartcommand(intent intent, int flags, int startid) { 3. if ((flags & START_FLAG_RETRY) == 0) { 4. //jedna se o restart, intent = null else { return Service.START_STICKY; 10.
18 18 Provázání služby Pokud chceme mít odkaz na konkrétní instanci služby a možnost přistupovat k jejím metodám, musíme jí provázat s aktivitou pomocí bindservice V dané službě musíme také naimplementovat onbind Vhodné pro aktivity, které potřebují komplexnější komunikaci se službou
19 19 Provázání služby V dané službě vytvoříme třídu která dědí od Binder a vrací odkaz na danou instanci služby Odkaz na instanci této třídy vrátíme v onbind private final IBinder binder = new MyBinder(); public class MyBinder extends Binder { MyService getservice() { return public IBinder onbind(intent intent) { return binder;
20 20 Provázání služby V aktivitě vytvoříme třídu dědící od ServiceConnection // odkaz na sluzbu private MyService service; // ma na starosti spojeni mezi sluzbou a aktivitou private ServiceConnection mconnection = new ServiceConnection() { // spusti se jakmile se povede navazat spojeni public void onserviceconnected(componentname classname, IBinder service) { //ziskame instanci nasi sluzby service = ((MyService.MyBinder) service).getservice(); // spusti se jakmile se spojeni ukonci public void onservicedisconnected(componentname classname) { service = null; ; Její instanci poté předáme do bindservice 1. Intent i = new Intent(this, MyService.class); 2. bindservice(i, mconnection, Context.BIND_AUTO_CREATE);
21 21 Notifikace Slouží k upozornění uživatele na nějakou událost bez použití Activity Indikují také probíhající služby (služby, které mají zvýšenou prioritu) Mohou mít tyto funkce: Zobrazení ikonky ve statusbaru Zobrazení podrobnějších informací a spouštění Intentů po rozbalení statusbaru Blikání notifikačních LED diod Zvukové upozornění
22 22 Notification Manager Systémová služba starající se o notifikace Umožňuje vytvářet nové notifikace, upravovat staré nebo odstranit již nepotřebné 1. String svcname = Context.NOTIFICATION_SERVICE; 2. NotificationManager notificationmanager; 3. notificationmanager = (NotificationManager)getSystemService(svcName);
23 23 Notifikace Vytvoření notifikace a nastavení základních parametrů // Vybereme ikonku, ktera se bude zobrazovat u notifikace int icon = R.drawable.icon; // Text ktery se objevi pri aktivace notifikace String tickertext = "Notifikace"; // Cas, podle ktereho se urcuje poradi notifikaci long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickertext, when); //Nastavime pocet, ktery bude zobrazen pres ikonku notifikace notification.number=10;
24 24 Notifikace Nastavení defaultního View po rozbalení statusbaru a Intentu, který se spustí po kliku na notifikaci 1. Context context = this; 2. // Text ktery se zobrazi po roztahnuti statusbaru 3. String expandedtext = "Podrobny text notifikace"; 4. // Titulek notifikace po roztahnuti statusbaru 5. String expandedtitle = "Titulek notifikace"; 6. // Intent ktery spusti aktivitu po kliknuti na notifikaci 7. Intent intent = new Intent(this, MainActivity.class); 8. PendingIntent pi = PendingIntent.getActivity(context, 0, intent, 0); 9. //Nastavime defaultni View 10. notification.setlatesteventinfo(context, expandedtitle, expandedtext, pi); Zobrazení notifikace int id=0; notificationmanager.notify(id, notification);
25 25 PendingIntent Zapouzdří Intent, který pak může být použit systémem nebo jinými aplikacemi Existují 3 typy, podle toho, co bude dělat: Spustí aktivitu (jako zavolání Context.startActivity(Intent)) Spustí službu (jako zavolání Context.startService(Intent)) Vyšle broadcast (jako zavolání Context.sendBroadcast()) Obdrží se zavoláním patřičné metody 1. pi=pendingintent.getactivity(context, requestcode, intent, flags); 2. pi=pendingintent.getservice(context, requestcode, intent, flags); 3. pi=pendingintent.getbroadcast(context, requestcode, intent, flags);
26 26 Notifikace probíhající služba Defaultně služba běží na pozadí když systém potřebuje prostředky, odstřelí ji a nepředpokládají se větší škody Pokud potřebujeme zvýšit prioritu služby (např. hudební přehrávač), musíme jí dostat do popředí nastavením notifikace Je téměř zaručeno, že systém tuto službu neodstřelí V tomto případě nepoužijeme NotificationManager, ale metodu na to speciálně určenou, která automaticky po skončení služby odstraní notifikaci 1. startforeground(id, notification);
27 27 Notifikace další parametry notification.contentview nastavení vlastního layoutu notifikace po rozbalení statusbaru notification.defaults možnosti upozornění (DEFAULT_LIGHTS DEFAULT_SOUND DEFAULT_VIBRATE) notification.flags upřesnění notifikace (viz dokumentace) notification.sound Uri souboru pro zvukové upozornění notification.vibrate Pole s hodnotame, v jaké frekvenci bude telefon vibrovat notification.ledargb Barva LED diody
KMI / TMA. Tvorba mobilních aplikací. 8. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45
KMI / TMA Tvorba mobilních aplikací 8. seminář 16.11.2017 ZS 2017/2018 ČTVRTEK 13:15-15:45 OBSAH SEMINáře Komunikace napříč aplikací, Práce na pozadí II., notifkace práce na pozadí II. Něco lepšího než
Obsah. Životní cyklus activity Context Intent Spouštění aktivit Interakce s uživatelem. Toast. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant
Obsah Životní cyklus activity Context Intent Spouštění aktivit Interakce s uživatelem Toast 2 4 oncreate(bundle savedinstancestate) { } Zavolá se při každém vytvoření activity (i při otočení displeje)
Uživatelské rozhraní. Layouty FrameLayout LinearLayout RelativeLayout TableLayout ScrollView Taby Dialogy ViewFlipper 11/29/11
Uživatelské rozhraní Layouty FrameLayout LinearLayout RelativeLayout TableLayout ScrollView Taby Dialogy ViewFlipper 2 FrameLayout Nejjednodušší a nejzákladnější layout Prvky Nelze nijak pozicovat Všechny
3. ŽIVOTNÍ CYKLUS ACTIVITY
23.2.2013 1 Programování pro operační systém Android (BI-AND) (c) Autor a garant: M. Havryluk, Spolupráce: M. Balík, O. Kroupa, M. Pelant 3. ŽIVOTNÍ CYKLUS ACTIVITY BI-AND 23.2.2013 2 Obsah Životní cyklus
Příklad zobrazení toastu s vlastním designem
Notifikace, alarmy KAPITOLA 6 V této kapitole: Notifikace Alarmy Notifikace Notifikace jsou zprávy, někdy i rozsáhlejší, které potřebuje aplikace ve vhodné situaci zobrazit uživateli mimo běžné uživatelské
Začínáme s vývojem pro Android
Pavel Petřek CTO Praha, 14. dubna 2010 Kdo je kdo Pavel Petřek Vývojář, přednášející, entusiasta světa chytrých telefonů (a velký jedlík) Spoluzakladatel Inmite Inmite Vývoj pro chytré telefony (Android:
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)
2. přednáška Android projekt Manifest Activity Uživatelské rozhraní (základy) 2 Android Projekt - src Zdrojový kód v Javě Unikátní jméno balíčku Konvence: [země].[autor].[jméno aplikace] např.: cz.cvut.helloworld
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2
Bridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
Car Agent. Struktura chování:
Car Agent Struktura chování: SequentialBehavior() SubBehavior(AgentRequestProtocol) send/receive parkingrequest SubBehavior(UseThisParkplace) reakce na příchozí zprávu usethisparkplace SequentialBehavior()
11/29/11. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant. 11. Přednáška. Broadcast receiver Timer Alarmy Widgety
11. Přednáška Broadcast receiver Timer Alarmy Widgety 2 3 Broadcasty a Broadcast Receivery Doposud jsme Intenty používali ke spouštění nové Aplikace nebo Aktivity Intenty však mohou sloužit také jako posílání
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
Programování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
Jazyk C# (seminář 3)
Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na
GUI. Systémová integrace pro desktopové aplikace
GUI Systémová integrace pro desktopové aplikace 1 java.awt.desktop systémová integrace desktopových aplikací static boolean isdesktopsupported() test zda je integrace k dispozici static Desktop getdesktop()
Java aplety. Předávání parametrů z HTML
Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:
5. přednáška. Stylování a themování Themování Android Interface Definition Language Data Sdílení dat 11/29/11
5. přednáška Stylování a themování Themování Android Interface Definition Language Data Sdílení dat 2 3 Stylování a themování vzhledu aplikace Styl Sbírka vlastností, která specifikuje vzhled a formát
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
Principy objektově orientovaného programování
Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T
TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);
TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;
typová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
11 Diagram tříd, asociace, dědičnost, abstraktní třídy
11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,
14.4.1. Typický prvek kolekce pro české řazení
14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení
IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
Zapouzdření. Tomáš Pitner, upravil Marek Šabo
Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
SPRÁVA NÁKLADŮ NA PROVOZ AUTOMOBILU PRO ANDROID
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
17. Projekt Trojúhelníky
Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským
Java a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu
Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro
1 Uživatelská dokumentace
1 Uživatelská dokumentace Systém pro závodění aut řízených umělou inteligencí je zaměřen na závodění aut v prostředí internetu. Kromě toho umožňuje testovat jednotlivé řidiče bez nutnosti vytvářet závod
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Chain of responsibility
Chain of responsibility Chain of responsibility n Známý jako n Účel q český překlad řetěz(ec) odpovědnosti q umožnit zasílání požadavků (zpráv) neznámým příjemcům q příjemci tvoří frontu è předávají si
11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
NPRG031 Programování II 1 / :25:46
NPRG031 Programování II 1 / 26 28. 2. 2018 11:25:46 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat jiné objekty
NMIN201 Objektově orientované programování 1 / :36:09
NMIN201 Objektově orientované programování 1 / 26 8.10.2013 15:36:09 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat
Programátorská příručka
KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky sledujte stav paměti
Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných
Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro
Android za hranicemi Hello World
Android za hranicemi Hello World Pavel Petřek CTO Praha, 18. října 2009 Kdo je kdo Pavel Petřek Vývojář, entusiasta přes chytré telefony, přednášející Spoluzakladatel Inmite Inmite Vývoj pro chytré telefony
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.
23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
DUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
GUI v Javě a událostmi řízené programování
GUI v Javě a událostmi řízené programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška
1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
GUI v Javě a událostmi řízené programování
GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,
Java GUI události. Událostmi řízené programování. Zpracování = obsluha událostí
Java GUI události Cílem kapitoly je přiblížit hlavní princip událostmi řízeného programování a ukázat na příkladu způsob řešení pro konkrétní případ. Soubor obsahuje také tabulku s přehledem nejčastěji
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
IRAE 07/08 Přednáška č. 7. Začátek (head)
Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky sledujte stav paměti
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
Dynamicky vázané metody. Pozdní vazba, virtuální metody
Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:
UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Java - výjimky. private void vstup() throws IOException {... }
Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace
Vláknové programování část V
Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2014 03 25 1/25 Přehled přednášky Paměťový model Javy GUI v Javě Vlákna
Android 100% Java telefon. Petr Musil
Android 100% Java telefon Petr Musil 1 Vytvoření aplikace Prostředí pro vývoj Android SDK http://developer.android.com/sdk/index.html ADT plugin pro Eclipse http://developer.android.com/sdk/eclipse-adt.html
Reaktivní programování v.net
Reaktivní programování v.net Tomáš Petříček http://tomasp.net/blog tomas@tomasp.net Co je reaktivní programování? Psaní aplikací které regaují na události» Klasické.NET eventy Například MouseDown, KeyPress,
Obsah. LayoutInflater. UI model KeyEvent View Tvorba vlastních komponent Canvas Matrix Vlastní EditText
Obsah UI model KeyEvent View Tvorba vlastních komponent Canvas Matrix Vlastní EditText LayoutInflater Dotykové události MotionEvent Dynamické přidání View 2 UI model Androida View Základní stavební kámen
Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová
Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit
DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v
DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve
11/29/11. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant. 12. Přednáška. Zjišťování polohy Google Mapy OverlayItem Zálohování.
12. Přednáška Zjišťování polohy Google Mapy OverlayItem Zálohování Data Backup 2 3 Zjišťování polohy K získávání informací o poloze slouží třída LocationManager Typicky se zavolá její metoda requestlocationupdates()
Projekt Obrázek strana 135
Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy
ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
ANT Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
Objektově orientované programování
10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh
Java - řazení objektů
Java - řazení objektů Kapitola seznamuje se základními principy řazení objektů Klíčové pojmy: Přirozené řazení, absolutní řazení, ideální porovnávatelná třída ŘAZENÍ OBJEKTŮ U objektů není příliš jasné,
7. Statické prvky třídy
Statické prvky třídy strana 61 7. Statické prvky třídy V úvodních kapitolách jsme popsali deklaraci a používání datových atributů a metod instance. Jsou to nejčastě ji používané součásti třídy, nicméně
Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty.
GUI v Javě a událostmi řízené programování Obsah přednášky GUI v Javě (připomínka) Návrhář GUI Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
01. HODINA. 1.1 Spuštění programu VB 2010. 1.2 Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.
01. HODINA 1.1 Spuštění programu VB 2010 - pomocí ikony, z menu Start. - po spuštění si můžeme vybrat, zda chceme vytvořit nový Projekt a jaký nebo zda chceme otevřít již existující Projekt. 1.2 Prvky
Neměnné objekty. Tomáš Pitner, upravil Marek Šabo
Neměnné objekty Tomáš Pitner, upravil Marek Šabo Neměnné objekty Neměnný (immutable) objekt nemůže být po jeho vytvoření modifikován Bezpečně víme, co v něm až do konce života bude Tudíž může být souběžně
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky popište stav paměti
IW5 - Programování v.net a C# 4 Pokročilé konstrukce C#
4 - Pokročilé konstrukce C# IW5 - Programování v.net a C# Strana 1 Obsah přednášky Výjimky Delegáti Události Lambda výrazy Strana 2 Výjimky a jejich zpracování Slouží k ošetření výjimečných (chybových)
TELEFONNí LiNKA PREMiUM PRŮVODCE NASTAVENíM SLuŽBY MEET-ME KONFERENCE
TELEFONNí LiNKA PREMiUM PRŮVODCE NASTAVENíM SLuŽBY MEET-ME KONFERENCE úvod Služba poskytuje komfortní plánované audio konference stejně jako jednoduché konference bez rezervace. Jednoduchý webový klient
Dědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
Windows Live Movie Maker
Windows Live Movie Maker Tento program slouží k vytváření vlastních filmů, která se mohou skládat z fotografií, videí, titulků a zvuku. Movie Maker je součástí instalace operačního systému Windows 7 a
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA EKONOMICKÁ
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA EKONOMICKÁ Bakalářská práce Vývoj aplikací pro mobilní telefony Applications development for mobile devices Tomáš Fiala Plzeň 2016 Místo pro zadání Čestné prohlášení
PŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
Knihovna XBMCLib TXV druhé vydání květen 2014 změny vyhrazeny
Knihovna XBMCLib TXV 003 81.01 druhé vydání květen 2014 změny vyhrazeny 1 TXV 003 81.01 Historie změn Datum Vydání Popis změn Květen 2013 1 První vydání, popis odpovídá XBMCLib_v10. Květen 2014 2 Upraveny
Java Výjimky Java, zimní semestr
Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní
GUI v Javě a událostmi řízené programování
GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro