Aplicatie Android Pentru Optimizarea Flotei Rutelor Auto a Firmelor de Service

Cuprins

Abrevieri

PHP- Hypertext Preprocessor

HTML- HyperText Markup Language

API- Application Programming Interface

SDK- Software Development Kit

JSON- JavaScript Object Notation

XML- Extensible Markup Language

ADT- Android Development Tools

JDK- Java Development Kit

IDE- Integrated development environment

POO- Object-Oriented Programming

OS- Object-Oriented Programming

Lista Imaginilor

Figura 1 –Istoric versiuni MSQL 12

Figura 2 –Schema de Functionare PHP 13

Figura 3-Istoric versiuni Android 18

Figura 4-Aplicatia pe android 19

Figura 5- Testarea vecinatatii oraselor 20

Figura 6 – Se verfică daca primul nod este diferit de ultimul 21

Figura 7 – Se testează dacă nu a mai fost vizitat orașul selectat 21

Figura 8-Configurarea proiectului 24

Figura 9-Descarcarea librariilor prin SDK Manager 25

Figura 10-Instalare ADT 26

Figura 11 –Model de funcționare API 27

Figura 12-Comandă pentru semnătura SHA-1 28

Figura 13-Activarea Google Maps API V2 28

Figura 14-Creare API key 29

Figura 15-Elementele unui proiect android 30

Figura 16-Aspect XML 31

Figura 17-Apelare XML 32

Figura 18 Vizualizarea ierarhie cu parametrii aspect asociate cu fiecare vizualizare 33

Figura 19-Schemă JSON 35

Figura 20-Folosirea OpenGL ES 36

Figura 21- Fragment-ul unde apare harta 37

Figura 22-Codul pentru harta din Main Activity 37

Figura 23-Preluarea punctelor din baza de date 38

Figura 24-Sintaxă trimitere coordonate MySql 39

Introducere

În ultima perioadă aplicațiile mobile au devenit din ce în ce mai răspândite. Există aplicații pentru orice, și continuă să apară altele noi. Unele sunt foarte utile, altele mai puțin, dar tendința de creștere a numărului de aplicații mobile se menține. Între acestea se numără și aplicațiile care utilizează sistemul GPS în diverse scopuri, cum ar fi monitorizarea persoanelor, a animalelor în diverse cercetări științifice, navigație.

Plecând de la această realitate m-am întrebat dacă nu ar fi posibil să îmi ajut un prieten, care are o firmă de service pentru instalații frigorifice industriale, prin realizarea unei aplicații care să permită optimizarea rutei mașinii care face intervențiile, în funcție de solicitările apărute după plecarea de la sediu.

Multe firme de service se confruntaă cu o oarecare problemă în ceea ce privește optimizarea rutei mașinii care face intervențiile, în funcție de solicitările apărute după plecarea de la sediu. Această problemă poate fi rezolvată prin crearea unei aplicații mobile care are la bază o problemă de programare numită comis voiajor. Aceasta constă prin traversarea mai multor orașe, o singură dată , si revenirea în orașul de plecare exact ceea ce îmi doriesc să realizez prin aceasta aplicatie.

Există aplicații, și nu puține, de monitorizare a deplasării vehiculelor, dar eficiența și ușurința în folosire nu poate fi verificată decât după achiziție. Aplicațiile mobile nu au aceeași largă utilizare ca cele de tip desktop, de aceea și informațiile legate de funcționare și gradul de satisfacție al utilizatorilor sunt puține. Unele sunt prea complexe, pentru scopul urmărit, lucru care se reflectă și în preț, altele sunt greoi de utilizat.

În ceea ce privește aplicația pe care am conceput-o, ea urmărește, în principal, să determine ruta optimă (drumul minim) pentru parcurgerea unui traseu când numărul și poziția nodurilor se modifică dinamic, în timpul parcurgerii traseului. Complementar, se poate monitoriza și respectarea traseului de către echipa de intervenție.

Concret, la prima oră, autoturismul de intervenție are un traseu stabilit pe baza solicitărilor primite până la momentul plecării. Pe parcurs pot apărea și alte solicitări, care presupun abaterea de la ruta inițială. Aplicația trebuie să determine ordinea de deservire a solicitărilor astfel încât drumul parcurs să fie minim.

De aici rezultă economie de combustibil, uzură redusă a mașinii, timp de lucru redus și, în consecință cheltuieli cu salariile mai reduse.

Tehnologii folosite

În realizarea aplicației s-au folosit următoarele medii si limbaje de programare:

Eclipse IDE for Java Developers +ADT plugin

Java Development Kit

Android SDK tools

MySQL

PHP(HypertextPreprocessor)

Eclipse IDE for Java Developers

Dezvoltarea de aplicații complexe java care de obicei conțin mai multe fișiere sursă, poate deveni foarte dificila în condițiile utilizarii unui editor text simplu. În aceste condiții programatorul va trebui să îți aleaga și sa își instaleze pe lângă platforma J2SE, o aplicație care sa îl ajute in dezvoltarea aplicațiilor. O astfel de aplicație poarta numele de IDE (Integrated Development Environment).

Un mediu de dezvoltare (engl. integrated development environment) este un set de programe care ajută programatorul în scrierea de alte programe. Un mediu de dezvoltare combină toți pașii necesari creării unui program (ex.: editarea cod sursa, compilare, rulare, depanare ) într-un singur soft, care, de regulă, oferă o interfață cu utilizatorul grafică, prietenoasă.

Instrumente de dezvoltare Android (ADT) este un plug-in pentru Eclipse IDE, care este proiectat pentru a vă oferi un mediu puternic, integrat în care pentru a construi aplicații Android.

ADT extinde capacitățile de Eclipse pentru a vă stabili rapid noi proiecte Android, a crea o interfață cerere, se adauga pachete bazate pe API-cadru Android, depanare aplicații folosind instrumentele SDK Android, și chiar de export semnate (sau nesemnate) fișiere .apk în scopul de a distribui cererea dumneavoastră.

Dezvoltarea în Eclipse cu ADT este foarte recomandat și este cel mai rapid mod de a începe. Cu configurarea ghidată de proiect prevede, precum și integrarea instrumente, editorii XML personalizate, și panoul de ieșire de depanare, ADT vă oferă un impuls incredibil în dezvoltarea de aplicații Android.

Java Development Kit

Java este un limbaj de programare orientat obiect, o tehnologie inovatoare care a avut un impact puternic asuprat dezvoltatorilor de software. Acest limbaj de programare este cel mai des întalnit pe dispozitivele mobile , formând astfel o platforma unica si extrem de diversificată.

Principalele caracteristici care l-au adus într-unul din principalele opțiuni dezvoltarea aplicațiilor indiferent de complexitate și domeniu sunt :

simplitate

robustete

ușurința

complet orientat obiect

portabilitate

securitate

neutralitate arhitecturală

Limbajul are o parte destul de mare din sintaxa C si C++, dar prezintă un model al obiectelor mai simplu putând rula pe orice platforma unde este instalată o mașina virtuală. Portabilitatea crescuta a acestui limbaj este datorat unui format standard numit cod de octeți care reprezintă ,între codul de mașina și codul sursă un intermediar.

Java Development Kit(JDK) include în primul rând o gamă largă de instrumente de programare:

appletviewer – browser pentru vizualizarea instrumentelor de depanare

apt – adnotări instrument de prelucrare

extcheck – utilitar care poate detecta conflictele fișier JAR

idlj – IDL-to-Java compilator. Acest utilitar generează cod Java dintr-un fișier IDL dat

jabswitch – Java Access Bridge. Utilizarea tehnologiei de asistență pentru sistemele Microsoft Windows.

Java – Java este necesar pentru a rula interpretului , interpretează javac fișierele de clasă generate de compilator

javac – Java compilator , care creează o sursă de bytecode

javadoc – documentația potrivit pentru dispozitiv, care este plasat în codul

javafxpackager – instrument de aplicații JavaFX

jarsigner – Fișierele JAR sunt utilizate pentru a semna

javah – header C și generator de ciot, pentru a scrie metode native

javaws – Java Web Start, Start, JNLP, și aplicații

JConsole – Java Monitorizare și Management Console

JDB – Debugger (debugger)

jhat – efectuarea Java instrument de analiză (experimental)

Jinfan – utilitate , oferă informații de configurare pentru a rula Java

JMC – Java Control Missions

JPS – proces JVM instrument statut care listează mașinile virtuale Java HotSpot instrumentate sistemul țintă. (Experimental)

jrunscript – Java linie de comandă mediu runtime de scripting

jstack – Java fibre urme stiva EIT oferă instrument de vizualizare (experimental)

jstat – Java Virtual Machine dispozitiv de monitorizare statistica (experimental)

jstatd – jstat deamon (experimental)

keytool – JKS semnături generatoare, responsabile pentru dispozitive de stocare

pack200 – instrument de compresie JAR

policytool – elaborare a politicilor și instrument de management, care este de asemenea în măsură să determine politica pentru mediul de executie Java, determina care licențe sunt disponibile din diverse surse CoduriVisualVM – dispozitiv vizual care multe instrumente de linie de comandă și ușor instrument de performanță și crearea de profiluri de memorie pentru a include instrumente integrate sunt incluse în JDK

wsimport – portabil JAX-WS apeleaza serviciu Web

xjc – API Java pentru XML Binding (JAXB) face parte din API. Acesta primește și generează clasa Java pentru XML-schema.

În plus față de cele mai utilizate pe scară largă, există alte medii JDK de obicei disponibile pentru o varietate de platforme, dintre care unele au început tot de la sursa Sun JDK. Toate acestea să adere la specificațiile Java de bază, dar ele diferă de multe ori în zone în mod explicit nespecificate, cum ar fi strategii de compilare, și tehnici de optimizare.

Limbajele de programare , în funcție de modul de execuție al programelor,se împart în două categorii;

compilate: codul sursă al programelor este transformat de compilator într-un cod ce poate fi executat direct de procesor:

avantaj: execuție rapidă;

dezavantaj: lipsa portabilității, codul compilat într-un format de nivel scăzut nu poate fi rulat decât pe platforma pe care a fost compilat

interpretate:un program numit interpretor citeste instructiubile linie cu linie și le traduve în instrucțiuni mașină:

avantaj: simplitate;

dezavantaj: viteza de execuție redusă;

Programele Java sunt atât interpretate cât și compilate. Codul de octeți este diferit de codul mașină. Codul mașină este reprezentat de o succesiune de 0 și 1; codurile de octeți sunt seturi de instrucțiuni care seamănă cu codul scris în limbaj de asamblare.

Codul mașină este executat direct de către procesor și poate fi folosit numai pe platforma pe care a fost creat; codul de octeți este interpretat de mediul Java și de aceea poate fi rulat pe orice platformă care folosește mediul de execuție Java

Există două posibilități de a lucra în Java: în linie de comandă – pașii fiind indicați mai jos, sau folosind un editor Java cum ar fi JCreator, Eclipse, etc.

Realizarea unui program Java constă în următorii pași:

Editarea programului într-un editor de texte;

Salvarea programului sub numele NumeleClasa.java unde NumeleClasa este numele clasei care conține metoda main(). Într-un program Java trebuie să existe o singură clasă care să conțină o metodă main(). Cu alte cuvinte, numele clasei trebuie să coincidă cu numele fișierului. Extensia fișierului este .java

Comanda pentru compilarea programului este :

java NumeClasa.java

Executarea acestuia se face prin comanda

java NumeClasa

Toate aplicațiile Java conțin o clasă principală în care trebuie să se găsească metoda main(). Clasele aplicației se pot găsi fie într-un singur fișier, fie în mai multe.

Crearea unei aplicații simple

Salvarea fișierelor sursă

Se va face în fișiere cu extensia .java. Fișierul care conține codul sursă al clasei principale trebuie să aibă același nume cu clasa principală a aplicației (clasa care conține metoda main). Prin urmare, fișierul nostru o să-l salvăm sub numele:

Numele.java

Compilarea aplicației

Se folosește compilatorul Java, javac. Apelul compilatorului se face pentru fișierul ce conține clasa principală a aplicației. Compilatorul creează câte un fișier separat pentru fiecare clasă a programului; acestea au extensia .class și sunt plasate în același director cu fișierele sursă. Rezultatul comenziiȘ

java Numele.java

Rularea aplicației

Se face cu interpretorul java, apelat pentru unitatea de compilare corespunzătoare clasei principale, fiind însă omisă extensia .class asociată acesteia.

Rularea unei aplicații care nu folosește interfață grafică, se va face într-o fereastră sistem.

Android SDK tools

Android kit de dezvoltare software (SDK) include un set complet de instrumente de dezvoltare. Acestea includ un program de depanare , biblioteci , un receptor emulator bazat pe QEMU , documentare, mostre de cod, și tutoriale.

Platforme de dezvoltare sprijinite în prezent includ calculatoare care rulează Linux (orice desktop moderne de distribuție Linux ), Mac OS X 10.5.8 sau mai târziu, și Windows XP sau o versiune ulterioară. Ca din martie 2015 , SDK nu este disponibil pe Android în sine, dar dezvoltarea de software este posibilă prin utilizarea aplicațiilor Android specializate

Îmbunătățiri la SDK Android merg mână în mână cu dezvoltarea de ansamblu platforma Android. SDK sprijină, de asemenea versiuni mai vechi ale platformei Android în dezvoltatorii de caz doresc să direcționeze cererile lor la dispozitive mai vechi.

Instrumente de dezvoltare sunt componente care pot fi descărcate, astfel încât după o a descărcat cea mai recentă versiune și platformă, platforme mai vechi și instrumente pot fi descărcate pentru teste de compatibilitate.

MySQL

MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania suedeza MySQL AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP (Linux, Apache, MySQL, PHP).

MySQL este baza de date open source din lume cea mai popular, care să permită furnizarea eficientă a aplicațiilor de baze de date scalabile Web bazate și integrate. O interfață de tip ODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfață, să interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.

În plus față de ușurința MySQL de utilizare, de înaltă performanță și fiabilitate, se poate beneficia de funcții avansate, instrumente de gestionare și de asistență tehnică pentru dezvoltarea, implementarea și gestionarea aplicațiilor MySQL.

Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin.

Graficul de mai jos oferă o imagine de ansamblu a diferitelor versiuni MySQL și stările lor de dezvoltare actuale:

Figura 1 –Istoric versiuni MSQL

(Sursa: https://upload.wikimedia.org/wikipedia/en/timeline/56af681df0272eee620cc98eca955010.png, n.d.)

PHP

PHP este un limbaj de scripting web încorporat-HTML. Acest lucru înseamnă că un cod PHP e fi introduse în codul HTML al unei pagini Web. Atunci când o pagină PHP este accesat, codul PHP este citit sau "analizat" de server pagina află pe. Ieșirea din funcțiile PHP pe pagina sunt de obicei returnate ca un cod HTML, care pot fi citite de către browser. Deoarece codul PHP este transformat în HTML înainte de pagina este încărcată, utilizatorii nu pot vedea codul PHP pe o pagină. Aceasta face pagini PHP suficient securizate la baze de date de acces și alte informații sigure.

O mulțime de sintaxa PHP este împrumutat din alte limbi, cum ar fi C, Java și Perl. Cu toate acestea, PHP are un număr de caracteristici unice și funcții specifice, precum și. Scopul limbajului este de a permite dezvoltatorilor web să scrie pagini generate dinamic rapid și ușor. PHP este de asemenea mare pentru crearea de site-uri Web-baze de date.

Este unul din cele mai importante limbaje de programare web open-source și server-side, existând versiuni disponibile pentru majoritatea web serverelor și pentru toate sistemele de operare. Conform statisticilor este instalat pe 20 de milioane de site-uri web și pe 1 milion de servere web. Este disponibil sub Licenṭa PHP ṣi Free Software Foundation fiind un software liber.

PHP poate face tot felul de lucruri: evaluarea datelor formular trimise de un browser, construit de conținut web personalizat pentru a servi browser, vorbesc cu o bază de date, și chiar trimite și primi cookie-uri (pachete mici de date care folosește browser-ul dvs. să-și amintească lucruri, cum ar fi dacă sunteți conectat la la un anumit cont).

PHP este, de asemenea, cunoscut ca un limbaj de programare server-side. Acest lucru înseamnă că rulează pe serverul Web unde site-ul provine. La urma urmei o pagină Web este de fapt un "produs" al PHP. Cele mai multe limbaje de programare Web sunt server-side, dar unele, cum ar fi JavaScript, sunt client-side, ceea ce inseamna ca rula pe browser-ul web vizitatorului.

Limbile server-side pot oferi o mai mare flexibilitate, deoarece acestea pot face multe lucruri care sunt aproape imposibil de a face cu JavaScript – de exemplu, lucrul cu fișiere și baze de date, sau manipularea avansat de imagini. Desigur, astfel de caracteristici prezintă probleme de securitate cu privire la client-side de aceea ele nu sunt acceptate.

Codul server-side este potențial mai sigur decât cod client-side. Deoarece codul JavaScript este trimis la browser-ul web este ușor pentru un vizitator pentru a vizualiza și edita codul. Codul server-side, pe de altă parte, rămâne pe serverul Web și nu este accesibil vizitatorii site-ului. Vizitatorii pot vedea doar ceea ce generează server-side, care este codul html. Este menit sa fie o modalitate ușoară de a crea pagini web dinamice care interactioneaza de fapt cu vizitatorii.

Figura 2 –Schema de Functionare PHP

(Sursa: http://docs.aws.amazon.com/opsworks/latest/userguide/images/php_walkthrough_arch_2.png, n.d.)

PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui studiu efectuat de Netcraft în aprilie 2002, apărând pe 9 din cele 37 milioane de domenii cercetate în studiu. De asemenea, există un grafic al creșterii folosirii PHP-ului pe site-ul oficial. Popularitatea de care se bucură acest limbaj de programare se datorează următoarelor caracteristici :

Familiaritatea : sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele mai populare limbaje Perl sau C;

Simplitatea : sintaxa limbajului este usoșoară si liberă. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus într-un document executându-se între marcajele speciale;

Eficiența : acesta se folosește mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, așa cum este web-ul;

Securitate : PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță;

Flexibilitate : fiind apărut din necesitatea dezvoltării web-ului, PHP a fost modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server, etc.;

Gratuitate : este probabil cea mai importantă caracteristică a PHP-ului. Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-ului, eficientizarea și securizarea codului.

Tipuri de date interne:

PHP are un total de opt tipuri de date pe care le folosim pentru a construi variabilele:

Integers: sunt numere întregi, fără un punct zecimal, ca 4195.

Doubles sunt numere în virgulă mobilă, cum ar fi 3.14159 sau 49.1.

Booleans: au doar două valori posibile, fie adevărat sau fals.

NULL: este un tip special, care are doar o valoare: NULL.

Strings: sunt secvențe de caractere, cum ar fi "PHP suportă operații șir."

Arrays: sunt numite și colecții de alte valori indexate.

Objects: sunt cazuri de clase definite, programator, care poate împacheta alte tipuri de valori și funcții specifice clasei.

Resources: sunt variabile speciale care dețin referințe la resurse externe pentru PHP (cum ar fi conexiunile bazei de date).

Servicii Google Play

Serviciile Google Play sunt utilizate pentru actualizarea aplicațiilor Google și a aplicațiilor din Google Play. Această componentă oferă funcții de bază, cum ar fi autentificarea la serviciile Google, sincronizarea agendei, acces la cele mai recente setări privind confidențialitatea utilizatorului și servicii bazate pe locație de calitate superioară, care consumă mai puțină energie.

Serviciile Google Play vă îmbunătățesc, de asemenea, experiența de utilizare a aplicațiilor. Acestea accelerează căutările offline, vă oferă hărți mai extinse și îmbunătățesc experiența de joc.

Instrumente incluse:

Google Play Game Services

Google Play Game Services poat fi utilizate de către dezvoltatorii de aplicații, pentru a permite o experiență mai competitive și sociale, prin utilizarea de clasamente, atât publice, cât și între prieteni, realizări și sesiuni de multiplayer. Jocuri salvate sunt disponibile pentru o rapid sincronizare jocul .

Location APIs

Location APIs sunt detalii despre tehnologiile de localizare, oferind API-uri pentru programarea acțiuni specifice pe intrarea și ieșire din granițele geografice specifice . Fused Location Provider dobândește de informații despre locație de utilizare reducând cat mai mult volumul de energie și activitate de recunoaștere pentru a permite aplicațiilor să se adapteze la acțiunea actuală a utilizatorului (de exemplu, mersul cu bicicleta, mersul pe jos, etc.).

Google+

Platforma Google+ permite utilizatorului să fie autentificat în mod automat în interiorul aplicații oferind o experiență mai personalizată, și opțiuni de partajare utilizând Google+ .

Hărți

Google Maps Android API permite aplicațiilor să includă Google Maps sau Street View fără a fi nevoie de a deschide o cerere separată, care să permită un control complet de adăugarea markeri personalizate peste harta.

Google Drive

Google Android API expune Google Drive pentru a fi utilizate ca o structura de depozitare, oferind căutare ușor și sincronizarea documentelor, împreună cu diverse alte instrumente pentru manipularea fișierelor.

Anunturi

Google Anunțuri mobile integrează anunțuri în aplicații, permițând o monitorizare simplă, deși peste un milion anunțuri Google sunt direcționate în funcție de factori cum ar fi locația utilizatorului.

Altele

Google Play Servicii furnizează alte API-uri, cum ar fi Google Fit API, contul Google autentificare metodele și Google Analytics API-uri. Google Play Servicii este folosit de aproape toate aplicațiile Google și au puteri la nivel de sistem pentru a oferi mai multe caracteristici interne.

Printre aceste servicii se gaseste si Google Maps Api V2 pe care l-am folosit la aplicatia mea. Google Maps API v2 a fost conceput pentru a încărca rapid și de a lucra bine pe dispozitivele mobile. În special, s-a concentrat pe dezvoltarea de dispozitive mobile avansate, cum ar fi Android și iOS telefoane.

Google Map

Google Maps este un serviciu online atat  desktop cat și mobile de cartografiere web serviciu de publicitate dezvoltat de Google. Acesta oferă imagini din satelit, hărți stradale, 360 ° vederi panoramice de străzi ( Street View ), condițiile de trafic în timp real ( Google Trafic ), și planificarea rutelor de călătorie pe jos, autoturism, bicicleta (în beta ), sau transportul public . Google Maps oferă o API care permite hărților să fie incluse pe site-uri terțe, și oferă o localizare pentru întreprinderi urbane și alte organizații în numeroase țări din întreaga lume.

Google Maps imagini din satelit nu sunt actualizate în timp real; Cu toate acestea, Google adaugă date la baza de date de primar în mod regulat. Site-ul de asistență Google afirmă că cele mai multe dintre imaginile nu sunt mai mult de trei ani. Hărțile permite utilizatorilor și întreprinderile crea propria hartă de poziționare markere, polilinii și poligoane pe o hartă. Interfața este o suprapunere simplă pe hartă.

Un set de optzeci și patru markeri pre-proiectate este disponibil, de la baruri și restaurante la webcam și cutremur simboluri. Polyline și culoare Poligon, lățime și opacitate sunt selectabile. Harta modificat folosind Hărțile mele pot fi salvate pentru vizualizare mai târziu și a făcut publice sau marcate ca nelistate

Geocoder-ul special Hărți Google interprează adresele dintr-o țară în limba corespunzătoare țării respective. Serviciul permite de asemenea și marcarea crearea unui drum (traseu) intre doua puncta unul de placare si o destinatie , respectiv determinarea punctelor intermediare dintre acestea determinand o ruta personalizata.

Este adăugat și un timp aproximativ de parcurgere. Puteți căuta diverse destinații folosind latitudinea și longitudinea acestor .

Google Maps oferă un planificator de traseu în "Get Directions".  Până la patru moduri de transport sunt disponibile în funcție de zona: de conducere, transport public (a se vedea secțiunea de Google Transit de mai jos), mersul pe jos, cu bicicleta cu sens unic poate fi vizualizat înainte de călătorie.

Aplicația Google Maps a fost lansată în varianta pentru telefon mobil încă din anul 2006, la doar 1 an de la apariția online, pe atunci folosindu-se Java. Tehnologia a evoluat, iar cu timpul aplicația a devenit foarte populară în rândul utilizatorilor de smartphone-uri cu sistemul de operare Android. Aplicația poate să caute locații prin comenzi vocale, să afișeze starea traficului, să afișeze imagini din satelit, să arate imagini stradale prin serviciul Google Street View și să se conecteze cu bordul unei mașini.

Limite de utilizare

Cele mai multe site-uri și aplicații pot utiliza gratuit Google Maps API. Cu toate acestea, dacă a genera în mod constant o cantitate mare de trafic, limite de utilizare se aplică și va trebui să plătească pentru utilizarea suplimentar. Dacă site-ul sau de aplicare generează 25 000 sarcini/harta sau mai multe în fiecare zi, timp de mai mult de 90 de zile consecutive, vom lua legătura cu tine pentru a vorbi despre plata. Nu vă faceți griji, dacă te duci peste limita, nu vom închide imediat pe accesul API sau mesaje de eroare de afișare pe site-ul tau.

Dacă credeți că site-ul sau aplicație va genera sarcini mari harta constant pe termen lung, ar trebui să ia în considerare una dintre următoarele opțiuni:

Modifica cererea, astfel încât utilizarea de către dvs. este mai mică de 25 000 de sarcini/harta pe zi.Achiziționați un Google Maps API for Work de licență.

Android

Android a fost construit de la zero, pentru a permite dezvoltatorilor să creeze aplicații mobile convingătoare de care utilizatorii sa profite pe deplin. A fost construit pentru a fi cu adevărat deschisă. De exemplu, o aplicatie poate apela la oricare dintre funcționalitatea de bază a telefonului, cum ar fi efectuarea de apeluri, trimiterea de mesaje text, sau folosind camera, care permite dezvoltatorilor să creeze experiențe mai bogate și mai coezive pentru utilizatori.

Android este construit pe Linux Kernel deschis. În plus, se utilizează o mașină personalizată virtuală, care a fost proiectată pentru a optimiza memoria și hardware resurse într-un mediu mobil. Android este open source, poate fi extins cu generozitate pentru a încorpora noi tehnologii de ultimă oră. Platforma va continua să evolueze pentru ca , comunitatea dezvoltatorilor lucrează împreună pentru a construi aplicații mobile inovatoare.

Android nu face diferența între aplicațiile de bază ale telefonului și aplicații de la terți. Ele pot fi construite pentru a avea acces egal la capacitățile unui telefon de care furnizează utilizatorilor cu un spectru larg de aplicații și servicii.

Cu dispozitive construite pe platforma Android, utilizatorii au posibilitatea de a adapta pe deplin ul la interesele lor. Ei pot schimba din homescreen-ul a telefonului, stilul dialer, sau la oricare dintre aplicațiile.

Android descompune barierele la construirea de aplicații noi și inovatoare. De exemplu, un dezvoltator poate combina informații de pe Web cu datele de pe telefonul mobil ale unui individ – cum ar fi contactele utilizatorului, calendar, sau locația geografică – pentru a oferi o experiență de utilizare mai relevantă.

Cu Android, un dezvoltator poate construi o aplicație care permite utilizatorilor să vizualizeze locatia prietenilor lor și de a fi alertat atunci când acestea sunt în apropierea oferindu-le o șansă să se conecteze.

Android oferă acces la o gamă largă de biblioteci utile și instrumente care pot fi folosite pentru a construi aplicatii bogate. De exemplu, Android permite dezvoltatorilor să obțină locația dispozitivului și permite dispozitivelor să comunice între ele permit peer-to-peer aplicațiile sociale. În plus, Android include un set complet de instrumente care au fost construite de la zero pe platforma oferind dezvoltatorilor cu o productivitate ridicată și înțelegere adâncă în aplicațiile lor.

În tabelul de mai jos puteți vedea istoricul versiunilor Android:

Figura 3-Istoric versiuni Android

(Sursa: https://ro.wikipedia.org/wiki/Android_(sistem_de_operare), n.d.)

Aplicație ANDROID pentru optimizarea flotei-rutelor auto a firmelor de service (Modulul mobil)

Descriere aplicație

Modulul mobil este folosit de către cei care realizează, efectiv, intervențiile la sediile clienților. Acest modul este accesat doar de pe dispozitive mobile, echipamente ce pot fi ușor manevrate de către un operator (conducătorul auto) fără pregătire specială în domeniul IT.

Modulul mobil este instalat pe un smartphone care rulează Android (versiunea minimă destinată aplicației este Android 2.3.2). Conducătorul auto primește, la începutul programului de lucru, un traseu. Acest traseu este afișat pe dispozitivul mobil avut în posesie.

Aplicația afișează traseul zilnic, pe baza coordonatelor punctelor din baza de date, puncte salvate cu o zi înainte de către dispecer. Punctul de plecare, la început de zi, și cel de sosire, la sfârșit de zi coincid, fiind coordonatele sediului firmei.

Pe harta afișată după autentificarea utilizatorului putem vizualiza traseul mașinii din ziua curentă, precum și alte informații ce țin de acest traseu (coordonatele destinațiilor, distanțe parcurse/de parcurs, timp efectiv de deplasare, viteza medie ce se dorește a fi atinsă).La fiecare 5 min aplicatia trimite coordonatale de lamomentul respective cate bazade date deunde sunt preluate de dispecer aflat la sediul firmei.

Figura 4-Aplicatia pe android

Problemă comis-voiajorului. Fundamente teoretice

Se cunosc distantele dintre mai multe orase. Un comis-voiajor pleaca dintr-un oras si doreste sa se intoarca in acelasi oras, dupa ce a vizitat fiecare din celelalte orase exact o data. Problema este de a minimiza lungimea drumului parcurs. (Indicatie. La fiecare pas se alege orasul nou, cel mai apropiat).

Problema unui comis voiajor are in vedere cunoasterea distantelor dintre orase. Orasul din care pleaca el este atat punct de plecare cat si destinatie, astfel va trebui sa treca prin celelalte orase ,o singura data , sis a se intoarca la acelasi oras.

Algoritmul problemei comis-voiajor este Backtracking.Metoda backtracking urmareste sa evite generarea tuturor solutiilor posibile, scurtandu-se astfel timpul de calcul. Prin metoda backtracking, orice vector solutie este construit progresiv, incepand cu prima componenta si mergand catre ultima, cu eventuale reveniri asupra valorilor atribuite anterior. Reamintim ca x1,x2,…,xn primesc valori in multimile v1,….,vn .

Pseudocod

Semnificatia variabilelor:

x[10]=vectorul care se prelucreaza pentru a obtine solutia

a[10][10]=matricea de adiacenta a grafului

n=numarul de noduri

m=nr de muchii

i,j=variabile contor

k=da numarul nodului curent

ok=variabila din fct cond, ia doar valorile 0 sau 1 si are rol de adevar

b,y=varibile cu care stabilim unde se pune in matrice.

Figura 5- Testarea vecinatatii oraselor

(Sursa: http://software.ucv.ro/~cmihaescu/ro/teaching/ACA/docs/PCV.pdf, n.d.)

Figura 6 – Se verfică daca primul nod este diferit de ultimul

(Sursa: http://software.ucv.ro/~cmihaescu/ro/teaching/ACA/docs/PCV.pdf, n.d.

Figura 7 – Se testează dacă nu a mai fost vizitat orașul selectat

(Sursa: http://software.ucv.ro/~cmihaescu/ro/teaching/ACA/docs/PCV.pdf, fără an)

<3> In functia main() se citesc datele principale, n este numarul de noduri ale grafului, m este numarul de muchii ce se vor forma. Pentru fiecare muschie formam matricea de adiacenta inscriind 1 la intersectia coordonatelor b si y. In fapt definim daca exista drum de la b la y.

<2> In functia back() prin apeluri recursive incercam sa formam drumurile posibile. Tot în aceasta se apeleaza si functia anterioara care are rolul de reține condițiile de continuare. Ea retuneaza o viatabila ok care daca este 0 se decrementeaza si se caută altă soluție pentru satisfacerea cerinței.

<1> Cele 3 „if”-uri care compun funcția cond()reprezinta conditiile de continuare. În primă fază variabila care va fi returnată este pusă pe 1insa ea va putea, in cazul in care una dincele 3 conditii este indeplinita, valoare 0.

Instrumente necesare și configurare mediu de lucru

Android este o platforma open source pentru dezvoltarea si rularea de aplicatii mobile, dezvoltata de Google si Open Handset Alliance. Initial creata pentru telefoane mobile, Android a devenit o platforma majora de aplicatii pentru o gama larga de dispozitive mobile.

Scopul acestui post este de a descrie pașii necesari configurării mediului de dezvoltare astfel încât sa permită unui programator să înceapă să învete și să dezvolte aplicații mobile pentru Android.

Deoarece este o platformă foarte eficientă și atractivă pentru mulți dezvoltatori:

optimizată pentru dispozitive cu consum mic de energie și cu memorie virtuală mică;

suportă aplicații Java rulate de o mașina virtuală Dalvik;

Android a devenit una dintre platformele mobile importante, alaturi de Windows Mobile, Symbian, iPhone si J2ME (Java Mobile Edition).

are suport multimedia pentru grafică vectorială 2D, OpenGL, MP3, AAC si AVC;

nivel crescut al securitășii la nivelul aplicațiilor;

arhitectura pentru aplicații bazată pe componente ;

soluții de stocare a datelor bazate pe SQLite;

platforma open source bazate pe Linux;

portabilă pe o gama larga de platforme mobile;

Pentru a învăța și de a dezvolta aplicații Android aveți nevoie de țsolutia prezentată este pentru o platformă de lucru Windows):

Descarcarea și instalearea Java Development Kit (JDK),este recomandată versiunea 7, insa orice versiune incepand cu JDK 6.0 poate fi folosită. Puteti descarca JDK-ul de pe java.oracle.com. NU instalati doar JRE-ul (Java Runtime Environment), deoarece Eclipse si SDK-ul Android au nevoie de instrumente de dezvoltare incluse in JDK (Java Development Kit).

Chiar daca avem un sistem pe 64 de biți este recomandat sa instalati versiunea pe 32 de biti, deoarece exista încă unele probleme de compatibilitate în ceea ce priveste JDK-ul, Eclipse IDE si Android SDK.

Instalare Eclipse IDE. Utilizarea unui mediu de dezvoltare vizual de tip IDE nu este necesara, dar este recomandata, deoarece va salva o mulțime de timp si va permite să vă concentrați asupra soluției și mai puțin asupra modului în care se face compilarea, generarea soluției și execuția ei.

Eclipse este disponibil la adresa http://www.eclipse.org/ și ar trebui să se descarcarce Eclipse pentru dezvoltatori Java sau versiunea Classic Eclipse. La fel ca și in cazul JDK-ului, instalati versiunea pe 32 de biți.

Figura 8-Configurarea proiectului

Solutia (in unele cazuri) este de selecta butonul Back si dupa care Next pentru a reveni la faza de detectie a JDK-ului. Instalati SDK-ul Android intr-o locatie fixa, cum ar fi C:\Android.

Utilizand Android SDK Manager (instalat la pasul anterior) descarcati Android SDK Components, care includ diferite instrumente de dezvoltare, documentatia, platforme Android, librarii externe, driver-ul USB pentru Windows si exemple de aplicatii.

Cand SDK Manager-ul porneste, va verifica automat resursele disponibile de descarcat si update-uri pentru cele existente. Gestiunea componentelor de descarcat se face selectand categoria Available packages in fereastra Android SDK Manager-ului.

Figura 9-Descarcarea librariilor prin SDK Manager

Instalarea ADT (Android Development Toolkit) Plugin pentru Eclipse:in meniul aplcatiei Eclipse, selectatăm Help > Install New Software…;facem clic pe butonul Add, aflat șn colțul din dreapta-sus în formularul Add Repository, introducem “Android ADT Plugin “( pentru Name și urmatoarea adresa URL pentru Location:

https://dl-ssl.google.com/android/eclipse/

clic pe OK; daca avem probleme la descarcarea plugin-ul, incercam sa utilizam protocolul “http” in adresa URL, in loc de “https“;

in fereastra de dialog Available Software, selectăm checkbox-ul de lângă Developer Tools si facem clic pe Next;

Figura 10-Instalare ADT

Dupa ce am executat pașii specificași mai sus am repornit Eclipse rezulatatul fiind cel astept, adica un mediu de lucru corect configurat.

Application Programming Interface

Application Programming Interface (prescurtat API) reprezintă denumirea în limba engleză a unei interfețe pentru programarea de aplicații. De obicei este vorba despre interfața dintre programele de aplicație și sistemul de operare, care stabilește în amănunt modul în care programele de aplicație pot accesa (apela) serviciile sistemului de operare sub care rulează.

O librărie API poate fi privită ca un set de funcții puse la dispoziția programatorilor în sensul efectuării unor anumite operații sau sarcini. De exemplu, există API-uri ce permit programatorilor să introducă în aplicațiile pe care le dezvoltă facilități de recunoaștere facială. Programatorul respectiv nu trebuie să cunoască în detaliu mecanismele ce stau în spatele recunoașterii faciale. El trebuie doar să știe cum să utilizeze corect funcțiile puse la dispoziție prin API-ul respectiv.

Librăriile API conțin fișierele cu definițiile funcțiilor utilizate de producătorul respectiv, librăriile statice necesare în momentul compilării sau librăriile dinamice necesare în monentul rulării. API-urile conțin de asemenea instrucțiuni necesare programatorilor în ceea ce privește apelul funcțiilor sau compilarea codului sursă

Pentru a utiliza Google Maps aveți nevoie pentru a crea o adresa Google Maps API-key. Cheia este gratuită, îl puteți folosi cu orice aplicații care apelează API Maps, si suporta un numar nelimitat de utilizatori.Ai această cheie, prin intermediul consolei Google API . Trebuie să furnizeze cheia semnătură aplicare și numele pachetului de aplicare.

Aceasta se bazează pe cheia cu care mă conecteaza aplicația Android timpul de implementare. In timpul dezvoltarii cu Eclipse, ne creează automat și utilizează o cheie de depanare.

Crearea SHA-1 pentru cheie de semnătură

Cheia de semnătură Eclipse poat fi găsite în user/.android/debug.keystore dosar. Pentru a crea SHA-1 se folosesțe comanda din figura de mai jos:

Figura 12-Comandă pentru semnătura SHA-1

Înregistra cu Consola Google API

Trebuie să te înregistrezi în API-uri Consola Google pe care doresc să o utilizazez in Google Maps pentru Android. Pot ajunge la această consolă prin link-ul următor: Google Consola API . Selectez aici intrarea Services. Activez API v2 Google Maps Android.

Figura 13-Activarea Google Maps API V2

Creeaza cheie pentru aplicația mea

Este nevoie să imi înregistrez aplicația prin intermediul amprentei cheii de semnătură generate anterior. Pentru aceasta selectați intrarea și faceți clic pe intrarea API Access. Ulterior faceți clic pe Create new cheie de intrarea.

Introduceți SHA-1 amprentă și pachetul de cererea dumneavoastră separate prin punct și virgulă. De exemplu, puteți folosi com.maps.pachetul.

Figura 14-Creare API key

Modulul android. Elemente componenete

Un proiect Android are la bază un sistem de directoare ierarhizate, la fel ca și un proiect Java. Cu toate acestea, particularitățile sunt unice pentru Android. Pentru a crea o aplicație trebuie să înțelegem modul în care este structurat acesta:

src – este directorul în care vom găsi codul Java aferent proiectului nostru;

gen – în acest director, Android va stoca codul generat pentru rularea proiectului;

assets – conține toate fișierele pe care dorim să le includem în proiect;

res – este un director care conține resursele aplicației precum: elemente grafice, designul aplicației sau descrierea unor elemente din aplicație. Acesta este împărțit la rândul său în mai multe directoare:

res/drawables/ – pentru imagini;

res/layout/ – pentru fișiere XML care descriu interfața utilizator;

res/menu/ – specificațiile XML pentru meniurile din aplicație;

res/values/ – pentru șiruri de caractere, matrici sau alte elemente asemănătoare;

În funcție de particularitățile proiectului, putem adăuga în acest director orice elemente de care avem nevoie în aplicație.

AndroidManifest.xml – acest fișier XML conține descrierea aplicației, ce activități, servicii include sau ce permisiuni necesită aplicația pentru a rula.

În momentul în care compilăm proiectul prin intermediul Eclipse sau orice alt IDE fișierele rezultate în urma acestei acțiuni le vom găsi în directorul bin/ din rădăcina proiectului nostru, după cum urmează:

bin/namespace/ – clasele Java compilate, unde namespace reprezintă numele pachetului specificat la crearea proiectului;

bin/classes.dex – reprezintă un fișier executabil creat din clasele compilate;

bin/resources.ap_ – acest fișier este o arhivă a resurselor aplicației noastre;

bin/NumeAplicatie.apk – aceast fișier este aplicația noastră, care va fi instalată pe dispozitivul mobil.

Platforma Android ne oferă o mare flexibilitate în construirea interfeței utilizator. Putem folosi doar una din cele două metode sau le putem combina pentru a realiza exact ceea ce ne dorim. Spre exemplu, putem defini structura de bază a interfeței în fișierul XML, iar apoi putem adăuga cod în aplicația noastră pentru a adăuga noi obiecte, sau pentru a le modifica pe cele deja definite în fișierul XML.

Avantajul definirii elementelor unei interfețe prin metoda XML este separarea interfeței de codul care controlează elementele definite. Asta înseamnă că implementarea aplicației este mult mai logică și mai ușor de urmat, ori de câte ori va fi nevoie să modificăm un element din interfață nu va trebui decât să îi ajustăm proprietățile din fișierul XML.

Un lucru foarte la îndemână în platforma Android este sintaxa XML pentru definirea elementelor UI. Acestea respectă aceleași reguli de definire ca și clasele sau metodele din cod, unde numele clasei corespunde cu numele obiectului iar numele metodei corespunde cu atributele pe care le acceptă obiectul.

Extensible Markup Language (XML)

Extensible Markup Language (XML) este un set de reguli pentru codificare a documentelor în formă de citire optică. XML este un format popular pentru schimbul de date pe internet. Site-uri care actualizează frecvent conținutul lor, cum ar fi site-uri de știri sau bloguri, oferă adesea un feed XML, astfel încât programele externe pot ține pasul cu schimbările de conținut. Încărcarea și date parsing XML este o sarcină comună pentru aplicațiile conectate la rețea. Această lecție explică modul de analiza documentelor XML și de a folosi datele lor.

O aplicație Android care utilizează Google Maps API Android ar trebui să specificați următoarele setări în dosarul său manifest, AndroidManifest.xml : o referință la Google versiunea servicii Play.

Folosind vocabularul Android XML, avem posibilitatea să proiectăm rapid machete UI și elementele de ecran pe care le conțin, în același mod în care a creăm pagini web în HTML – cu o serie de elemente.

Fiecare dosar trebuie să conțină exact aspect un element rădăcină, care trebuie să fie o View sau ViewGroup obiect. După ce am definit elementul rădăcină, putem adăuga obiecte suplimentare de aspect sau widget-uri ca elemente copil pentru a construi treptat o ierarhie. De exemplu, în figura de mai jos este un aspect XML care utilizează o verticală LinearLayout a organiza o TextView și un Button :

Figura 16-Aspect XML

După ce am declarat aspect în XML, salvăm fișierul cu .xml extensia, în proiectul dumneavoastră Android res/layout/ director, asa ca va compila corect.

Când compilăm aplicația, fiecare fișier XML este compilat într-un View resursă. Va trebui să încarc resursa aspectul de la codul de cerere, în Activity.onCreate() punerea în aplicare de apel invers. Fac acest lucru prin apelarea setContentView() , care trece aceasta referirea la resursa aspect în formă de: R.layout. layout_file_name . De exemplu, dacă schema de XML este salvat ca main_layout.xml , v-a încărca pentru activitatea mea astfel:

Figura 17-Apelare XML

onCreate() metoda de apel invers din activitatea mea este numit de cadrul Android atunci când este lansat activitatea .

Atribute

Fiecare View și ViewGroup obiect suportă propria lor varietate de atribute XML. Unele atribute sunt specifice unui obiect (de exemplu, TextView susține atributul TextSize), dar aceste atribute sunt, de asemenea, moștenite prin orice View care se poate extinde această clasă. Unele sunt comune tuturor View-urilor, deoarece acestea sunt moștenite de la rădăcină View clasa (cum ar fi id). Și alte atribute sunt considerate "parametri de aspect", care sunt atributele ce descriu anumite orientări aspect ale obiectului View, astfel cum sunt definite prin obiect ViewGroup.

ID

Orice obiect View poate avea un Id întreg asociat cu acesta, pentru a identifica în mod unic. În cazul în care cererea este compilat, acest ID este menționată ca un întreg, dar ID-ul este de obicei atribuit în aspectul fișierul XML ca un șir. Acesta este un atribut XML comun tuturor View obiect (definite de clasa View). Sintaxa pentru o identitate, în interiorul un tag XML este:

android: id = "+ id / my_button"

La simbol (@), la începutul șirului indică faptul că analizorul XML trebuie să analizeze și să extindă în restul șirului identitate și să identifice o ca o resursă de identitate. Plus-simbol (+) înseamnă că aceasta este o nouă denumire resursă care trebuie create și adăugate la resursa mea (în R.java dosarul). Există o serie de alte resurse de identitate, care sunt oferite de cadrul Android. Când se face referire la un Id Android resursă, nu avem nevoie, plus-simbol, dar trebuie să adăugăm in android de nume, cum ar fi așa:

  android: id = "@ android: id / gol"

Cu android de nume pachet în loc, fac referire la o identitate pe android.R clasa resurse, mai degrabă decât clasa resursele locale.

Definirea Id-uri pentru vizualizare obiecte este important atunci când creăm unu RelativeLayout . Într-un aspect relativ,se poate defini aspectul lor în raport cu un alt ecran, care este referit de Id-ul unic.

Parametrii Layout

Atributele unui XML numit layout_ something definește parametrii de layout pentru ViewGroup în care se află.

Fiecare clasă ViewGroup implementeaza o clasă care se extinde ViewGroup.LayoutParams . Aceasta clasa contine tipurile de proprietate care definesc dimensiunea și poziția pentru fiecare vizualizare, în funcție de grupul de vizualizare. După cum puteți vedea în, grupul de vedere „mamă” definește parametrii de layout pentru fiecare vizualizare „copil” (inclusiv vedere grupul copil).

Figura 18 Vizualizarea ierarhie cu parametrii aspect asociate cu fiecare vizualizare

(Sursa: http://developer.android.com/images/layoutparams.png)

Este bine de reținut că fiecare subclasă LayoutParams are propria sintaxă pentru stabilirea valorilor. Fiecare element „copil” trebuie să definească LayoutParams care sunt potrivite pentru mamă, deși poate defini, de asemenea, diferite LayoutParams pentru proprii „copii”.

În general, specificând o lățime aspect și înălțime folosind unități absolute, cum ar fi pixeli nu este recomandată. În schimb, folosind masuratori relative, cum ar fi unități de densitate independent pixeli (DP), wrap_content, sau match_parent, este o abordare mai bună, pentru că ajută la afișarea în mod corespunzător într-o varietate de dimensiuni de ecran dispozitiv. Tipurile de măsurare acceptate sunt definite în resurselor disponibile documentului.

JSON(JavaScript Object Notation)

JSON este un acronim în limba engleză pentru JavaScript Object Notation, și este un format de reprezentare și interschimb de date între aplicații informatice. Este un format text, inteligibil pentru oameni, utilizat pentru reprezentarea obiectelor și a altor structuri de date și este folosit în special pentru a transmite date structurate prin rețea, procesul purtând numele de serializare. JSON este alternativa mai simplă, mai facilă decât limbajul XML. Eleganța formatului JSON provine din faptul că este un subset al limbajului JavaScript (ECMA-262 3rd Edition) , fiind utilizat alături de acest limbaj.

Tipuri de bază JSON sunt:

Numar: un număr zecimal, care poate conține o parte fracționară și pot folosi o exponențială . JSON nu permite non-numere , nici nu face nici o distincție între întreg și în virgulă mobilă. (Chiar dacă JavaScript utilizează un format in virgula mobila dubla precizie pentru toate valorile numerice, alte limbaje de punere în aplicare a JSON poate codifica numere diferit)

String : o secvență de zero sau mai multe caractere. Siruri de caractere sunt delimitate cu semne dublu-ghilimele .

Boolean : oricare dintre valorile true sau false

Array : o listă ordonată de zero sau mai multe valori, fiecare dintre ele putând fi de orice tip.

Obiect: o colecție neordonată de perechi nume / valoare în cazul în care numele sunt siruri de caractere. Deoarece obiectele sunt destinate să reprezinte tablouri asociative , se recomandă, deși nu este necesar, că fiecare cheie sa fie unică în cadrul unei obiect. Obiectele sunt delimitate cu acolade și de virgule pentru a separa fiecare pereche

null : O valoare gol, folosind cuvântul null

JSON ignoră în general orice spații în jurul sau între elemente sintactice (valori și semne de punctuație, dar nu în cadrul unei valori string). Cu toate acestea JSON recunoaște doar patru caractere specifice spații albe: spațiul, fila orizontală, conducta de alimentare, și să se întoarcă de transport. JSON nu furnizează sau permite orice fel de comentarii sintaxă.

Figura 19-Schemă JSON

(Sursa: http://safehammad.com/wp-uploads/2010/10/json-rest3.png)

Precizați permisiuni

Specifica permisiunile nevoile de aplicare, prin adăugarea <uses-permission> elemente ca copiii ale <manifest> elementul.Trebuie să adăugați următoarele permisiuni pentru a utiliza API-ul Google Maps Android:

android.permission.INTERNET -folosit de API pentru a descărca hărți dale din serverele Google Maps.

android.permission.ACCESS_NETWORK_STATE -permite API pentru a verifica starea conexiunii, pentru a stabili dacă datele pot fi descărcate.

android.permission.WRITE_EXTERNAL_STORAGE -permite API a cache datele hărții țiglă în zona de stocare extern dispozitivului.

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Android oferă două permisiuni locul de amplasare:

ACCESS_COARSE_LOCATION

ACCESS_FINE_LOCATION

Permisiunea pe care o alegeți determină acuratețea locul returnat de API. Trebuie doar să solicite una dintre Android permisiunile de localizare, în funcție de nivelul de precizie care aveți nevoie:

android.permission.ACCESS_COARSE_LOCATION- Permite API de a folosi date WiFi sau celule mobile (sau ambele) pentru a determina locația dispozitivului. API revine locația cu o precizie de aproximativ echivalent cu un bloc în oraș.

android.permission.ACCESS_FINE_LOCATION -Permite API pentru a determina cât mai precis o locație în care este posibil din furnizorii de localizare disponibile, inclusiv Global Positioning System (GPS), precum și datele WiFi și de celule mobile.

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Google Maps API Android folosește OpenGL ES versiunea 2 pentru a face harta. Dacă OpenGL ES versiunea 2 nu este instalat, harta dvs. nu va apărea. Se recomandăm să adăugați următoarea <uses-feature> elementul ca un “copil” al <manifest> in AndroidManifest.xml :

Figura 20-Folosirea OpenGL ES

Acest notifică servicii externe ale cerinței. În special, acesta are ca efect împiedicarea Google Play Store afișarea aplicația pe dispozitive care nu acceptă OpenGL ES versiunea 2.

Cel mai simplu mod de a testa că cererea dumneavoastră este configurat corect este de a adăuga o hartă simplă. Va trebui să facă schimbări în două fișiere: fișierul XML care definește aspectul aplicației, iar principalul fișierul activitate Java.

Vă rugăm să rețineți că codul de mai jos este doar util pentru testarea setările într-o aplicație care vizează API Android 12 sau mai târziu. Acest cod nu trebuie să fie utilizat într-o aplicație de producție. Exemple de cum să adăugați codul de mai robust apar pe parcursul acestui ghid și în codul de probă .

Adăugați următorul fragment din dosarul aplicației XML aspect. Dacă ați creat o aplicație folosind instrumente Android Developer (ADT) în Eclipse, dosarul se află la res/layout/activity-main.xml . Se inlocuiesteo parte din conținut al acelui fișier cu următorul cod.

Figura 21- Fragment-ul unde apare harta

Se adaugă următorul cod în MainActivity.java , iar prin implementarea codurilor de mai sus va aparea o harta cu locatia din acel moment a utiliztorului.

Figura 22-Codul pentru harta din Main Activity

Conectare baza de date

În acest capitol, voi explica, cum pot integra PHP si MySQL cu aplicația Android. Acest lucru este foarte util în cazul în care aveți un server de web, și doriți să accesați datele de aplicație Android.

MYSQL este folosit ca bază de date la serverul web și PHP este utilizat pentru a prelua date din baza de date. Aplicația noastră va comunica cu pagina PHP cu parametrii necesare și PHP va contacta baze de date MySQL și va aduce rezultatele și a reveni la rezultatele la noi.

?php

$con=mysqli_connect("example.com","username","password");

$sql="CREATE DATABASE my_db";

if (mysqli_query($con,$sql))

{

echo "Database my_db created successfully";

}?>

Se creeaza o clasă interfață client / server care este folosit pentru a obține date de la server. Noi folosim PHP pentru a crea obiectul JSON si folosim datele JSON în cererea de telefonie mobilă.

Figura 23-Preluarea punctelor din baza de date

Pentru a face conectarea la script PHP, vom folosi protocolul HTTP de la sistemul Android. Pentru a pune în aplicare ar trebui să aibă cunoștințe de bază a modului de a rula script PHP. Dacă vorbim despre arhitectura client-server, client este un dispozitiv Android și în partea de server este o combinație de PHP si MySQL .

Vom folosi format JSON (JavaScript Object Notation). JSON este un standard deschis ușor bazat pe text concepute pentru schimbul de date de lecturat.

Aplicație Android -Când va executa, se va conecta la dispozitiv :

PHP Script va descărca datele din baza de date. Acesta va codifica în format JSON și trimiteți-l la aparat.

cererea Android va primi aceste date codificate. Acesta va analiza datele și afișa pe dispozitiv Android.Aici este detaliu de implementare.

Pentru a prelua coordonatele punctelor vom avea urmatorii pasi:.

conectarea la baza de date

executați o interogare SQL

Realizarea conexiunii

Pentru ca dispecerul sa stie in orice moment unde se afla masina pe teren vom trimite din 5 in 5 secunde cordonatele noastre catre baza de date Mysql.Acest lucru se realizeaza tot printr-un fisier PHP. Un alt lucru essential pe care aplicatia noastra il realizeaza este acela ca nu se tine cont de ordinea introducerii a punctelor in baza de date aplicatia optimizand ruta in asa fel sa fie cea mai scurta ruta si a se ajunga im punctul de plecare fara a trece de doua ori prin acelasi punct.

Figura 24-Sintaxă trimitere coordonate MySql

Direcții de dezvoltare

Planurile noastre de viitori sunt acelea de a crea din această aplicație una cât mai complexă care sa mulțumeasca clienții. Dorim să ne extindem și spre categoria de firme de transport marfuri si persoane.

Principalele target-uri pe care ni le propunem să le aducem aplicației sunt:

controlul activ al parcului auto prin urmarirea in timp real a activitatii intregii flote prin urmarirea on-line printr-un browser web verificarea, prin rapoarte automate presetabile, flotei prin GPS: localizare, traseu- itinerariu, stationare, viteza, timpi de stationare etc. 
autentificarea soferilor sau manipulantilor inainte de fiecare calatorie

prelungirea duratei de viașa și diminuarea uzurii parcului auto datorită eliminării cazurilor de viteza excesivă 

reducerea costurilor operationale cu flota auto (15-25%) prin eliminarea timpilor de staționare nejustificați, alocarea eficientă a mașinilor pe traseu și diminuarea cheltuielilor cu piesele auto si service-ul printr-o utilizare rationala a flotei 

montat impreuna cu o sonda litrometrica, măsoara nivelul de combustibil din rezervor și eventualele furturi de carburant, in  timp real

securitatea mașinilor, Casco redus din cauza riscului scazut de furt

planificare optima și în avans a curselor sau deplasarilor prin alegerea eficientă a vehiculelor disponibile pentru un nou traseu cunoscand pozițiile și starea acestora

se pot detecta toate cursele in înteres personal, in timpul sau în afara programului de lucru reducerea perioadei de inactivitate a angajaților.

Concluzii

În multe afaceri avem nevoie de soluții rapide, într-un timp destul de scurt. Prin apariția de tehnologii inteligente se elimină, tot mai mult, metodele tradiționale care presupun utilizarea, în exces a hârtiei și instrumentelor clasice de scris în efectuare de calcule. Apariția dispozitivelor mobile a reprezentat o revoluție în această perioadă. Această revoluție aduce efecte pozitive mediului de bussiness, dar nu numai.

Într-un domeniu ce presupune comunicarea la distanță între un dispecer și un șofer, apelarea la conversațiile prin telefon, transmitere de mesaje, mailuri etc, poate duce la diverse neplăceri, datorate și interpretării greșite a mesajului transmis, dar poate chiar și lipsei de reacție a receptorului.

În astfel de companii, putem recurge la sisteme inteligent ce permit detectarea geolocației, sau chiar ghidarea pe anumite trasee (în funcție de anumite puncte), aspecte care ar putea duce la câștiguri la nivelul veniturilor din încasări, reducerea timpului pierdut între destinații, reducerea cheltuielilor cauzate de situații excepționale (greșire traseu, traseu ce nu îndeplinește condițiile de optim, etc.).

Prin aplicația pe care am creat-o ne propunem să eliminăm o serie de probleme ce ar putea să apară în activitatea unei firme de prestări servicii, ce presupune deplasări la diverse adrese ale clienților. Prin intermediul aplicației, se dorește valorificarea avantajelor pe care TIC le oferă în creșterea vitezei și preciziei de rezolvare a unor probleme de optimizare prin:

– stabilirea rutei pentru angajatul care se ocupă cu service-ul propriu-zis;

– reconfigurări rute, în funcție de necesități, dar și de disponibilitatea angajatului;

– notificări în timp real cu privire la modificări rute;

– vizualizare, în timp real a poziției mașinii, factor decisiv în luarea anumitor decizii;

– posibilitatea vizualizării în detaliu a diferitelor adrese;

– posibilitatea de comunicare bidirecțională șofer-dispecer, prin intermediul aplicației;

– posibilitate amânare rezolvare problemă.

Toate aceste elemente contribuie la o eficientizare a activității firmei, prin creșterea eficienței fiecărui angajat. Prin folosirea unei astfel de aplicații putem vorbi de o atingere a optimului la nivel de venituri, cheltuieli, dar și timp (componentă care un impact mare atât asupra cheltuielilor, cât și a veniturilor).

Bibliografie

Carte

Luke Welling, Laura Thomson "Dezvoltarea aplicatiilor WEB cu PHP si MySQL ", Editura TEORA, 2010

Eugen Petac, Cristina Serban, "Informatica aplicata. Programare in Java ", Editura Matrixrom, 2010

Stefan Tanasa, Cristian Olaru, Stefan Andrei, " Java de la 0 la expert", Editura Polirom, 2011

Vikram Vaswani, " MySQL. Utilizarea și administrarea bazelor de date MySQL", Editura Rosetti Educational, 2010

Resursa din Internet:

Cristian Frasinaru, " Curs practic de Java ", https://java.net/downloads/jdf/Cristian_Frasinaru-Curs_practic_de_Java.pdf, [accesat la 14.03.2015]

Sndroidhive, " Android working with Google Maps V2", http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/, [accesat la 19.02.2015]

Tekguc, " Google Android Map v2-Step by Step ", http://umut.tekguc.info/en/content/google-android-map-v2-step-step, [accesat la 20.06.2015]

Android Developers, " SDK Tools Release Notes", http://developer.android.com/tools/sdk/tools-notes.html, [accesat la 01.04.2015]

Google Developers, " Google APIs for Android", https://developers.google.com/android/, [accesat la 06.02.2015]

Google Developers, " Google Maps API", https://developers.google.com/maps/articles/geolocation, [accesat la 06.02.2015]

Eclipse Community " Eclipse", https://eclipse.org/users/, [accesat la 01.04.2015]

Similar Posts