ANDROID ALKALMAZÁSFEJLESZTÉS

Hasonló dokumentumok
ANDROID ALKALMAZÁSFEJLESZTÉS

Adattárolás Szenzorok

UI megismerése - 2. rész Adattárolás

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

Adatbázisok webalkalmazásokban

ANDROID ALKALMAZÁSFEJLESZTÉS

Kommunikáció - Wi-Fi, Mobil internet - Bluetooth - GSM / GPRS és SMS - NFC

ANDROID ALKALMAZÁSFEJLESZTÉS

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Kommunikáció Androidon Mobilinternet Wifi

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Mobil Informatikai Rendszerek

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Az új be- és kimenet könyvtár

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Blahota István. SQLite alapok

C#, OOP. Osztályok tervezése C#-ban

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Példaprogramok Android alá (Lista, mentés, visszatöltés, pattogó android figura) Android alapok. Android játékfejlesztés.

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

I. 288.: Utcai WiFi térkép

Android Wear programozás. Nyitrai István

Újdonságok a Google műhelyéből. Péter Ekler

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

UI megismerése, különböző felbontások támogatása, használati jogok kérése

Az SQL*Plus használata

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Java Programozás 11. Ea: MVC modell

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Mobil Informatikai Rendszerek

Alap számológép alkalmazás

SQLServer. Particionálás

Broadcast Service Widget

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java és web programozás

Kommunikáció Androidon GSM hívás SMS küldés, fogadás Bluetooth NFC USB

Programozási nyelvek Java

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

ANDROID ALKALMAZÁSFEJLESZTÉS

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA

Google Maps használata OSM, mint alternatív térkép

JNDI - alapok. Java Naming and Directory Interface

JAVA PROGRAMOZÁS 8.ELŐADÁS

Vizuális programozás gyakorlat

Adatbázis-kezelés ODBC driverrel

Symfony kurzus 2014/2015 I. félév. Security: authentication, authorization, user provider, role-ok, access control, FOS user bundle

OOP: Java 8.Gy: Abstract osztályok, interfészek

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {


Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

Felhasználói felület megismerése, különböző felbontások támogatása

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Programozási nyelvek Java

Programozási nyelvek Java

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Segédanyag: Java alkalmazások gyakorlat

Vodafone-os beállítások Android operációs rendszer esetében

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

Java programozási nyelv 10. rész Input/output kezelés

ANDROID ALKALMAZÁSFEJLESZTÉS

Hálózati operációs rendszerek II.

Valós idejű megoldások: Realtime ODS és Database In-Memory tapasztalatok

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

OOP és UML Áttekintés

A C# programozási nyelv alapjai

API tervezése mobil környezetbe. gyakorlat

Adatbányászat és Perszonalizáció architektúra

Android 5.0.

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis használata PHP-ből

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

Programozás II. ATM példa Dr. Iványi Péter

3. Egyszerű komponensek

C#---Access adatbáziskezelési gyakorlat

HUG7211 Gyakran Ismételt Kérdések (GYIK) az Transformer TF201 modellhez

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Access adatbázis elérése OLE DB-n keresztül

3. Gyakorlat Ismerkedés a Java nyelvvel

webalkalmazások fejlesztése elosztott alapon

Entity Framework alapú adatbáziselérés

Java programozási nyelv 6. rész Java a gyakorlatban

Java programozási nyelv 11. rész Adatbázis-programozás

Átírás:

ANDROID ALKALMAZÁSFEJLESZTÉS Adattárolás SharedPreference Belső - külső tároló PreferenceActivity Felhő alapú tárolás SQLite Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ n i k. u n i - o b u d a. h u Mezei József m e z e i. j o z s e f @ n i k. u n i - o b u d a. h u 2017. október 15.

Shared Preference 2 Egy egyszerű megoldás primitív értékek perzisztens tárolására. Az alábbiakat lehet: boolean, float, int, long, string. Felhasználói beállításoknál is erre építenek, de arra van egységes megoldás! Tárolás: String PrefFileName = "MyPrefName"; SharedPreferences settings = getsharedpreferences(preffilename, 0); SharedPreferences.Editor editor = settings.edit(); editor.putint("test", 1027); editor.commit(); Visszaállítás: SharedPreferences settings = getsharedpreferences(preffilename, 0); int szam = settings.getint("test", 0);

Belső tároló 3 Fájlmentés közvetlenül a belsőtárolóra. Ha az alkalmazást törlik, akkor ezek a fájlok is törlődnek! Alapértelmezetten más alkalmazás nem fér hozzá. Tárolás: String FILENAME = "StorageFile"; String savethis = "Helló Storage!"; FileOutputStream fos = openfileoutput(filename, MODE_PRIVATE); fos.write(savethis.getbytes()); fos.close(); Betöltés: /data/data/hu.uniobuda.nik.storagetest/files/storagefile FileInputStream fis = openfileinput(filename); byte[] buffer = new byte[1024]; int len; while((len = fis.read(buffer)) > 0) Log.d("TAG", new String(buffer, 0, len)); fis.close(); Továbbá: filelist(), deletefile(), getdir(),

Külső tároló - SD kártya 4 Bármely másik alkalmazás (v. felhasználó) által olvasható és írható, osztott háttértár. Bármikor eltávolíthatja a felhasználó. Ellenőrizni kell az elérhetőségét és állapotát: Már kevésbé jellemző az MTP képes készülékek miatt! String state = Environment.getExternalStorageState(); if(state.equals(environment.media_mounted)){ // Elérhető, írható és olvasható }else if(state.equals(environment.media_mounted_read_only)){ // Elérhető, de csak olvasható }else{ // Más állapotban van... DE se nem írható, se nem olvasható } Jogosultság: android.permission.write_external_storage String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();

Scoped Directory Access 5 A READ_EXTERNAL_STORAGE vagy a WRITE_EXTERNAL_STORAGE hozzáférést ad az összes publikus könyvtárhoz a külső tárolón. A Storage Access Framework könyvtárkiválasztásra tervezték ami szükségtelen ha mindig ugyanazzal a könyvtárral dolgozol. Fenti probléma feloldása a Scoped Directory Access, ahol a thirdparty alkalmazás csak a megadott könyvtárhoz vagy fájlhoz fog tudni hozzáférni, nem pedig a teljes külső tárolóhoz. Android 7.0 óta Bővebben: https://developer.android.com/training/articles/scoped-directory-access.html

Preference Activity 6 Kimondottan felhasználói beállítások tárolása. Néhány beépített form: CheckBoxPreference, EditTextPreference, ListPreference, RingtonePreference + Egyéni! Témák szerint kategorizálhatunk. Preference XML létrehozása: 1. File > New > Other > Android XML File 2. Layout helyett Preference típus! 3. Add > ChechBoxPreference, Java osztály: 1. extends PreferenceActivity 2. oncreate() implementálása 3. addpreferencesfromresource() + AndroidManifest.xml

Felhő alapú tárolás Data backup 7 Adatmentés felhőbe v. visszaállítási pont beállításokról. Akkor jó, ha: Factory reset történt, pl.: felhasználó által Új készüléket vett/kapott a felhasználó Nem garantált, hogy minden eszközön elérhető! Az alkalmazás működést ez nem befolyásolja, pusztán nem lesz restore() hívás Használata BackupAgent BackupAgentHelper Részletek itt Google Dashboard-ban https://www.google.com/dashboard/ Ez nem szinkronizáció!

Felhő alapú tárolás Storage services 8 Fájlok kezelése a felhőben: Google Drive Android API https://developers.google.com/drive/android/ DropBox Core Android API https://www.dropbox.com/developers/core/start/android

SQLite

SQLite-ról 10 Egy önálló, szerver nélküli, konfigurálást nem igénylő, tranzakciós adatbázis motor. www.sqlite.org Android alatt teljes SQLite támogatás. Alkalmazáson belül bárhonnan elérhető, de azon kívül nem! ContentProvider-ek segítségével lehetséges az alkalmazások közötti adatcsere is. Pl.: Böngésző könyvjelzők, előzmények, kontaktok, Megszokott SQL kódok használata: INSERT, SELECT, UPDATE, DELETE, CREATE,

SQLiteOpenHelper 11 Egy tervezési minta, feladata az adatbázis kezelésének megkönnyítése. Előnye, hogy jól követhető vele az adatstruktúra változása az egyes alkalmazásverziók alatt. public class DatabaseHandler extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "dbname"; public DatabaseHandler(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void oncreate(sqlitedatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE..."; db.execsql(create_contacts_table); } } @Override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { db.execsql("drop TABLE IF EXISTS..."); oncreate(db); }

SQLite műveletek Fontosabb SQL műveletek: SQLiteDatabase.create( ) SQLiteDatabase.delete( ) SQLiteDatabase.query( ) SQLiteDatabase.rawQuery( ) SQLiteDatabase.execSQL( ) SQLiteDatabase.insert( ) SQLiteDatabase.replace( ) 12 Lekérdezések esetén a visszatérési érték egy Cursor, mellyel végig mehetünk az eredmény listán: get[int Short Long Float Double String]( ) moveto[first Last Next Position]( ) getcolumn[count Index Name]( )

SQLite eszközök 13 Néhány ajánlott SQLite adatbázist kezelő GUI alkalmazás: SQLite Studio http://sqlitestudio.pl/ SQLite Database browser http://sqlitebrowser.sourceforge.net/ SQLite Administrator http://sqliteadmin.orbmu2k.de/ SQLite Manager Firefox add-on https://addons.mozilla.org/en-us/firefox/addon/sqlite-manager/ SQLite Spy http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index

Room Persistence Library A Room egy absztrakciós réteg az SQLite felett. Célja, hogy az adatbázissal járó boilerplate kódokat elhagyjuk. 3 alap komopnense van: 1. Database: maga az adatbázist képviseli 2. Entity: egy adatbázis sort reprezentáló osztály 3. DAO: az adatbázis műveletek interfésze 14 Bővebben: https://developer.android.com/topic/libraries/architecture/room.html