Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Victor Matos, Cleveland State University.
|
|
- Bronisława Tomczak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Wykorzystanie usług
2 Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Victor Matos, Cleveland State University. Portions of this page are reproduced from work created and shared by Google and used according to terms
3 w Androidzie Usługą nazywamy składnik aplikacji pracujący w tle (nie wchodzący w interakcję z użytkownikiem) przez nieokreślony przedział czasu., podobnie jak inne obiekty (aktywności, nasłuchiwacze komunikatów), działają w głównym wątku procesu hosta. Oznacza to, że jeśli twoja usługa będzie intensywnie wykorzystywała procesor (przy np. odtwarzaniu muzyki) lub blokowała inne operacje (przy komunikacji sieciowej), powinna stworzyć swój własny wątek w którym będzie wykonywała prace. Każda klasa reprezentują usługę powinna mieć deklarację za pomocą <service> zawartą w pliku AndroidManifest.xml. Źródło: 2
4 w Androidzie mogą być uruchamiane korzystając z metod: startservice() lub bindservice(). Każde wywołanie startservice impluje również wywołaniem metody onstart() klasy usługi, jednakże usługa uruchamiana jest jedynie za pierwszym wywołaniem. Zatem tylko jedno wywołanie stopservice() jest potrzebne by zatrzymać usługę, bez względu na to jak często użyto metody startservice(). Taken from: 3
5 Cykl życia usługi Podobnie jak aktywność, usługa posiada metody wchodzące w skład cyklu życia, które można zaimplementować by monitorować zmiany jej stanu. Jest ich jednak znacznie mniej są to zwykle 3 publiczne metody: 1. void oncreate () 2. void onstart (Intent intent) 3. void ondestroy () oncreate onstart ondestroy 5
6 Cykl życia usługi Cały cykl życia usługi przypada między wywołaniem metody oncreate() a zakończeniem działania metody ondestroy(). Podobnie jak w przypadku aktywności, usługa dokonuje inicjalizacji niezbędnych komponentów w metodzie oncreate(), oraz zwalnia wszelkie używane zasoby w metodzie ondestroy(). Przykładowo usługa do odtwarzania muzyki mogłaby utworzyć wątek, który odtwarzałby utwory muzyczne w ramach metody oncreate(), natomiast zatrzymanie wątku następowałoby w metodzie ondestroy(). 6
7 Broadcast Receiver cykl życia Brodcast receiver to klasa aplikacji, która nasłuchuje globalnych komunikatów (intencji), które są transmitowane do każdego kto jest nimi zainteresowany, zamiast być przesłanym do pojedynczej aplikacji/aktywności. Obsługa komunikatów odbywa się sekwencyjnie. 7
8 Rejestrowanie Broadcast Receiver Można zarejestrować go dynamicznie za pomocą metody registerreceiver() lub statycznie (po stronie kodu XML) za pocą znacznika <receiver> w pliku AndroidManifest.xml (zobacz następny przykład). 8
9 Broadcast Receiver cykl życia onreceive Broadcast receiver posiada pojedynczą metodę wywołania zwrotnego : void onreceive (Context context, Intent broadcastmsg) 1. Kiedy komunikat jest dostępny dla zarejesrtowanego odbiornika, Android wywołuje metodę onreceive() przekazując jej obiekt intencji zawierający stosowny komunikat. 2. Broadcast receiver pozostaje aktywny tylko podczas wykonywania metody onreceive(). 3. Po zakończeniu metody onreceive() przechodzi on w stan spoczynku. 9
10 , nasłuchiwacze i plik AdroidManifest Każdy manifest aplikacji wykorzystującej usługi musi zawierać: 1. Znacznik <service> dla każdej usługi wykorzystywanej w aplikacji. 2. Jeżeli aplikacja definiuje BroadcastReceiver jako niezależną klasę, plik manifestu musi zawierać znacznik <receiver> identyfikujący ten komponent. Znacznik <intent-filter> jest również potrzebny by zarejestrować wykorzystywany filtr. Zobacz przykład 10
11 Przykładowy manifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="cis493.demos" android:versioncode="1" android:versionname="1.0.0"> <uses-sdk android:minsdkversion="10" ></uses-sdk> <application <activity android:name=".myservicedriver2"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <service android:name="myservice2" /> <receiver android:name="mybroadcastreceiver"> <intent-filter> <action android:name = "matos.action.goservice2" /> </intent-filter> </receiver> </application> </manifest> 11
12 Typy transmisji (ang. broadcast) Istnieją dwie główne kategorie transmisji jakie można odbierać : 1. Zwykły broadcast (wysyłany przez sendbroadcast) jest zupełnie asynchroniczny. Wszyscy odbiorcy transmisji są uaktywniani w losowej kolejności, często niemalże w tym samym czasie. 2. Uporządkowany broadcast (wysyłany przez sendorderedbroadcast) jest dostarczany jednemu odbiorcy w danym czasie. Ponieważ każdy odbiorca jest uaktywniany w określonej kolejności, może on dołączyć rezultat swojego działania do kolejnego odbiorcy, lub może przerwać daną transmisję (abortbroadcast()) zatem komunikat nie dotrze do innych odbiorców. Kolejność odbiorców może być ustalana za pomocą atrybutu android:priority dla pokrywającego się filtra intencji. Odbiorcy z takim samym priorytetem będą rozpatrywani losowo. 12
13 Przykład: Główna idea Main Activity Załóżmy, że główna aktywność MyService3Driver chce wejść w interakcję z usługą MyService3. Aktywność odpowiada za następujące zadania: 1. Uruchomienie usługi MyService3. Intent intentmyservice = new Intent(this, MyService3.class); ComponentName service = startservice(intentmyservice); 2. Zdefiniowanie filtrów: IntentFilter mainfilter = new IntentFilter("matos.action.GOSERVICE3"); BroadcastReceiver receiver = new MyMainLocalReceiver(); registerreceiver(receiver, mainfilter); 3. Implementację lokalnego odbiorcy komunikatów: public void onreceive(context localcontext, Intent callerintent) 13
14 Przykład: Główna idea Usługa Usługa wykorzystuje metodę onstart by: 1. Stworzyć intencję z odpowiednim filtrem (na który może reagować dowolna liczba odbiorców): Intent myfilteredresponse = new Intent("matos.action.GOSERVICE3"); 2. Stworzyć dane jakie mają być wysłane wraz z intencją do określonych odbiorców: Object msg = some user data goes here; myfilteredresponse.putextra("myservicedata", msg); 3. Przesłać intencję do wszystkich odbiorców posiadających właściwy filtr: sendbroadcast(myfilteredresponse); 14
15 Przykład: Główna idea Main Activity (ponownie) Główna aktywność jest również odpowiedzialna za stosowne zakończenie działania usługi. 1. Zakładając, że intentmyservice to intencja, która uruchamia usługę. Wywołanie zakończenia działania usługi jest realizowane przez: stopservice(new Intent(intentMyService) ); 2. Wykorzystując metodę ondestroy usługi by mieć pewność, że jej wszystkie wątki są stopowane a odbiornik jest wyrejestrowany. unregisterreceiver(receiver); 15
16 Przykład 1. Prosta usługa Aplikacja uruchamia prostą usługę. Zadaniem usługi jest wypisywanie linii do dziennika zdarzeń (LogCat) dopóki aktywność nie zakończy działania usługi. public class TestMyService1 extends Activity implements TextView txtmsg; ComponentName service; Intent intentmyservice1; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); OnClickListener { setcontentview(r.layout.main); txtmsg = (TextView) findviewbyid(r.id.txtmsg); findviewbyid(r.id.btnstopservice).setonclicklistener(this); intentmyservice1 = new Intent(this, MyService1.class); service = startservice(intentmyservice1); txtmsg.settext("myservice1 started\n (see LogCat)");
17 Przykład 1. Prosta usługa Aplikacja uruchamia prostą usługę. Zadaniem usługi jest wypisywanie linii do dziennika zdarzeń (LogCat) dopóki aktywność nie zakończy działania usługi. public void onclick(view v) { try { //Zał: v.getid == R.id.btnStopService stopservice(intentmyservice1); stopservice(intentmyservice1); txtmsg.settext("after stopping Service: \n" + service.getclassname()); txtmsg.settext("after stopping Service: \n" + service.getclassname()); catch (Exception e) { catch (Exception e) { Toast.makeText(this, e.getmessage(), 1).show(); 1).show(); //onclick //class //onclick //class 16
18 Przykład 1. //non CPU intensive service running the main task package cis.matos; import... public class MyService1 extends Service { public IBinder onbind(intent arg0) { return null; public void oncreate() { super.oncreate(); in its main thread public void onstart(intent intent, int startid) { Log.e ("<<MyService1-onStart>>", "I am alive-1!"); Log.e ("<<MyService1-onStart>>", "I did something"); public void ondestroy() { Log.e ("<<MyService1-onDestroy>>", "I am dead-1"); //MyService1
19 Przykład 1. Zgodnie z dziennikiem zdarzeń 1. Uruchamiania jest główna aktywność 2. Uruchamiania jest usługa 3. Aktywność jest prezentowana użytkownikowi 4. Użytkownik przerywa działanie usługi 18
20 Przykład 1.. Manifest <manifest xmlns:android=" package="csu.matos" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="15" /> <application > <activity android:name=".testmyservice1" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <service android:name="myservice1" /> </application> </manifest> 19
21 Przykład 1. Układ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="none" android:layout_margin="10dp" /> <Button android:layout_width="204dp" android:layout_height="wrap_content" android:layout_gravity="center" android:text=" Stop Service1" /> </LinearLayout> 20
22 Przykład 2. Nieco bardziej złożona interakcja 1. Główna aktywność uruchamia usługę i rejestruje odbiornik. 2. Usługa działa wolno, dlatego obciążające zadanie jest wykonywane w innym wątku. 3. Po zakończeniu cyklu obliczeń, usługa dodaje stosowną wiadomość do intencji. 4. Intencja jest wysyłana z filtrem: matos.action.goservice3. 5. BroadcastReceiver (zdefiniowany w głównej aktywności) wykorzystuje ten filtr i przechwytuje wiadomość (wyświetlając jej zawartość na ekranie). 6. Główna aktywność zatrzymuje działanie usługi oraz swoje. 21
23 Przykład 2. Układ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:layout_width="151dip" android:layout_height="wrap_content" android:layout_gravity="center" android:text="stop Service" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="none" /> </ScrollView> </LinearLayout> 22
24 Przykład 2. Manifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="cis493.demos" android:versioncode="1" android:versionname="1.0.0" > <uses-sdk android:minsdkversion="10" > </uses-sdk> <application <activity android:name=".myservicedriver3" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <service android:name="myservice3" > </service> </application> </manifest> 24
25 Przykład 2. Main Activity 1 z 3 public class MyServiceDriver3 extends Activity implements OnClickListener { TextView txtmsg; ComponentName service; Intent intentmyservice3; BroadcastReceiver receiver; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); txtmsg = (TextView) findviewbyid(r.id.txtmsg); intentmyservice3 = new Intent(this, MyService3.class); service = startservice(intentmyservice3); txtmsg.settext("myservice3 started - (see LogCat)"); findviewbyid(r.id.btnstopservice).setonclicklistener(this); // register & define filter for local listener IntentFilter mainfilter = new IntentFilter("matos.action.GOSERVICE3"); receiver = new MyMainLocalReceiver(); registerreceiver(receiver, mainfilter); //oncreate 25
26 Przykład 2. Main Activity 2 z 3 public void onclick(view v) { // assume: v.getid() == R.id.btnStopService try { stopservice(intentmyservice3); txtmsg.settext("after stoping Service: \n" + service.getclassname() ); catch (Exception e) { e.printstacktrace(); protected void ondestroy() { super.ondestroy(); try { stopservice(intentmyservice3); unregisterreceiver(receiver); catch (Exception e) { Log.e ("MAIN3-DESTROY>>>", e.getmessage() ); Log.e ("MAIN3-DESTROY>>>", "Adios" ); 26
27 Przykład 2. Main Activity 3 z 3 public class MyMainLocalReceiver extends BroadcastReceiver { public void onreceive(context localcontext, Intent callerintent) { String servicedata = callerintent.getstringextra("service3data"); Log.e ("MAIN>>>", "Data received from Service3: " + servicedata); String now = "\nservice3data: > " + servicedata; txtmsg.append(now); //MyMainLocalReceiver //MyServiceDriver3 27
28 Przykład 2. Usługa 1 z 2 public class MyService3 extends Service { boolean isrunning = true; public IBinder onbind(intent arg0) { return null; public void oncreate() { super.oncreate(); public void onstart(intent intent, int startid) { Log.e ("<<MyService3-onStart>>", "I am alive-3!"); Thread servicethread = new Thread ( new Runnable(){ public void run() { for(int i=0; (i< 120) & isrunning; i++) { try { //fake that you are very busy here Thread.sleep(1000); Intent intentdataformyclient = new Intent("matos.action.GOSERVICE3"); String msg = "data-item-" + i; 28
29 Przykład 2. Usługa 2 z 2 intentdataformyclient.putextra("service3data", msg); sendbroadcast(intentdataformyclient); catch (Exception e) { e.printstacktrace(); //for //run ); servicethread.start(); //onstart public void ondestroy() { super.ondestroy(); Log.e ("<<MyService3-onDestroy>>", "I am Dead-3"); isrunning = false; //ondestroy //MyService3 29
30 Przykład 3. Aplikacja połączona z wieloma usługami Główna aplikacja TestMyService4 (Zarządza GUI) Broadcast Listener MyService4 (Odtwarzacz muzyki) MyService5Async (Generator liczb fibonacciego) MyService6 (Położenie GPS) 30
31 Przykład 3. Aplikacja połączona z wieloma usługami W tym przypadku główna aktywność uruchamia 3 usługi: 1. MyService4: Odtwarzacz muzyki, który otrzymuje plik mp3 zapisany w res/raw. 2. MyService5Async: Usługa generująca ciąg liczb fibonacciego z zakresu Zadanie generowania liczb zaimplementowane jest w osobnym wątku klasy AsyncTask. Celowo zastosowano nieoptymalny algorytm rekurencyjny. 3. MyService6: Usługa zwraca koordynaty GPS. Dwie metody są wykorzystywane do określenia lokalizacji: (a) szybsza, ale mniej dokładna wykorzystująca urządzenia sieciowe/bts oraz(b) bardziej dokładna, ale wolniejsza wykorzystująca satelity GPS. Główna aplikacja definiuje i rejestruje BroadcastReceiver, który otrzymuje dane od dowolnej z tych usług i wyświetla je na ekranie. 30
32 Przykład 3. Aplikacja połączona z wieloma usługami 32
33 Przykład 3. Główna aktywność: TestMyService4.java package csu.matos; import... public class TestService4 extends Activity implements OnClickListener { TextView txtmsg; Intent intentcallservice4; Intent intentcallservice5; Intent intentcallservice6; BroadcastReceiver receiver; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); txtmsg = (TextView) findviewbyid(r.id.txtmsg); findviewbyid(r.id.btnstart4).setonclicklistener(this); findviewbyid(r.id.btnstop4).setonclicklistener(this); findviewbyid(r.id.btnstart5).setonclicklistener(this); findviewbyid(r.id.btnstop5).setonclicklistener(this); findviewbyid(r.id.btnstart6).setonclicklistener(this); findviewbyid(r.id.btnstop6).setonclicklistener(this); 33
34 Przykład 3. Główna aktywność: TestMyService4.java Log.e("MAIN", "Main started"); // get ready to invoke execution of background services intentcallservice4 = new Intent(this, MyService4.class); intentcallservice5 = new Intent(this, MyService5Async.class); intentcallservice6 = new Intent(this, MyService6.class); // register local listener & define triggering filter IntentFilter filter5 = new IntentFilter("matos.action.GOSERVICE5"); IntentFilter filter6 = new IntentFilter("matos.action.GPSFIX"); receiver = new MyEmbeddedBroadcastReceiver(); registerreceiver(receiver, filter5); registerreceiver(receiver, filter6); // oncreate 34
35 Przykład 3. Główna aktywność: TestMyService4.java public void onclick(view v) { if (v.getid() == R.id.btnStart4) { Log.e("MAIN", "onclick: starting service4"); startservice(intentcallservice4); else if (v.getid() == R.id.btnStop4) { Log.e("MAIN", "onclick: stopping service4"); stopservice(intentcallservice4); else if (v.getid() == R.id.btnStart5) { Log.e("MAIN", "onclick: starting service5"); startservice(intentcallservice5); else if (v.getid() == R.id.btnStop5) { Log.e("MAIN", "onclick: stopping service5"); stopservice(intentcallservice5); else if (v.getid() == R.id.btnStart6) { Log.e("MAIN", "onclick: starting service6"); startservice(intentcallservice6); else if (v.getid() == R.id.btnStop6) { Log.e("MAIN", "onclick: stopping service6"); stopservice(intentcallservice6); // onclick 35
36 Przykład 3. Główna aktywność: TestMyService4.java public class MyEmbeddedBroadcastReceiver extends BroadcastReceiver { public void onreceive(context context, Intent intent) { Log.e("MAIN>>>", "ACTION: " + intent.getaction()); if (intent.getaction().equals("matos.action.goservice5")) { String service5data = intent.getstringextra("myservice5dataitem"); Log.e("MAIN>>>", "Data received from Service5: " + service5data); txtmsg.append("\nservice5data: > " + service5data); else if (intent.getaction().equals("matos.action.gpsfix")) { double latitude = intent.getdoubleextra("latitude", -1); double longitude = intent.getdoubleextra("longitude", -1); String provider = intent.getstringextra("provider"); String service6data = provider + " lat: " + Double.toString(latitude) + " lon: " + Double.toString(longitude); Log.e("MAIN>>>", "Data received from Service6: " + service6data); txtmsg.append("\nservice6data: > " + service6data); //onreceive // MyEmbeddedBroadcastReceiver // TestService4 class 36
37 Przykład 3. MyService4 Odtwarzacz muzyki package csu.matos; import... public class MyService4 extends Service { public static boolean boolisservicecreated MediaPlayer player; = false; public IBinder onbind(intent intent) { return null; public void oncreate() { Toast.makeText(this, "MyService4 Created", Toast.LENGTH_LONG).show(); Log.e("MyService4", "oncreate"); boolisservicecreated = true; player = MediaPlayer.create(getApplicationContext(), R.raw.good_bad_ugly); 37
38 Przykład 3. MyService4 Odtwarzacz muzyki public void ondestroy() { Toast.makeText(this, "MyService4 Stopped", Toast.LENGTH_LONG).show(); Log.e("MyService4", "ondestroy"); player.stop(); player.release(); player = null; public void onstart(intent intent, int startid) { if (player.isplaying()) Toast.makeText(this, "MyService4 Already Started " + startid, Toast.LENGTH_LONG).show(); else Toast.makeText(this, "MyService4 Started " + startid, Toast.LENGTH_LONG).show(); Log.e("MyService4", "onstart"); player.start(); 38
39 Przykład 3. MyService5Async Generator liczb package csu.matos; import... public class MyService5Async extends Service { boolean isrunning = true; private Handler handler = new Handler() { public void handlemessage(message msg) { super.handlemessage(msg); Log.e("MyService5Async-Handler", "Handler got from MyService5Async: " + (String)msg.obj); ; public IBinder onbind(intent arg0) { return null; public void oncreate() { super.oncreate(); 39
40 Przykład 3. MyService5Async Generator liczb public void onstart(intent intent, int startid) { Log.e ("<<MyService5Async-onStart>>", "I am alive-5async!"); // we place the slow work of the service in an AsynTask // so the response we send our caller who run // a "startservice(...)" method gets a quick OK from us. new ComputeFibonacciRecursivelyTask().execute(20, 50); //onstart // this recursive evaluation of Fibonacci numbers is exponential O(2^n) // for large n values it should be very time-consuming! public Integer fibonacci(integer n){ if ( n==0 n==1 ) return 1; else return fibonacci(n-1) + fibonacci(n-2); public void ondestroy() { //super.ondestroy(); Log.e ("<<MyService5Async-onDestroy>>", "I am dead-5-async"); isrunning = false; //ondestroy 40
41 Przykład 3. MyService5Async Generator liczb public class ComputeFibonacciRecursivelyTask extends AsyncTask < Integer, Integer, Integer > { protected Integer doinbackground(integer... params) { for (int i=params[0]; i<params[1]; i++){ Integer fibn = fibonacci(i); publishprogress(i, fibn); return null; protected void onprogressupdate(integer... values) { super.onprogressupdate(values); Intent intentfilter5 = new Intent("matos.action.GOSERVICE5"); String data = "dataitem-5-fibonacci-asynctask" + values[0] + ": " + values[1]; intentfilter5.putextra("myservice5dataitem", data); sendbroadcast(intentfilter5); // (next id not really needed!!! - we did the broadcasting already) Message msg = handler.obtainmessage(5, data); handler.sendmessage(msg); // ComputeFibonacciRecursivelyTask //MyService5 40
42 Przykład 3. MyService6 Pozycjonowanie package csu.matos; Import... public class MyService6 extends Service { String GPS_FILTER = "matos.action.gpsfix"; Thread servicethread; LocationManager lm; GPSListener mylocationlistener; public IBinder onbind(intent arg0) { return null; public void oncreate() { super.oncreate(); 42
43 Przykład 3. MyService6 Pozycjonowanie public void onstart(intent intent, int startid) { Log.e("<<MyGpsService-onStart>>", "I am alive-gps!"); servicethread = new Thread(new Runnable() { public void run() { getgpsfix_version1(); getgpsfix_version2(); // uses NETWORK provider // uses GPS chip provider // run ); servicethread.start(); // onstart 43
44 Przykład 3. MyService6 Pozycjonowanie public void getgpsfix_version1() { // Get the location manager LocationManager locationmanager = (LocationManager) getsystemservice(context.location_service); // work with best provider Criteria criteria String provider = Location location = new Criteria(); locationmanager.getbestprovider(criteria, false); = locationmanager.getlastknownlocation(provider); if ( location!= null ){ // capture location data sent by current provider double latitude = location.getlatitude(); double longitude = location.getlongitude(); // assemble data bundle to be broadcasted Intent myfilteredresponse = new Intent(GPS_FILTER); myfilteredresponse.putextra("latitude", latitude); myfilteredresponse.putextra("longitude", longitude); myfilteredresponse.putextra("provider", provider); Log.e(">>GPS_Service<<", provider + " =>Lat:" + latitude + " lon:" + longitude); // send the location data out sendbroadcast(myfilteredresponse); 44
45 Przykład 3. MyService6 Pozycjonowanie public void getgpsfix_version2() { try { Looper.prepare(); // try to get your GPS location using the // LOCATION.SERVIVE provider lm = (LocationManager) getsystemservice(context.location_service); // This listener will catch and disseminate location updates mylocationlistener = new GPSListener(); // define update frequency for GPS readings long mintime = 2000; // 2 seconds float mindistance = 5; // 5 meter // request GPS updates lm.requestlocationupdates(locationmanager.gps_provider, mintime, mindistance, mylocationlistener); Looper.loop(); catch (Exception e) { e.printstacktrace(); 45
46 Przykład 3. MyService6 Pozycjonowanie public void ondestroy() { super.ondestroy(); Log.e("<<MyGpsService-onDestroy>>", "I am dead-gps"); try { lm.removeupdates(mylocationlistener); isrunning = false; catch (Exception e) { Toast.makeText(getApplicationContext(), e.getmessage(), 1).show(); // ondestroy 46
47 Przykład 3. MyService6 Pozycjonowanie private class GPSListener implements LocationListener { public void onlocationchanged(location location) { // capture location data sent by current provider double latitude = location.getlatitude(); double longitude = location.getlongitude(); // assemble data bundle to be broadcasted Intent myfilteredresponse = new Intent(GPS_FILTER); myfilteredresponse.putextra("latitude", latitude); myfilteredresponse.putextra("longitude", longitude); myfilteredresponse.putextra("provider", location.getprovider()); Log.e(">>GPS_Service<<", "Lat:" + latitude + " lon:" + longitude); // send the location data out sendbroadcast(myfilteredresponse); public void onproviderdisabled(string provider) { public void onproviderenabled(string provider) { public void onstatuschanged(string provider, int status, Bundle extras) { ;// GPSListener class // MyService3 47
48 Przykład 3. Manifest <manifest xmlns:android=" package="csu.matos" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="15" /> <uses-permission android:name="android.permission.access_coarse_location" /> <uses-permission android:name="android.permission.access_fine_location" /> <application > <activity android:name=".testservice4" android:screenorientation="portrait"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <service android:name=".myservice4"/> <service android:name=".myservice5async" /> <service android:name=".myservice6" /> </application> </manifest> 48
49 Przykład 3. Układ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout xmlns:android=" " android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="15" android:text="start Service4 (Music Player)" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="15" android:text="stop Service4 (Music Player)" /> 49
50 Przykład 3. Układ <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="15" android:text="start Service5 (Fibonacci)" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="15" android:text="stop Service5 (Fibonacci)" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="15" android:text="start Service6 (GPS Fix)" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="15" android:text="stop Service6 (GPS Fix)" /> 50
51 Przykład 3. Układ <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" /> </ScrollView> </LinearLayout> </LinearLayout> 51
52 Pytania 52
Mechanizm powiadomień
Mechanizm powiadomień Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Victor Matos, Cleveland State University. Portions of this page are reproduced
Systemy operacyjne na platformach mobilnych
Systemy operacyjne na platformach mobilnych Wykład 3 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Menu opcji ListActivity własny widok własny adapter
akademia androida Service, BroadcastReceiver, ContentProvider część IV
akademia androida Service, BroadcastReceiver, ContentProvider część IV agenda 1. BroadcastReceiver 2. Service 3. ContentProvider 4. Zadanie 1. 5. Zadanie 2 (domowe). 1. BroadcastReceiver BroadcastReceiver
Wykorzystanie plików
Wykorzystanie plików Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Victor Matos, Cleveland State University. Portions of this page are reproduced from
[Android] Podstawy programowania
Page 1 of 7 [Android] Podstawy programowania LinkiPrzewodnik z przykładamizasosbykrótka prezentacja wprowadzająca do budowy systemuprosta aplikacja z menu i dialogami, którą utworzymy tutaj krok po kroku
Mechanizm zapisu preferencji
Mechanizm zapisu preferencji Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Victor Matos, Cleveland State University. Portions of this page are reproduced
RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie
RESTful Android Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie Jacek Laskowski jacek@japila.pl http://www.jaceklaskowski.pl wersja 1.0, 08.12.2011 O prelegencie - Jacek Laskowski
Szybciej (pisać) Łatwiej (czytać) Prościej (utrzymywać) Marcin Wąsowski Amsterdam Standard Sp. z o.o.
Szybciej (pisać) Łatwiej (czytać) Prościej (utrzymywać) Marcin Wąsowski Amsterdam Standard Sp. z o.o. Co dostajemy na starcie? pobieranie elementów widoku, rzutowanie: ( np. findbyid ) każde zdarzenie
Tworzenie dialogów i wykorzystanie klasy Toast
Tworzenie dialogów i wykorzystanie klasy Toast Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Victor Matos, Cleveland State University. Portions of
I. Usługi. Usługa może przyjąć dwie formy:
I. Usługi Usługa (Service) jest komponentem aplikacji, który pozwala wykonywać w tle długodziałające operacje, które nie dostarczają żadnego interfejsu użytkownika. Komponent aplikacji może uruchomić usługę,
Laboratorium Systemów Mobilnych. Wykład 2
Laboratorium Systemów Mobilnych 2015-03-06 Wykład 2 (Aktywności proste zapamiętywanie danych) Wojciech Wawrzyniak Przypomnienie (elementy aplikacji) Składniki aplikacji Aktywności (Activity) Widoki (Views)
Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.
Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o. 29.06.2015 2 Spis treści 1. Wymagania...4 2. Uprawnienia systemowe...4 3. Uprawnienie
Android, wprowadzenie do SDK
Android, wprowadzenie do SDK Wprowadzenie, konfguracja środowiska, narzędzia, pierwsze aplikacje. prowadzący: Piotr Szymański, student 3 roku informatyki Paweł Rejkowicz, student 1 roku Informatyki 1 Android
Tworzenie i wykorzystanie usług
Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi
Życie aktywności Nawigując przez aplikacje poszczególne Aktywności przechodzą pomiędzy stanami. Dla przykładu gdy aktywność uruchamia się po raz
Życie aktywności Nawigując przez aplikacje poszczególne Aktywności przechodzą pomiędzy stanami. Dla przykładu gdy aktywność uruchamia się po raz pierwszy najpierw znajduje się w tle systemu gdzie otrzymuje
Systemy operacyjne na platformach mobilnych
Systemy operacyjne na platformach mobilnych Wykład 1 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Wprowadzenie do systemów mobilnych System operacyjny
Systemy operacyjne na platformach mobilnych
Systemy operacyjne na platformach mobilnych Wykład 1 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Wprowadzenie do systemów mobilnych System operacyjny
Laboratorium Systemów Mobilnych. Wykład 1
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
Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout
Ćwiczenie 7 Wykorzystanie układu LinearLayout Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się z zasadami użycia układu graficznego LinearLayout oraz wykształcenie umiejętności zastosowania
Obsługa SMS i telefonii
Strona 1 Interfejsy API telefonii Wysyłanie wiadomości SMS Odbieranie wiadomości SMS Symulowanie nadchodzących wiadomości SMS Obsługa skrzynki wiadomości SMS Wysyłanie wiadomości e-mail Monitorowanie połączeń
Programowanie usług działających w tle
Programowanie usług działających w tle Android Paweł Szafer Po co programować usługi działające w tle? Plan prezentacji O aplikacjach w Androidzie, Sposób podejmowania decyzji o zabiciu procesu, Rodzaje
Systemy operacyjne na platformach mobilnych
Systemy operacyjne na platformach mobilnych Wykład 1 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Wprowadzenie do systemów mobilnych System operacyjny
AndroidManifest.xml. Plik manifestu opisuje podstawowe charakterystyki aplikacji i definiuje jej komponenty.
AndroidManifest.xml Plik manifestu opisuje podstawowe charakterystyki aplikacji i definiuje jej komponenty. Jednym z najważniejszych elementów jest element który deklaruje kompatybilność z innymi
Podstawowe elementy GUI - zadania
Podstawowe elementy GUI - zadania LIVE DEMO Proszę zainstalować (rozpakować) Eclipse ADT z https://developer.android.com/sdk/index.html Proszę pobrać przez SDK Manager wszystko dotyczące Androida 4.4.2.
Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2
Programowanie Urządzeń Mobilnych Część II: Android Wykład 2 1 Aplikacje w systemie Android Aplikacje tworzone są w języku Java: Skompilowane pliki programów ( dex ) wraz z plikami danych umieszczane w
AKADEMIA MŁODYCH ODKRYWCÓW
AKADEMIA MŁODYCH ODKRYWCÓW Prosta aplikacja w systemie Android Zainstaluj program Android Studio (https://developer.android.com/studio/index.html) Stwórz nowy projekt o nazwie smycz wybierając minimalny
Wykorzystanie map i geolokalizacji
Strona 1 Usługi oparte na położeniu geograficznym Generowanie klucza interfejsu API dla mapy Wyświetlanie mapy Dodawanie własnych danych do mapy Położenie geograficzne Klasa Geocoder i geokodowanie Geokodowanie
Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda
Programowanie urządzeń mobilnych dr inż. Juliusz Mikoda Instalacja środowiska 1 Wymagane składniki środowiska Eclipse wersja 3.4 (Ganymede) lub 3.5 (Galileo classic) http://www.eclipse.org/downloads/packages/release/galileo/r
Powiadomienia w systemie Android
Powiadomienia w systemie Android Powiadomienie to krótka wiadomość, która pozwala informować użytkownika o pewnych wydarzeniach pochodzących z aplikacji - będąc poza nią. Wykorzystane w odpowiedni sposób
Fragmenty są wspierane od Androida 1.6
W androidzie można tworzyć dynamiczne interfejsy poprzez łączenie w moduły komponentów UI z aktywnościami. Moduły takie tworzy się za pomocą klasy Fragment, która zachowuje się jak zagnieżdżone aktywności
Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 8 Wykorzystanie układu RelativeLayout
Ćwiczenie 8 Wykorzystanie układu RelativeLayout Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się z zasadami użycia układu graficznego RelativeLayout oraz wykształcenie umiejętności zastosowania
Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.
Aktywności to podstawowe elementy związane z platformą Android. Dzięki poznaniu aktywności będziesz w stanie napisać pierwszą aplikację przeznaczoną na urządzenie mobilne. Po dodaniu kontrolek możesz w
Android pierwsza aplikacja
Android pierwsza aplikacja I. Środowisko 1. Uruchomić środowisko Android Devloppers tools 2. Wybrać/Utworzyć Wokspace Mobile-cw2 II Projekt 1. Utworzyć nowy projekt klikając na w pasku narzędzi 2. Rozwinąć
Programowanie dla Androida. Ubiquitous
Programowanie dla Androida Ubiquitous Czas życia aktywności Obsługiwany przez metody: oncreate - wywoływana w momencie tworzenia aktywności - ma argument, w którym może otrzymać informacje o poprzednim
Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().
Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public
akademia androida Http i AsyncTask część VII
akademia androida Http i AsyncTask część VII agenda 1. 2. 3. 4. URLConnection i HttpURLConnection UI Thread i ANR AsyncTask Zadanie 1. URLConnection i HttpURLConnection Jest to klasa, dzięki której możemy
Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody
Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody Rozmieszczenie przykład Jaki układu rozmieszczający powinien zostać wykorzystany? AbsoluteLayout, TableLayout,
Podstawowe elementy GUI - zadania
Podstawowe elementy GUI - zadania LIVE DEMO Proszę stworzyć prostą aplikację do obliczania pól figur geometrycznych. To add images to the drawable forlder, right click on it, and select the Show in Explorer
akademia androida Intencje oraz URI część III
akademia androida Intencje oraz URI część III agenda 1. Czym są intencje i po co się ich używa? 2. Czym jest URI? 3. Zadanie 1. 4. Zadanie 2 (domowe). 1. Czym są intencje i po co się ich używa? Intencje
Systemy operacyjne na platformach mobilnych
Systemy operacyjne na platformach mobilnych Wykład 2 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Interfejs użytkownika Activity Views Resources
Wątki w Android OS. Matt Rutkowski. GynSoft sp. z o.o. http://gynsoft.net matt@gynsoft.net
Wątki w Android OS Matt Rutkowski GynSoft sp. z o.o. http://gynsoft.net matt@gynsoft.net Krótko o terminach związanych z Android OS... Android OS bazuje na Linuxie, każda aplikacja posiada własne User
Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015
Android Podstawy tworzenia aplikacji Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 4, 2015 Table of contents Framework Jednym z najwarto±ciowszych
Zaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
akademia androida Pierwsze kroki w Androidzie część I
akademia androida Pierwsze kroki w Androidzie część I agenda Środowisko do pracy + emulator Struktura projektu z omówieniem Po co nam AndroidManifest.xml? Cykl życia aplikacji Zadanie 1. Kod, symulacja,
Android. Zarz dzanie cyklem»ycia i stanem. Piotr Fulma«ski. March 10, 2015
Android Zarz dzanie cyklem»ycia i stanem Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 10, 2015 Table of contents Co w tym wykªadzie
Systemy Rozproszone - Ćwiczenie 6
Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez
Programowanie Urządzeń Mobilnych. Laboratorium nr 9,10
Programowanie Urządzeń Mobilnych Laboratorium nr 9,10 Android Temat 2 działanie złożonych aplikacji zawierających więcej niż jedno Activity Krzysztof Bruniecki 1 Wstęp Podczas laboratorium poruszona zostanie
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Mariusz Fraś. Instytut Informatyki. olitechnika Wrocławska. Systemy Wbudowane. Android. Dr inż. Mariusz Fraś. maf 1
Systemy Wbudowane Dr inż. Android maf 1 Open Handset Alliance Android - podstawy Konsorcjum (sojusz) 78 firm mający na celu rozwój otwartych standardów dla urządzeń mobilnych Google, High Tech Computer
Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody
Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody Wprowadzenie Android 1.0 (API level 1) - 2008 Android 1.5 Cupcake (API level 3) - 2009 Android 2.0
Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński
Programowanie aplikacji dla technologii mobilnych mgr inż. Anton Smoliński Agenda Cykl życia aplikacji Struktura plików Plik AndroidManifest.xml Elementy aplikacji Activity Layout Intent BroadcastRecivers
Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
WSPÓŁBIEŻNOŚĆ. MATERIAŁY:
WSPÓŁBIEŻNOŚĆ ZAGADNIENIA: procesy, wątki, synchronizacja, synchronizacja w Java 5.0 blokady, egzekutory, zbiory wątków MATERIAŁY: http://docs.oracle.com/javase/tutorial/essential/concurrency/ HTTP://USERS.UJ.EDU.PL/~CIESLA/
Współbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład
dr Artur Bartoszewski 1 Aplikacje mobilne 1. Cykl życia aktywności Cykl życiowy Aktywności w systemie Android składa się z 7 stanów. 2 Aplikacje mobilne 3 Źródło: https://www.altkomakademia.pl oncreate()
Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Aplikacje w Javie- wykład 11 Wątki-podstawy
1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/
Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017
Wykład 8 10 maj 2017 Współbieżność Watki w JAVA-ie Współbieżność może być realizowana na poziomie systemu operacyjnego (procesy) lub na poziomie aplikacji (watki). W JAVA-ie powszechnie stosuje się watki.
namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server {
Pobranie i instalacja: - http://www.nservicebus.com/ - download v3.0 now - rozpakować - MSMQ powinno być zainstalowane (Panel Sterowania -> Dodaj/Usuń programy -> Składniki systemu Windows -> Kolejkowanie
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:
1. Listener dla przycisku. 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: W linii 24 tworzymy globalną metodę mglobal_onclicklistener,
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).
Interfejsy w Java. Przetwarzanie równoległe. Wątki.
Informatyka I Interfejsy w Java. Przetwarzanie równoległe. Wątki. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Interfejsy w Java Pojęcie interfejsu w programowaniu Deklaracja
Aplikacje RMI Lab4
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych
Near Field Communication
Near Field Communication What is NFC? Near Field Communication (NFC) to technologia komunikacji bezprzewodowej krótkiego zasięgu (do 10cm) wykorzystująca pasmo 13,56MHz. What is NFC? Urządzenia skanują
Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1
Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,
Komponenty sterowane komunikatami
Komponenty sterowane komunikatami 1. Usługa JMS asynchroniczność, model przesyłania komunikatów, 2. Przykład wysyłanie wiadomości, odbieranie wiadomości, komponent sterowany komunikatami 3. Komponenty
Podstawy Programowania
Podstawy Programowania Laboratorium 4 Aplety Aplety są programami javy stosowane głównie w internecie i uruchamiane głównie w przeglądarkach www. Przykładowy program kompilujemy za pomoca polecenia javac
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Architektury Usług Internetowych. Laboratorium 3. Usługi w środowisku wielo-agentowym
Architektury Usług Internetowych Laboratorium 3. Usługi w środowisku wielo-agentowym Wstęp Celem laboratorium jest zapoznanie się z usługami udostępnianymi przez agenty w systemie agentowym JADE. Każdy
Szybki tutorial o zabezpieczeniach w NFC
Szybki tutorial o zabezpieczeniach w NFC Knox Meetup 02 Michał Leszczyński CERT Polska Szybki tutorial o zabezpieczeniach w NFC Knox Meetup 02 Michał Leszczyński CERT Polska Szybki tutorial o pewnych rzeczach
Kurs programowania. Wykład 8. Wojciech Macyna
Wykład 8 Program bez watków, jeden procesor, trzy zadania Program z watkami, jeden procesor, trzy zadania Procesory wielordzeniowe, każde zadanie na osobnym procesorze Trzy zadania uruchomione w watkach
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne
Zdalne wywołania procedur Jarosław Kuchta Programowanie Współbieżne Podstawy RPC Remote Procedure Call Wywołanie procedur jednego procesu z innego procesu. Proces wywoływany serwer Proces wywołujący -
Wsparcie dla różnych urządzeń. SDK pozwala przystosować aplikację do większości tych wypadków
Wsparcie dla różnych urządzeń Android występuje obecnie w całej gamie różnych urządzeń. Urządzenia te różnią się: wielkością ekranu, gęstością pikseli, hardware'em, wspieranym sdk Dodatkowo urządzenia
Java. Programowanie Obiektowe Mateusz Cicheński
Java Programowanie Obiektowe Mateusz Cicheński Wielowątkowość Proces a wątek? Thread vs Runnable sleep(), interrupt(), join() Problemy wielowątkowości Obiekty niemodyfikowalne (immutable) Serializacja
grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie
grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie Krzysztof Czech, 2 rok IZ Grzegorz Duszyński, 2 rok IZ Daniel Engel, 2 rok IZ Łukasz Olech, 2 rok IZ Radek Wilczak, 2 rok EKA Nadpisywanie
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Android poradnik programisty
Android poradnik programisty 93 PRZEPISY TWORZENIA DOBRYCH APLIKACJI Wei-Meng Lee APN Promise SA Original English language edition 2013 by John Wiley & Sons, Inc. Tytuł oryginału: Android Application Development
Java Platform Micro Edition
Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? public static void test1() { Object[] o = new Object[] { "1", "2", "3" ; List l = new ArrayList(Arrays.asList(o));
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Intencje nadawcze. Aktywności mogą rozsyłać komunikaty do wszystkich zainstalowanych aplikacji
Intencje nadawcze Aktywności mogą rozsyłać komunikaty do wszystkich zainstalowanych aplikacji Jeżeli aktywność chce otrzymywać komunikaty, musi się zarejestrować Do odbioru komunikatów musimy stworzyć
Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Programowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.
SWING c.d. ZAGADNIENIA: przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/dnd/ http://th-www.if.uj.edu.pl/zfs/ciesla/
Architektury usług internetowych. Laboratorium 5. JADE
Wstęp Architektury usług internetowych Laboratorium 5. JADE Celem laboratorium jest zapoznanie się z usługami udostępnianymi przez agenty w systemie agentowym JADE. Każdy z agentów udostępniający usługę
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Programowanie w JAVA Lab. 5 - Wątki. 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 7 x ) xy, 8,8
Programowanie w JAVA Lab. 5 - Wątki 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 33 y 3 2 2 x x 3 y 7 x 3 33 7) 2 2 f x, y 1 x 3 1 x 2 1 y 7 x 3 3 33 2 112 y 3 7 x
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Programowanie obiektowe
Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie
akademia androida Składowanie danych część VI
akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.