Stap 7: ANDRIOD TOEPASSINGSONTWERP
Introductie
Deze toepassing zal zijn verantwoordelijk voor de communicatie van gateway via Wi-Fi. Eerst zal vragen voor login en wachtwoord dus dat onbevoegde gebruiker zal niet kunnen gebruiken. Vervolgens stuurt deze opdracht voor specifieke gegevens zoals vereist door de gebruiker en vervolgens het zal tonen de gegevens verzenden door gateway in andere vorm. Er zijn verschillende knoppen voor verschillende soorten gegevens worden weergegeven, op elke klik een specifieke opdracht zal worden verstuurd, zodat die gateway zal erkennen dat welke gegevens worden verzonden naar de gebruiker van de Database. Er is ook voorziening voor het draaien van ON en OFF de meter volgens de behoeften van de gebruikers van toepassing. Deze meter is slim in de zin dat we een limiet van energieverbruik kunt instellen in de toepassing die de meter stuurt deze limiet naar gateway, gateway zal bijhouden van energieverbruik bij het bereiken van die grens automatisch de toestellen uitzetten zal.
In de bovenstaande afbeelding zien we dat Meter1 is ingeschakeld terwijl Meter2 is niet, dus wij zal zitten kundig gebruik van de knoppen van 1 meter alleen; Knoppen aan meter 2 gerelateerde zijn uitgeschakeld om te voorkomen dat ze onbedoeld gebruik. Ook zijn er drie knoppen voor het verzenden van opdrachten voor het ophalen van de huidige gebruiksgegevens, gebruik van de gegevens van eerdere weken van de huidige maand en de vorige dag gegevens verbruik. Er is ook een schakeloptie voor elke meter in te schakelen en af, dit zorgt ervoor dat het toestel aan/uit worden omgezet naar onze wens. Het huidige gebruik op hetzelfde scherm getoond en de gegevens die worden getoond zijn macht, spanning, stroom en energie. De andere opdrachten zal ertoe leiden dat gegevens worden weergegeven op verschillende activiteiten in de vorm van grafieken. Aan de onderkant is het tekstvak vast te stellen voor de maandelijkse consumptie, op de onderstaande knop die dat het energieverbruik van vorige maand aantonen zal.
We hebben Achartengine bibliotheek die we moeten kopiëren in de libs map van project en wij moeten haar grafische activiteit in onze mainfest-bestand toevoegen gebruikt voor het weergeven van gegevens in de vorm van grafieken. We hebben Achartengine gebruikt omdat het is gratis, lite en verschillende soorten grafieken ondersteunt.
Om de opdracht gegevens verzenden en ontvangen die we gebruik van Stream Sockets gemaakt hebben, omdat in het geval van UDP mogelijk sockets er kans dat gegevens kunnen worden verloren die zal ertoe leiden dat de toepassing zich abnormaal gedraagt. Gegevens verzenden en ontvangen is een tijdrovend proces, dus voor elke communicatie die een draad worden aangemaakt, communicatie in de bijbehorende afhandelingsroutine gebeuren zal en resultaten zullen worden gepubliceerd door haar jaagbare in rode draad. Op het einde van elke thread zal een socket ook gesloten zijn. Ook hebben we enkele achtergrondafbeeldingen, die dient te zijn van de gekopieerde /bin/res/drawable-mdpi map gebruikt.
ANDROID WIDGETS GEBRUIKT-
1. TEKSTVAKKEN - om verschillende berichten weer te geven.
2. INVOERVAKKEN – om Input voor de gebruiker.
3. knoppen – actie uit te voeren sommige dienovereenkomstig.
4. SWITCHES – voor het inschakelen en apparatuur uit.
5. WISSELKNOPPEN – te voeren actie op knevel op / weg van een knevel.
6. relatieve lay-out-te regelen van diverse widgets op het scherm.
7. lineaire indeling – te regelen van diverse widgets op het scherm.
VERSCHILLENDE API- & methoden gebruikte-
1. findViewById
2. onClick
3. onPause
4. onResume
5. onKeyDown
6. onCheckedChange
7. setOnClickListener
8. setOnCheckedChangeListener
9. startActivity
10. putExtra
11. getExtra
12. en nog veel meer
Mechanismen die worden gebruikt
SOCKETS - Sockets zijn een methode van IPC waarmee gegevens worden uitgewisseld tussen toepassingen op dezelfde host (computer) of op andere hosts die zijn verbonden door een netwerk.
Sockets bestaan in een domein van de mededeling, dat bepaalt:
1. de methode van identificatie van een socket (dat wil zeggen, het formaat van een socket 'adres')
2. en het bereik van communicatie (dat wil zeggen, of tussen toepassingen op dezelfde host tussen toepassingen op verschillende hosts die zijn verbonden via een netwerk).
SOCKET typen-zijn twee soorten
1. TCP Socket
2. UDP-Socket
We hebben gebruikt TCP Socket wijten aan-
TCP-Sockets bieden een betrouwbare, bidirectionele, bytestream communicatiekanaal. Met de termen in deze beschrijving, bedoelen we het volgende: betrouwbaar betekent dat wij gegarandeerd dat ofwel de toegezonden gegevens komt intact aan de ontvangende toepassing, precies zoals het werd verzonden door de afzender (ervan uitgaande dat de netwerkkoppeling noch de ontvanger vastloopt), of dat we krijgt de melding van een waarschijnlijke mislukking in transmissie.
Bidirectionele betekent dat gegevens in beide richtingen tussen twee sockets kunnen worden overgebracht. Byte-stream betekent dat, zoals met pijpen, er geen concept van bericht grenzen is.
DRADEN - All de netwerk verwante taak moet niet worden uitgevoerd in rode draad omdat dan onze applicatie wordt onverantwoordelijkheid. Dus moeten we gebruiken
1. asynchrone taak of
2. draden
We hebben hier Threads gebruikt, voor elke klik een netwerkbewerking uit te voeren een draad worden aangemaakt die verantwoordelijk zal zijn voor gegevensoverdracht. Wij moeten tevens voor elke thread een handler en een uitvoerbare methode uit te voeren.
HANDLER - Handlers worden gebruikt voor het plannen van de acties in de draad, in brede zin kunnen we zeggen dat het wachtrijen de lijst met acties die moeten worden uitgevoerd. Of enqueue een actie moet worden uitgevoerd op een andere thread.
JAAGBARE – deze worden uitgevoerd op een bepaald punt in de toekomst, van een handler die we niet direct kunnen onze gebruikersinterface voor moeten we runnables.