Wat is de beste taal om te schrijven voor Android. Een Android-applicatie schrijven met Android Studio
Gegroet, beste fans van het Android-besturingssysteem. In het artikel van vandaag zal ik proberen een zeer interessant onderwerp zo volledig mogelijk te behandelen: een selectie van tools voor het maken van je eigen applicatie (online) voor gadgets gebaseerd op het populaire Android-besturingssysteem.
Met de ontwikkeling van mobiele technologieën ontwikkelt zich ook de markt voor mobiele applicaties, inclusief de markt voor mobiele applicaties voor het Android OS. Als voorheen alleen een gevorderde programmeur met een dikke bril en die vijf jaar universitaire studie had afgerond een aanvraag kon indienen, is deze mogelijkheid nu beschikbaar voor iedereen die volledig onbekend is met programmeertalen, en ook zonder de verbinding met internet te verbreken, d.w.z. online.
In de collectie vindt u vier tools waarmee u snel en eenvoudig een applicatie kunt maken. Alle voorgestelde tools zijn vergelijkbaar met bouwpakketten, je moet je eerste applicatie samenstellen uit verschillende kant-en-klare componenten, je kunt een applicatie maken op dezelfde manier als je een Lego-constructor assembleert.
Alle instrumenten werden geselecteerd op basis van de volgende criteria:
- Gebruiksgemak. Omdat een dergelijk hulpmiddel voornamelijk zal worden gebruikt door mensen die niet bekend zijn met programmeren en complexe elementen, werd bij deze kleine selectie de nadruk vooral gelegd op het gemak en gebruiksgemak van de voorgestelde hulpmiddelen;
- Intuïtieve interface. Dit punt en deze voorwaarde volgen logischerwijs uit het vorige. Naast het feit dat de interface van de tool voor het maken van applicaties voor het Android OS (Android) eenvoudig moet zijn, moet deze ook intuïtief zijn;
- Mogelijkheden. Hoe meer verschillende dingen een tool “kan” doen, hoe beter. In wezen hebben alle gepresenteerde applicaties dezelfde set tools, met kleine verschillen en wijzigingen.
Dus laten we schrijven, laten we beginnen met het maken van de applicatie (de hele applicatie kan online worden gemaakt), hieronder kunt u vertrouwd raken met de selectie van softwareproducten en de handigste en meest functionele tool voor uzelf kiezen.
DeAppBuilder
Een goed hulpmiddel voor het maken van applicaties. Het goede nieuws is ongetwijfeld dat u deze tool helemaal gratis kunt gebruiken. Het nadeel is dat dit softwareproduct de Russische taal niet ondersteunt, maar als je op school tenminste een beetje Engels hebt gestudeerd, dan zouden er geen problemen moeten zijn bij het gebruik van TheAppBuilder. Van alle kenmerken van dit softwareproduct wil ik het volgende opmerken::
- Grote selectie sjablonen voor het maken van uw Android-applicaties. Als u een eenvoudig programma wilt maken, kunt u uit de voorgestelde sjabloonopties eenvoudig het gewenste programma selecteren;
- De mogelijkheid om gedetailleerde statistieken te bekijken over de applicatie die u heeft gemaakt;
- Eenvoudige en duidelijke publicatie van de door u gemaakte applicatie op Google Play.
AppsGeiser
Nog een goed hulpmiddel van hoge kwaliteit dat veel aandacht verdient. Zoals ik hierboven al zei, hoef je om )) niet voor Android te kunnen programmeren; alles in dit programma is zo eenvoudig dat je binnen een paar minuten een applicatie voor je project kunt maken, simpelweg door het uit de onderdelen samen te stellen. van de ‘constructeur’. Hieronder kunt u vertrouwd raken met de mogelijkheden van de voorgestelde tool.:
- Een groot archief met sjablonen over verschillende onderwerpen: restaurants, pizzeria's, fotostudio's, vakanties, sport, radio, vrachtvervoer en vele, vele andere sjablonen. U hoeft alleen maar de juiste te selecteren en deze te bewerken zodat deze aan uw behoeften voldoet;
- Ingebouwde tools om uw nieuwe applicatie te promoten. Soms moet u veel moeite en tijd besteden aan het promoten en promoten van uw nieuwe applicatie. Ingebouwde promotietools in de builder kunnen uw taak eenvoudiger maken;
- De mogelijkheid om uw programma te koppelen aan een advertentienetwerk, zodat u geld kunt verdienen met de applicaties die u maakt.
AppsMakerstore
Een zeer eenvoudige tool voor het maken van programma's voor uw Android-besturingssysteem. Het grote voordeel van deze applicatie is dat je in één keer een applicatie kunt maken voor zes verschillende mobiele besturingssystemen. Andere voordelen van deze tool zijn onder meer::
- Mogelijkheid om online met de ontwerper te werken;
- Het is mogelijk om een gratis account te registreren;
- Een groot archief met sjablonen voor uw Android-applicatie; u kunt met twee klikken de benodigde applicatie schrijven.
Dat is alles voor vandaag. Ik hoop dat je het juiste hulpmiddel voor jezelf hebt gekozen en weet hoe je je eerste aanvraag moet doen. We schrijven ook onze mening in de opmerkingen bij dit materiaal.
In elk bedrijf is het begin het moeilijkste. Het is vaak moeilijk om in de context te komen, en dat is wat ik tegenkwam toen ik besloot mijn eerste Android-applicatie te ontwikkelen. Dit artikel is voor degenen die willen beginnen, maar niet weten waar.
Het artikel behandelt de gehele ontwikkelingscyclus van applicaties. Samen gaan we een eenvoudig Tic-Tac-Toe-spel schrijven met één scherm (in Android OS heet dit Activiteit).
Gebrek aan ervaring met Java-ontwikkeling mag geen obstakel zijn voor het beheersen van Android. De voorbeelden zullen dus geen Java-specifieke constructies gebruiken (of ze zullen zoveel mogelijk worden geminimaliseerd). Als je bijvoorbeeld PHP schrijft en bekend bent met de fundamentele principes van softwareontwikkeling, zal dit artikel voor jou het nuttigst zijn. Omdat ik geen expert ben op het gebied van Java-ontwikkeling, kan er op mijn beurt worden aangenomen dat de broncode niet in aanmerking komt voor het label “best practices voor Java-ontwikkeling”.
Het installeren van de benodigde programma's en hulpprogramma's
Ik zal de benodigde hulpmiddelen opsommen. Er zijn er 3:
- IDE met ondersteuning voor Android-ontwikkeling:
- Eclipse + ADT-plug-in;
- IntelliJ IDEA Community-editie;
- Netbeans + nbandroid-plug-in;
De hulpprogramma's worden geïnstalleerd in de hierboven aangegeven volgorde. Het heeft geen zin om alle genoemde IDE's te installeren (tenzij u problemen ondervindt bij het kiezen van de juiste). Ik gebruik IntelliJ IDEA Community Edition, een van de meest geavanceerde IDE's voor Java die momenteel beschikbaar zijn.
Een virtueel apparaat starten
Nadat u AVD Manager hebt gestart en aanvullende pakketten hebt geïnstalleerd (SDK van verschillende versies), kunt u beginnen met het maken van een virtueel apparaat met de nodige parameters. Het begrijpen van de interface zou niet moeilijk moeten zijn.Apparaatlijst
Een project maken
Ik ga altijd graag aan de slag en minimaliseer voorbereidende activiteiten, waaronder het maken van een project in de IO, vooral als het project educatief is en niet bedoeld is om te worden geproduceerd.Dus Bestand->Nieuw project:
Door op de F6-knop te drukken, wordt het project samengesteld, gecompileerd en gelanceerd op het virtuele apparaat.
Projectstructuur
De vorige schermafbeelding toont de structuur van het project. Omdat we in dit artikel puur praktische doelen nastreven, zullen we ons alleen concentreren op de mappen die we tijdens het werk zullen gebruiken. Dit zijn de volgende mappen: gen, res En src.In een map gen er zijn bestanden die automatisch worden gegenereerd wanneer het project wordt gebouwd. U kunt deze niet handmatig wijzigen.
De map res is bedoeld voor het opslaan van bronnen zoals afbeeldingen, teksten (inclusief vertalingen), standaardwaarden, lay-outs.
src- dit is de map waarin het grootste deel van het werk zal plaatsvinden, omdat hier bestanden met de broncode van ons programma worden opgeslagen.
Eerste regels
Zodra de Activiteit (applicatiescherm) is aangemaakt, wordt de methode onCreate() aangeroepen. De IDE vulde het met 2 regels:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
De setContentView-methode (equivalent aan this.setContentView) stelt de XML-indeling voor het huidige scherm in. In wat volgt noemen we XML-lay-outs “lay-out” en schermen “Activiteit”. De lay-out in de applicatie zal als volgt zijn:
TableLayout is ideaal voor deze toepassing. ID kan aan elke resource worden toegewezen. In dit geval wordt aan TableLayout id = main_l toegewezen. Met de methode findViewById() krijgt u toegang tot de weergave:
privé TableLayout-indeling; // dit is een eigenschap van de klasse KrestikinolikiActivity public void onCreate(Bundle SavedInstanceState) (super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameField( );
Nu moeten we de buildGameField() -methode implementeren. Om dit te doen, moet u een veld in de vorm van een matrix genereren. Dit wordt gedaan door de klas Game. Eerst moet je een Square-klasse voor de cellen maken en een Player-klasse waarvan de objecten deze cellen zullen vullen.
Vierkant.java
pakket com.voorbeeld; public class Square ( private Player player = null; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (speler != null) ( return true; ) return false; ) public Player getPlayer () (retourspeler; ) )Speler.java
pakket com.voorbeeld; public class Player ( private String-naam; public Player(String-naam) ( this.name = naam; ) public CharSequence getName() ( return (CharSequence) naam; ) )Alle klassen van onze applicatie bevinden zich in de src-map.
Game.java
pakket com.voorbeeld; public class Game ( /** * field */ private Square field; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // het veld invullen voor (int i = 0, l = veldlengte;Initialisatie van het spel in de KrestikinolikiActivity-constructor.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // wordt later geïmplementeerd)
De buildGameField()-methode van de klasse KrestikinolikiActivity. Het voegt dynamisch rijen en kolommen toe aan de tabel (spelveld):
privéknopknoppen = nieuwe knop;
//(...) private void buildGameField() ( Vierkant veld = game.getField(); for (int i = 0, lenI = field.length; i
public class Listener implementeert View.OnClickListener ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) (Knopknop = (Knop)weergave; ) )
Het blijft nodig om de spellogica te implementeren.
public class Game ( /** * spelers */ privé Speler spelers; /** * veld */ privé Vierkant veld; /** * is het spel begonnen? */ privé boolean gestart; /** * huidige speler */ privé Speler activePlayer; /** * Telt het aantal gevulde cellen */ private int gevuld; /** * Totaal aantal cellen */ private int squareCount; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // het veld invullen voor (int i = 0, l = veldlengte; i
Bepaling van de winnaar
K.O suggereert dat de winnaar bij boter-kaas-en-eieren degene is die X of O op een lijn zet die gelijk is aan de lengte van het veld, verticaal, horizontaal of diagonaal. De eerste gedachte die in je opkomt is om voor elk geval methoden te schrijven. Ik denk dat het Chain of Responsobility-patroon in dit geval goed zou werken. Laten we de interface definiërenpakket com.voorbeeld; openbare interface WinnerCheckerInterface ( openbare Speler checkWinner(); )
Omdat Game de verantwoordelijkheid heeft om de winnaar te bepalen, implementeert het deze interface. Het is tijd om virtuele "grensrechters" te creëren, die elk zijn kant zullen controleren. Ze implementeren allemaal de WinnerCheckerInterface-interface.
WinnerCheckerHorizontal.java
pakket com.voorbeeld; public class WinnerCheckerHorizontal implementeert WinnerCheckerInterface ( private Game game; public WinnerCheckerHorizontal(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = veldlengte;WinnerCheckerVertical.java
pakket com.voorbeeld; public class WinnerCheckerVertical implementeert WinnerCheckerInterface (privé spelspel; openbaar WinnerCheckerVertical (spelspel) ( this.game = spel; ) public Player checkWinner() ( Vierkant veld = game.getField(); Speler currPlayer; Speler lastPlayer = null; for (int i = 0, len = veldlengte;WinnerCheckerDiagonalLeft.java
pakket com.voorbeeld; public class WinnerCheckerDiagonalLeft implementeert WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalLeft(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; voor (int i = 0, len = veldlengte; iWinnerCheckerDiagonalRight.java
pakket com.voorbeeld; public class WinnerCheckerDiagonalRight implementeert WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalRight(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; voor (int i = 0, len = veldlengte; iLaten we ze initialiseren in de Game-constructor:
//(....) /** * "Rechters" =). Na elke zet controleren ze * of er een winnaar is */ private WinnerCheckerInterface winnaarCheckers;
//(....) public Game() ( //(....) winnaarCheckers = nieuwe WinnerCheckerInterface; winnaarCheckers = nieuwe WinnerCheckerHorizontaal(dit); winnaarCheckers = nieuwe WinnerCheckerVertical(dit); winnaarCheckers = nieuwe WinnerCheckerDiagonalLeft(dit); winnaarCheckers = nieuwe WinnerCheckerDiagonalRight(dit);
Implementatie van checkWinner():
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winnaarCheckers) ( Speler winnaar = winChecker.checkWinner(); if (winnaar != null) ( return winnaar; ) ) return null; )
Na elke zet controleren wij de winnaar. Laten we code toevoegen aan de onClick() -methode van de klasse Listener
public void onClick(Bekijk weergave) ( Knop knop = (Knop) weergave; Spel g = spel; Speler speler = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( knop.setText(speler.getName()) ; ) Spelerwinnaar = g.checkWinner(); (winnaar != null) ( gameOver(winnaar); ) if (g.isFieldFilled()) ( // als het veld gevuld is gameOver(); ) )
De gameOver()-methode is geïmplementeerd in 2 varianten:
private void gameOver(Speler speler) ( CharSequence text = "Speler \"" + speler.getName() + "\" gewonnen!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); vernieuwen(); private void gameOver() ( CharSequence text = "Tekenen"; Toast.makeText(dit, tekst, Toast.LENGTH_SHORT).show(); game.reset(); vernieuwen(); )
private void refresh() ( Vierkant veld = game.getField(); for (int i = 0, len = field.length; i
Klaar! Ik hoop dat dit artikel je heeft geholpen om vertrouwd te raken met de wereld van Android-ontwikkeling. Bedankt voor uw aandacht!
Video van de voltooide applicatie
- Handleiding
Hallo. Vandaag kwam ik op de website van de Linux Foundation een bericht tegen over een programmeercursus voor Android, en daarnaast veel opmerkingen dat ik graag een vertaling van deze lessen zou willen zien. Sinds nu, na vier jaar ontwikkeling voor microcontrollers, ben ik begonnen met het bestuderen van programmeren voor mobiele apparaten, terwijl ik tegelijkertijd besloot het eerste deel van de les te vertalen.
Android-programmering voor beginners. Deel 1
Android-smartphones en -tablets zijn steeds vaker in onze tassen en broekzakken te vinden, en ook het programmeren met Android wordt steeds populairder. Het is een geweldig ontwikkelingsplatform - de API is goed gedocumenteerd en gemakkelijk te gebruiken, en het is gewoon leuk om iets te maken dat je op je smartphone kunt gebruiken. In eerste instantie kunt u het zonder doen door de code te maken en te testen met behulp van een emulator op uw Linux-pc. In de eerste van een tweedelige introductie wordt uitgelegd hoe u een eenvoudige timer-app kunt maken en krijgt u een inleiding tot de Android API. De cursus veronderstelt een basiskennis van Java, XML en programmeertechnologieën, maar je kunt het toch proberen, zelfs als je er een heel vaag begrip van hebt.Aan de slag en ontwikkelomgeving
Iets over de versies: de nieuwste versie van Android is 4.2 (Jelly Bean), maar zoals je in deze grafiek kunt zien, is deze nog niet wijdverspreid. Het is het beste om te beginnen met ontwikkelen op een van de versies: 4.0 (Ice Cream Sandwich) of 2.3 (Gingerbeard), vooral omdat Android-versies achterwaarts compatibel zijn (dat wil zeggen dat uw code voor versie 2.3 werkt op 4.2) en applicaties die zijn ontwikkeld voor een latere versie zal niet altijd werken op een oudere. De hier getoonde code zou moeten werken op versies 4.0 en 2.3.De eenvoudigste manier om aan een ontwikkelomgeving te komen is door de Android Bundle te installeren, deze kun je downloaden. Je hebt ook JDK 6 nodig (niet alleen JRE). Vergeet niet dat Android niet compatibel is met gcj. Als u Eclipse of een andere IDE al gebruikt, kunt u proberen deze voor Android in te stellen. Hoe u dit kunt doen, wordt beschreven. Maak nu een project met de naam Countdown met behulp van Eclipse of vanaf de opdrachtregel. Ik heb de instellingen ingesteld op BuildSDK 4.0.3 en minimaal SDK 2.2, en (in Eclipse) de BlankActivity-sjabloon gebruikt.
Mijn eerste project voor Android: interface
Ons eerste programma voor Android wordt een timer die aftelt vanaf 10 seconden na het indrukken van een knop. Voordat we code schrijven, moeten we een interface maken: wat de gebruiker zal zien wanneer hij onze applicatie start. U moet res/layout/activity_countdown.xml openen en een XML-sjabloon maken. Gebruik de Eclipse-editor of een tekst-/XML-editor en voer het volgende in:Let op string /start en string /__00_30. Hun waarden bevinden zich in res/values/strings.xml:
Dit is een gebruikelijke manier om toegang te krijgen tot bronnen in Android: het is beter om verwijzingen naar stringvariabelen te gebruiken dan hardgecodeerde strings.
Mijn eerste Android-project: code
Laten we nu het CountdownActivity.java-bestand in de editor openen - en we zijn klaar om de code voor onze applicatie te schrijven. U zou een automatisch gegenereerde “stub” moeten zien voor de onCreate() methode. Het wordt altijd aangeroepen zodra het Activity-object is gemaakt en u kunt er alle functies in plaatsen die moeten worden uitgevoerd wanneer de toepassing start. (Eclipse kan ook een lege methode onCreateOptionsMenu() maken, maar die negeren we voorlopig.) Voer de volgende code in:openbare klasse CountdownActivity breidt activiteit uit (private statische finale int MILLIS_PER_SECOND = 1000; private statische finale int SECONDS_TO_COUNTDOWN = 30; private TextView countdownDisplay; private CountDownTimer-timer; @Override public void onCreate(Bundle SavedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R .layout.activity_countdown); countdownDisplay = (TextView) findViewById (R.id.time_display_box Button startButton = (Knop) findViewById (R.id.startbutton); Bekijk weergave) ( try ( showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND); ) catch (NumberFormatException e) ( // methode negeert ongeldige (niet-gehele) invoer en wacht // op iets dat het kan gebruiken ) ) ) )
Je kunt zien hoe gemakkelijk het was om ons eerste project te maken: de Android API bevat een CountDownTimer die we kunnen gebruiken. We hebben het en het aftelweergaveveld gedeclareerd als privé-eigenschappen van de klasse Activity. In de onCreate() -methode hebben we de setContentView-methode gebruikt om onze XML-sjabloon op te nemen. Deze R.foo.bar-syntaxis is de standaardmanier om toegang te krijgen tot XML-bronnen in Android, en we zullen dit nog vaak zien.
findViewById is een andere methode die u vaak zult gebruiken. Hier retourneert het verwijzingen naar het timeruitvoerveld en de Start-knop, beschreven in de XML-sjabloon. Voor een knop moeten, zodat we de klik ervan kunnen verwerken, een OnClickListener “interceptor” en de bijbehorende onClick()-methode worden gespecificeerd. Hier roept het eenvoudigweg de methode showTimer() aan met het opgegeven aantal milliseconden (nu hardgecodeerd in de code).
Dus wat showTimer() doet:
private void showTimer(int countdownMillis) ( if(timer != null) ( timer.cancel(); ) timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) ( @Override public void onTick(long millisUntilFinished) ( countdownDisplay.setText("aftellen : " + millisUntilFinished / MILLIS_PER_SECOND); ) @Override public void onFinish() ( countdownDisplay.setText("KABOOM!"); ) ).start(); )
De klasse CountDownTimer doet bijna al het werk voor ons, wat erg prettig is. In het begin controleren we of de timer al bestaat en als dat het geval is, stellen we deze opnieuw in. Vervolgens maken we een nieuwe timer met het opgegeven aantal milliseconden om af te tellen (van de methodeparameter showTimer()) en met het opgegeven aantal milliseconden tussen aftelintervallen. Wanneer de tijd tussen intervallen is verstreken, wordt de methode onTick() aangeroepen.
CountDownTimer is een abstracte klasse en de methoden __onTick() en __onFinish() moeten in de subklasse ervan worden geïmplementeerd. We overschrijven de methode onTick(), die het uitvoernummer na elk interval met één verlaagt, en de methode onFinish(), die een bericht weergeeft wanneer het aftellen is geëindigd. Start() start vervolgens de timer.
Met behulp van de opdracht "Uitvoeren" in Eclipse kunt u de gemaakte applicatie uitvoeren, waardoor automatisch de Android-emulator wordt gestart. Bekijk de Android-documentatie als je er meer over wilt weten
In deze tutorial leert u de basisprincipes van het schrijven van een Android-applicatie met behulp van de Android Studio-ontwikkelomgeving. Android-apparaten worden steeds gebruikelijker en de vraag naar nieuwe applicaties neemt alleen maar toe. Android Studio is een gratis, gebruiksvriendelijke ontwikkelomgeving.
Voor deze tutorial is het het beste als je op zijn minst enige kennis van Java hebt, aangezien dat de taal is die door Android wordt gebruikt. Er zal niet te veel code in deze tutorial staan, omdat ik ervan uitga dat je enige kennis van Java hebt of klaar bent om iets te vinden dat je nog niet weet. Het maken van een applicatie duurt 30-60 minuten, afhankelijk van hoe snel u alle benodigde programma's downloadt en installeert. Na het volgen van deze tutorial over hoe u uw eerste Android-app kunt maken, vindt u misschien een leuke nieuwe hobby of begint u zelfs een carrière als beginnende ontwikkelaar van mobiele apps.
Fase 1: Android Studio installeren
- U moet de JDK ( Java-ontwikkelingskit) en JRE (Java Runtime Environment). Je kunt het downloaden via deze link. Daar selecteert u de versie voor uw besturingssysteem, accepteert u de licentieovereenkomst, downloadt en installeert u.
- Ga nu hier http://developer.android.com/sdk/index.html en download (let op, je zult ongeveer 3 gigabytes moeten downloaden).
- We starten de installatie en volgen de instructies.
Fase 2: Maak een nieuw project
- Open Android-studio.
- In het menu " Snel beginnen", selecteer" Start een nieuw Android Studio-project».
- In het venster " Nieuw project maken"(het geopende venster), geef uw project een naam " Hallo Wereld».
- Bedrijfsnaam optioneel.*
- Klik op " Volgende».
- Zorg ervoor dat het selectievakje alleen is ingeschakeld " Telefoon en tablet».
- Als u van plan bent uw eerste applicatie op uw telefoon te testen, zorg er dan voor dat de juiste versie van Android is geselecteerd (niet ouder dan die op de telefoon).
- Klik op " Volgende».
- Selecteer " Lege activiteit».
- Klik op " Volgende».
- Laat alle overige velden ongewijzigd.
- Klik op " Finish».
*Typische bedrijfsnaam voor Android-projecten is “example.name.here.com”.
Fase 3: De begroeting bewerken
- Ga naar het tabblad activiteit_voornaamst.xml, waarschijnlijk is deze al actief.
- Zorg ervoor dat het tabblad onder aan het scherm actief is Ontwerp(hoogstwaarschijnlijk is dit waar).
- Sleep de zin " Hallo, Wereld! »van de linkerbovenhoek van de telefoon naar het midden van het scherm.
- Aan de linkerkant van het scherm bevindt zich een mappenboom. Open de map met de naam " waarden».
- Dubbelklik in deze map op het bestand " snaren.xml».
- Zoek in dit bestand de regel met de tekst “ Hallo wereld!" en voeg toe aan deze tekst " WelkomnaarMijnapp! ».
- Keer terug naar de " activiteit_voornaamst.xml».
- Zorg ervoor dat uw tekst gecentreerd op uw telefoonscherm staat en de tekst ' Hallowereld! WelkomnaarMijnapp! ».
Stap 4: Voeg een knop toe
- Op de " activiteit_voornaamst.xml"selecteer het tabblad" Ontwerp».
- Zoek in de kolom links van het venster waar de telefoon zich bevindt een map met de naam ' Widgets" Daar zitten verschillende knoppen op.
- Pak de " Knop» en sleep het naar uw telefoonscherm. Het moet gecentreerd zijn op het scherm, direct onder uw tekst.
- Zorg ervoor dat de knop nog steeds is geselecteerd (blauw kader eromheen).
- Rechtsonder bevindt zich een venster met de eigenschappen van het geselecteerde object. Scroll naar beneden en vind de regel met de naam " tekst».
- Verander de tekst " Nieuwe knop" naar " Volgende pagina».
Fase 5: Creëer een tweede activiteit
- Klik bovenaan de bestandssysteemboom van het project met de rechtermuisknop op de map met de naam " app».
- Selecteer Nieuw > Activiteit > Lege activiteit.
- In het venster dat verschijnt, typt u op de bovenste regel “ Tweede activiteit».
- Klik op " Finish».
- Ga naar de " activiteit_seconde.xml" en zorg ervoor dat het tabblad " onderaan is geselecteerd Ontwerp».
- Verplaats de tekst van de linkerbovenhoek van de telefoon naar het midden van het scherm, zoals we in de vorige stappen deden.
- Zorg ervoor dat het tekstblok nog steeds is geselecteerd (blauw kader) en zoek in de rechter benedenhoek van de eigenschappen van het object naar de regel " Identiteitskaart"en ga daar binnen" tekst2 ».
- Dubbelklik in de linkerbovenhoek (in de projectboom) op " snaren.xml».
- Onder de lijn
Hallo wereld! Welkom bij mijn app! voeg de volgende regel toe
Welkom op de tweede pagina! - Keer terug naar de " activiteit_second.xml».
- Selecteer het tekstblok opnieuw.
- Zoek in de rechter benedenhoek van de objecteigenschappen de regel “ tekst" en ga daar naar binnen «@ snaar/seconde_pagina».
- Zorg ervoor dat het tekstvak nu ' Welkomnaardesecondepagina! ' en de blog bevindt zich in het midden van het scherm.
Fase 6: Schrijf de actie voor de knop
Fase 7: Het testen van de applicatie
- Klik in de werkbalk bovenaan het Android Studio-venster op het groene afspeelsymbool.
- In het venster " KiezenApparaat» selecteer het item « Launchemulator» en selecteer het apparaat.
- Klik op de knop OK».
- Wanneer de emulator start (dit kan lang duren), wordt de applicatie automatisch geopend op het virtuele apparaat.
- Zorg ervoor dat alle tekst correct wordt weergegeven en dat u door op de knop te klikken naar de volgende pagina gaat.
Aandacht: Als u het bericht ontvangt " HAX-kernelmodule is niet geïnstalleerd!", dan zijn er twee mogelijke opties. Feit is dat alleen moderne Intel-processors deze virtualisatie ondersteunen en je deze alleen in het BIOS hoeft in te schakelen. Als u een processor heeft die deze functie niet ondersteunt, moet u de applicatie op een echte telefoon testen of een emulator van derden gebruiken in plaats van de ingebouwde.
Hoe u een .apk-bestand kunt verkrijgen in Android Studio
Naar mijn mening wordt dit onderwerp goed behandeld in dit artikel, dus ik zal het niet herhalen. Ik vond het het gemakkelijkst voor de eerste les Handmatige methode.
Zodra u het bestand heeft ontvangen, kunt u het naar uw telefoon kopiëren en de applicatie installeren.
Fase 8: Resultaat
Gefeliciteerd! U bent zojuist klaar met het schrijven van uw eerste Android-applicatie met enige basisfunctionaliteit. De voltooide applicatie moet een welkomstpagina voor de gebruiker hebben en een knop die de gebruiker naar de tweede pagina brengt.
Je hebt kort kennis gemaakt met de ontwikkeling van applicaties voor Android en hebt misschien bij jezelf de wens gewekt om alles te leren wat nodig is om je verder in deze richting te ontwikkelen.
Het artikel beschrijft de belangrijkste problemen bij het maken van applicaties voor Android.
De basisconcepten van Android-programmering komen aan bod.
Als voorbeeld wordt het maken van een Sudoku-spel uit het boek Hallo, Android - Ed Burnette beschreven.
Let op: er zijn veel screenshots.
1. Ontwikkelingsproblemen
Android is een uniek besturingssysteem. De applicatieontwikkelaar moet de kenmerken en nuances ervan kennen om een goed resultaat te verkrijgen. Er zijn enkele uitdagingen waarmee rekening moet worden gehouden bij het ontwerpen van (). Laten we ze kort opsommen:
1) De applicatie heeft twee keer (of zelfs vier) meer ruimte nodig voor installatie dan de oorspronkelijke grootte van de applicatie.
2) De snelheid van het werken met bestanden op de ingebouwde flashdrive neemt tientallen keren af naarmate de vrije ruimte afneemt.
3) Elk proces kan maximaal 16 MB (soms 24 MB) RAM gebruiken.
2. Principes voor het ontwikkelen van productieve applicaties voor Android
Om te werken heb je Android SDK en Eclipse nodig. Er staat geschreven hoe je alles installeert en aan de slag gaat.
Volg deze stappen om een project in Eclipse te laden:
1) Pak het project uit in een aparte map in de Eclipse-werkruimte.
2) Selecteer het menu-item Bestand->Nieuw->Android-project.
3) Selecteer in het dialoogvenster Nieuw Android-project de optie Project maken van bestaande bron.
4) Geef in het veld Locatie het pad op naar de map met het project. Klik op Volgende.
Programmamenu
Het spelmenu wordt beschreven in het bestand res/layout/main.xml. De interfacebeschrijving kan worden bewerkt als XML of als een gerenderde interface. Gebruik de tabbladen onder aan het inhoudweergavegebied om te schakelen.
Meestal bevinden de besturingselementen zich in een container, in ons geval een LinearLayout. Het rangschikt alle elementen in één kolom.
Bronnen
Houd er rekening mee dat alle tekstlabels (android:text) gegevens uit bronnen halen. De invoer android:text="@string/main_title" geeft bijvoorbeeld aan dat de tekst moet worden gezocht in het bestand res/values/string.xml in een knooppunt met de naam main_title (Android Sudoku). De achtergrondkleur is ook opgenomen in de bronnen (android:background="@color/background") maar in het color.xml-bestand (#3500ffff). Er kan een fout optreden bij het openen van bronbestanden in de editor. Maar u kunt altijd overschakelen naar XML-weergave.
Besturingselementen die via code toegankelijk moeten zijn, moeten een ID hebben. Knoppen hebben een id (android:id="@+id/continue_button") zodat er een klikhandler aan de knop kan worden gekoppeld. Het plusteken geeft aan dat u een ID voor de knop moet aanmaken in het bestand /gen/org.example.sudoku/R.java (public static final int continue_button=0x7f0b000b;). Dit bestand wordt automatisch gegenereerd en het wordt niet aanbevolen om het te wijzigen. Het bestand bevat de klasse R, waarmee u toegang hebt tot elk interface-element en andere bronnen.
Vensters maken
Laten we overwegen een venster te maken met informatie over het programma. De lay-out van dit venster bevindt zich in het bestand /res/layout/about.xml. De klasse Activity wordt beschreven in het bestand /src/org.example.sudoku/About.java. De activiteit is gekoppeld aan markeringen in het bestand AndroidManifest.xml. Dit bestand kan via een editor of als XML worden bekeken. U kunt verschillende secties van het bestand selecteren op verschillende editortabbladen. Het gedeelte Toepassing bevat activiteitsparameters. Houd er rekening mee dat de parameter Thema :style/Theme.Dialog is. Hierdoor lijkt de vensterstijl meer op een modaal dialoogvenster.
Het venster met informatie over het programma wordt vanuit de Sudoku-klasse opgeroepen door op de knop Info te klikken. De klasse Sudoku is zo geschreven dat deze de Click-gebeurtenis zelf afhandelt (de openbare klasse Sudoku breidt Activity uit en implementeert OnClickListener). De public void onClick(View v)-methode bepaalt welke knop de gebeurtenis heeft geactiveerd en voert de bijbehorende code uit. Om het Info-venster weer te geven, wordt de overeenkomstige Intent aangeroepen.
geval R.id.about_button:
Intentie i = nieuwe intentie (dit, About.class);
startActiviteit(i);
pauze;
Gebeurtenishandlers kunnen ook op specifieke besturingselementen worden geïnstalleerd. Wanneer de klasse in de klasse Keypad bijvoorbeeld wordt gemaakt, worden handlers voor individuele knoppen geïnstalleerd in de methode setListeners().
Eenvoudige dialoog
De gebruiker moet de mogelijkheid krijgen om de moeilijkheidsgraad te kiezen. Dit is een kleine dialoog waarin u een van de verschillende opties moet kiezen. Ik ben erg blij dat je hiervoor geen aparte Intent hoeft te maken, maar gewoon de klasse AlertDialog hoeft te gebruiken.
Laten we eens kijken naar het proces van het starten van een nieuw spel. De gebruiker klikt op de knop Nieuw spel. De klikhandler is een methode van de Sudoku-klasse - onClick. Vervolgens wordt de openNewGameDialog-methode aangeroepen, die het dialoogvenster voor het selecteren van de moeilijkheidsgraad toont en het spel start met de geselecteerde moeilijkheidsgraad. Dit dialoogvenster is gebouwd met behulp van de klasse AlertDialog.
Privé ongeldig openNewGameDialog() ( nieuwe AlertDialog.Builder(this).setTitle(R.string.new_game_title).setItems(R.array.difficulty, new DialogInterface.OnClickListener() ( openbare ongeldig onClick(DialogInterface dialoginterface, int i) ( startGame (ik); )).toon();
Houd er rekening mee dat de inhoud van het dialoogvenster (een reeks knoppen) is opgebouwd uit een reeks tekenreeksen R.array.difficulty. Er wordt onmiddellijk een dialoogknopklikhandler toegewezen, die, op basis van het nummer van de ingedrukte knop, een nieuw spel met een bepaalde moeilijkheidsgraad start door de startGame-methode aan te roepen.
Grafisch
De klasse Game is verantwoordelijk voor de spellogica. Hier worden taken geladen en worden de winnende voorwaarden gecontroleerd. De klasse Game is een activiteit, maar de interface wordt niet beschreven in XML, maar wordt gemaakt door code. De onCreate-methode creëert een weergave:
PuzzleView = nieuwe PuzzleView(dit);
setContentView(puzzelweergave);
puzzelView.requestFocus();
PazzleView is een klasse afgeleid van View, het tekent het speelveld en verwerkt schermaanraakgebeurtenissen (onTouchEvent-methode) en toetsaanslagen (onKeyDown-methode).
Laten we eens kijken naar het tekenproces in Android. Om te tekenen, moet je de onDraw-methode overbelasten. De methode ontvangt het Canvas-object waarmee wordt getekend. Om kleuren in te stellen, worden objecten van de klasse Paint gemaakt. De kleur wordt opgegeven in ARGB-formaat. Het is beter om kleur op te slaan als bronnen (colors.xml-bestand). Verf is niet alleen een klasse voor het opslaan van kleurinformatie. Wanneer u bijvoorbeeld tekst tekent, bevat deze informatie over de arceringsmethode, het lettertype en de tekstuitlijning.
Canvas bevat een reeks methoden voor het tekenen van afbeeldingen (drawRect, drawLine, drawPath, drawText en andere).
Om afbeeldingen te optimaliseren, is het beter om af te zien van het maken van objecten en onnodige berekeningen binnen de onDraw-methode (het voorbeeld van de grafische implementatie in kwestie is niet optimaal).
Muziek
De klasse MediaPlayer wordt gebruikt om muziek af te spelen. Muziek voor de game is toegevoegd aan de bronnen. U hoeft alleen maar de benodigde bestanden naar de map /res/raw te kopiëren (WAV, AAC, MP3, WMA, AMR, OGG, MIDI-formaten).
Eerst moet u een exemplaar van de MediaPlayer-klasse maken:
mp = MediaPlayer.create(context, bron);
hier is context meestal de klasse die de lancering van muziek initieert, resource is de identificatie van de resource met muziek. Om het afspelen te regelen, gebruikt u de start-, stop- en release-methoden.
In het spel wordt muziek gespeeld in het hoofdmenu (gestart vanuit de Sudoku-klasse) en in de gameplay (gestart vanuit de Game-klasse). De klasse Muziek is gemaakt om het afspelen te regelen. De klasse bevat een statische instantie van MediaPlayer, waardoor het niet meer nodig is om voor elke lancering van de audiobron een afzonderlijk project te maken.
In de klassen Sudoku en Game worden de methoden onResume en onPause overschreven, waarbij muziek begint wanneer de activiteit start en stopt wanneer deze wordt gedeactiveerd.
Conclusies
Het voorbeeld dat in het artikel wordt besproken, is niet al te ingewikkeld, waardoor u het zonder veel moeite kunt begrijpen. Tegelijkertijd raakt het verschillende aspecten van de Android-ontwikkeling.
P.S. Veel dank aan de gebruiker