Hier vind je informatie over het ontwikkelen van Apps voor Android met Android Studio. Dit is de standaard IDE van Google om Android Apps te maken. Zie https://programmeren.hcc.nl/artikelen/mobiele-apps-programmeren.html voor diverse andere mogelijkheden om Mobiele Apps te maken.

Informatie van Google voor het ontwikkelen van Android Apps staat op de Android Developer website:

De meeste pagina's van deze website zijn in het Engels, ook al staat rechtsonder de taal op Nederlands.

Hieronder volgt uitleg hoe je aan de hand van de Android Developer website een app ontwikkelt. Aan bod komen:

Hiermee krijg je een goede eerste indruk van Android Studio. Als vervolg kun je enkele andere Online Nederlandstalige sites raadplegen of bijvoorbeeld verder rondkijken op de Android Developer website.

In Android Studio werk je meestal met de programmeertalen Java en Kotlin. Ook de voorbeeld programma's op de Android Developer website zijn in Java of Kotlin geschreven. De beschrijving van de Hello World app hieronder gebruikt Java. Android Studio ondersteunt C++ bij het gebruik van de Android Native Development Kit (NDK). Enkele andere programmeertalen zoals Scala en Rust worden ondersteund via plugins, deze talen zijn minder gebruikelijk.

Downloaden

Op de homepage van de Android Developer site volg je het onderdeel Start building an app. Klik op de Download knop, je komt dan op:

Hier kun je op de Download Android Studio knop klikken om de versie die past bij je systeem te downloaden. Onder deze knop staat het versienummer, voor welk platform deze download bedoeld is en hoe groot de download is, bijvoorbeeld: 3.3.2 for Windows 64-bit (948 MB).

Verder naar beneden staat een lijst met downloads voor de platforms: Windows 64 en 32 bit, Mac 64 bit en Linux 64 bit. Gebruik een download uit deze lijst als de download bovenaan bij de Download knop niet overeenkomt met jouw computersysteem.

Op het volgende scherm moet je instemmen met de Terms and Conditions, de voorwaarden van de Android Software Development Kit License Agreement. Vink het vakje aan voor 'I have read and agree' en klik op (bijvoorbeeld) Download Android Studio For Windows.

Als de webbrowser erom vraagt kun je kiezen voor Uitvoeren van de download. Vaak is het handiger om te kiezen voor Opslaan van het bestand, dan kun je later bij een fout tijdens het installeren nog een keer opnieuw beginnen. Afhankelijk van de verbinding kan het downloaden enkele minuten duren.

In de browser verschijnt Thank you for downloading Android Studio!. Daaronder enkele links:

Installeren

De Android Studio Install guide staat op:

De installatie is afhankelijk van je systeem: Windows, Mac of Linux. Afhankelijk van de gekozen opties heb je meer dan 10 GB vrije ruimte nodig. Je hebt ook een werkende internet verbinding nodig voor het installeren van extra componenten zoals de Android SDK. Het installeren kan wel een uur duren, dit is afhankelijk van hoe snel je systeem en internetverbinding zijn en hoe snel je door de stappen heen gaat.

Hier volgt als voorbeeld de installatie op Windows 10 (64-bit), het meest voorkomende platform. Gebruik de download van hierboven: android-studio-ide-182.5314842-windows.exe.

Start het installatie programma, er verschijnt een klein window, het programma controleert zichzelf: verifying installer. Dan vraagt Windows om toestemming om wijzigingen aan te brengen. Het programma is ondertekend door Google LLC, als bevestiging dat het van Google afkomstig is. Voer het uit als gebruiker met wachtwoord van een beheerder (administrator).

Als er al een vorige versie van Android Studio aanwezig is dan geeft Android Studio Setup de mogelijkheid om deze te verwijderen (Uninstall).

Dan volgt het Welcome to Android Studio Setup scherm, klik op Next.

Op het Choose Components scherm kun je Android Virtual Device uitzetten. Als je apps met de emulator wilt uitproberen dan laat je dit aanstaan. Hier kun je ook zien hoeveel GB het programma nodig heeft. Later wordt ook nog de Android SDK geïnstalleerd als dat niet eerder is gebeurd. Klik op Next.

De Install location kun je op het volgende scherm wijzigen. Standaard staat dit op C:\Program Files\Android\Android Studio. Meestal is het niet nodig om dit te wijzigen. Kies weer Next.

Bij het scherm Choose Start Menu Folder kan de naam van de map Android Studio gewijzigd worden. Klik op Install.

Android Studio wordt geïnstalleerd, dit duurt enkele minuten. Een heleboel bestanden worden gekopieerd via Extract. Je kunt op de knop Show details drukken tijdens Installing, Please wait. Bij Installation Complete klik je weer op Next.

Vink bij Completing Android Studio Setup het vakje bij Start Android Studio aan om meteen verder te gaan. Klik vervolgens op Finish.

Je kunt Android Studio anders ook starten via het Windows Start Menu, de map Android Studio, en dan het programma Android Studio. Bij Windows 10 64-bit is het pad voor het Android Studio programma bij installatie in de standaard directory C:\Program Files\Android\Android Studio\bin\studio64.exe.

De eerste keer dat je Android Studio start verschijnen er enkele schermen voor het vervolg van de installatie. Android Studio vraagt dan in het Complete Installation scherm of je wel of niet settings wilt importeren. Kies voor Do not import settings.

Dan verschijnt alleen de eerste keer een scherm Data Sharing. Klik op Send usage statistics to Google of op Don't send.

Alleen de eerste keer verschijnt vervolgens de Android Studio Setup Wizard:

  • Klik op Next bij het Welcome scherm
  • Kies voor Standard of Custom setup type bij Install Type en kies Next
  • Kies Darcula of de default IntelliJ bij Select UI Theme
  • Bij SDK Components Setup kun je Android Virtual Device aanvinken als je een emulator wilt gebruiken. Als je een oude computer gebruikt is het beter om niet te kiezen voor Performance (Intel HAXM), zie Opmerking A) hieronder. Ga verder met Next.
  • Controleer bij Verify Settings de instellingen en klik op Finish.

De Android Studio Setup Wizard gaat de componenten downloaden en installeren. Dit kan 30 minuten of meer duren afhankelijk van je systeem en de verbinding. Tijdens de installatie kun je op de knop Show details drukken. Klik op Finish wanneer de Wizard klaar is. Een scherm met Welcome to Android Studio verschijnt.

Je kunt nu verder gaan hieronder bij Hello World.

Later kun je Android Studio en de Android SDK Tools verwijderen via Windows Instellingen (Settings), Apps of via Configuratiescherm (Control Panel), Programma's en onderdelen (Programs and Features). Soms worden niet alle bestanden weggehaald. Zie dan Stack Overflow hoe je deze toch kunt wissen: https://stackoverflow.com/questions/39953495/how-to-completely-uninstall-android-studio-from-windowsv10

Opmerking A) Soms hangt bij Windows 10 de installatie tijdens de HAXM installatie. Op Cancel klikken werkt dan ook niet meer. Je kunt dan Android Studio (studio64.exe) in Taakbeheer beëindigen, of je kunt de computer opnieuw opstarten. Bij het daarna opnieuw starten van Android Studio verschijnen de schermen van de Setup Wizard niet opnieuw. Er lijken verder geen problemen bij het gebruik van Android Studio te zijn, alleen de emulator werkt niet goed. Mogelijk is dit alleen een probleem op oude x86 systemen met bijvoorbeeld een Core 2 Duo processor. Zie Stack Overflow voor meer informatie. https://stackoverflow.com/questions/52827966/running-intel-haxm-installer-takes-forever-with-android-studio-setup-wizard-on

Opmerking B) Soms verschijnt er bij het starten van Android Studio een melding van de Windows Firewall. Sommige onderdelen van de OpenJDK platform binary C:\program files\android\android studio\jre\bin\java.exe zijn geblokkeerd. Voor de Hello World app lijkt toestemming geven niet nodig, gebruik Annuleren (Cancel). Mocht je later toch tegen problemen aanlopen dan kun je dit in de Windows Firewall alsnog wijzigen.

Hello World

Na het bekijken van de webpagina Build your first app:

klik je op Volgende. Je komt dan op Create an Android project:

Start Android Studio als je dat nog niet hebt gedaan. Zie hierboven bij Installeren als je het scherm met de Android Studio Setup Wizard krijgt.

Als er een Tip of the Day verschijnt sluit je deze met Close.

Wanneer je Android Studio eerder hebt gebruikt dan wordt het vorige project geladen. Kies dan voor het menu File, Close Project om dit project af te sluiten.

Het scherm Welcome to Android Studio verschijnt met het Android Studio Version nummer. Kies voor Start a new Android Studio project.

In het scherm Choose your project, kies voor Empty Project onder Phone and Tablet. Links onder staat de keuze Creates a new empty activity en klik Next.

Op het scherm Configure your project, wijzig de Name van My Application naar een zelf gekozen, goed herkenbare naam, zoals Test123App. De Package name en Save location wijzigen mee. Je kunt deze verder ongewijzigd laten. Laat de programmeertaal Language op Java staan. De Minimum API level kan 4.0.3 blijven. Zoals aangegeven in de Build your first app webpagina, selecteer Use AndroidX artifacts. Klik op Finish.

Android Studio is even bezig Installing Requested Components, klik op Finish. Het nieuwe project opent. Bovenaan in de titelbalk staat de naam van de app met de locatie van de project bestanden. Onderaan staat het Build deel en de status waaraan je kunt zien dat het systeem nog even bezig is. Het Build systeem met Gradle wordt op orde gebracht. Wacht enkele minuten totdat alles stabiel is geworden en er geen acties zoals downloading, syncing, configure en dergelijke meer worden uitgevoerd. Ook Indexing... onderaan kan enkele minuten duren, wacht tot dit klaar is.

Rechts openen 2 tabbladen met in de rechter tab het bestand MainActivity.java open. Links midden zie je de Project boom (tree), De linker tab bevat het bestand activity_main.xml, met de tekst Hello World in het midden. Deze 2 bestanden zijn de enige die we hieronder gaan wijzigen voor de uitbreiding van Hello World. Je kunt wat rondkijken in Android Studio wat er in de diverse onderdelen staat. Het is (nog) niet nodig om iets te wijzigen.

Je kunt eventueel al verder gaan naar Uitvoeren hieronder, want de Run optie die daar wordt gebruikt gaat vanzelf eerst een Build doen wanneer deze nog niet is gedaan.

Je kunt ook eerst de Hello World app bouwen. Selecteer hiervoor in het Build menu de optie Make Project. Onderin gaat het Gradle Build systeem aan de slag en voert de verschillende stappen uit. Dit kan enkele minuten duren. Na afloop kun je het gebouwde app-debug.apk bestand vinden in de map <gekozen-locatie>\app\build\outputs\apk\debug.

Uitvoeren

Klik rechtsonder op Volgende, Run your app om verder te gaan. Je komt dan op de Run your app webpagina:

Om de app uit de vorige stap te draaien op je Android mobiele telefoon moet je de telefoon met een USB kabel koppelen aan het systeem waarop je de app hebt gemaakt. Meestal zal de computer de Android telefoon vanzelf detecteren. Zo verschijnt de Android telefoon bijvoorbeeld op Windows 10 in de Verkenner bij Deze pc, Apparaten en stations. Als dit niet lukt kan het nodig zijn om een driver te installeren. Kijk hiervoor op de Install OEM USB drivers webpagina.

Vervolgens moet je op de Android mobiele telefoon de Developer options (Ontwikkelaarsopties) toevoegen. Open hiervoor de Settings (Instellingen) app en kies de optie About phone (Toestel-info). Deze optie staat meestal onderaan, bij de lijst System of Meer of ergens anders, dit verschilt per merk en model. Tap zeven (7) keer op Build number (Buildnummer), daarmee wordt de Developer options (Ontwikkelaarsopties) zichtbaar gemaakt. Ga terug naar de lijst met About phone (Toestel-info). Je kunt hier nu de Developer options (Ontwikkelaarsopties) kiezen. Selecteer daar het vakje bij USB debugging (USB-foutopsporing) zodat er een vinkje in staat.

Ga terug naar Android Studio en kies in het Run menu de optie Run app. Er verschijnt een scherm Select deployment target met kort de melding Initializing ADB. Bij de Connected Devices hoort nu je mobiele telefoon te komen met UNAUTHORIZED. Op je mobiele telefoon verschijnt een melding USB-foutopsporing toestaan?. Kies daar voor OK of Deze pc altijd toestaan. Bij Connected Devices wijzigt de tekst naar het type van je mobiele telefoon. Klik op OK, het build systeem in Android Studio onderaan wordt actief. Op de statusbalk verschijnen meldingen zoals Installing APK. De app start op je mobiele telefoon, je ziet je zelfgekozen naam bovenaan en Hello World! in het midden.

De Hello World app staat nu op je mobiele telefoon, deze kun je nu loskoppelen. Ga terug naar het startscherm en start de Apps app, waarin je alle geïnstalleerde apps kunt zien, vaak rechts onderaan. In deze lijst staat nu ook je zojuist gemaakte app met de door jou gekozen naam. Je kunt deze app gebruiken op dezelfde manier als de andere apps op je toestel.

Je kunt nu op de Android Developer webpagina verder gaan door te klikken op Volgende rechts onderaan, je komt dan bij Build a simple user interface:

Daar wordt de Layout Editor gebruikt om een text box en een button (knop) toe te voegen aan je app. Op de daaropvolgende pagina koppel je een andere activity aan de knop.

Uitbreiding

Je kunt ook verder gaan met een kleine uitbreiding van de Java code. De layout blijft dan ongewijzigd. Alleen komt in plaats van de tekst Hello World uiteindelijk de waarde van de lichtsensor. Deze waarde kun je dan beïnvloeden door de sensor te bewegen van een lichtbron af of er naar toe, of bijvoorbeeld door je hand voor de sensor te houden.

Stap 1: Tekst uit XML bestand

Open de activity_main.xml tab in Android Studio. Klik onderaan op Text, dus niet op Design. Op regel 12 staat:

android:text="Hello World!"

Wijzig de tekst naar:

android:text="Hello Test123!"

Test de app met deze wijzigingen door de app weer te starten op je mobiel zoals hierboven aangegeven bij Uitvoeren. In plaats van Hello World verschijnt Hello Test123.

Stap 2: Tekst van onCreate

Voeg in activity_main.xml onder de zojuist gewijzigde "android:text=" regel toe:

android:id="@+id/ViewTest"

Open de MainActivity tab in Android Studio. Zoek in de onCreate functie de regel met:

setContentView(R.layout.activity_main);

Voeg meteen hieronder de volgende 2 regels code toe:

TextView textview = findViewById(R.id.ViewTest);
textview.setText("Hello onCreate");

Beweeg de muiscursor op de TextView aan het begin van de eerste toegevoegde regel. Android Studio merkt dat het TextView type niet bekend is, een ballon Cannot resolve symbol 'TextView' verschijnt. Klik op TextView zodat je deze tekst kunt wijzigen. Android Studio geeft als suggestie een ballon ? android.widget.TextView? Alt + Enter. Druk op Alt+Enter, Android Studio voegt aan het begin een regel met een import statement toe:

import android.widget.TextView;

Deze verdwijnt snel weer in de samengeklapte regel 'import ...'. Je kunt de imports bekijken door op de '+' te klikken vooraan die regel.

Test de app opnieuw zoals hierboven aangegeven bij Uitvoeren. Deze keer verschijnt Hello onCreate.

Stap 3: Tekst waarde van de lichtsensor

In MainActivity.java wijzig de regel:

public class MainActivity extends AppCompatActivity {

naar de regels:

public class MainActivity extends AppCompatActivity
    implements SensorEventListener {

Het type SensorEventListener is weer onbekend. Dit kun je oplossen via Alt-Enter op de tekst zoals hierboven aangegeven. Of je voegt handmatig bovenaan bij de andere imports toe:

import android.hardware.SensorEventListener;

Android Studio meldt dat er nog een probleem is. Er moeten nog events toegevoegd worden. Voeg onSensorChanged en onAccuracyChanged toe onder de huidige code voor onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView textview = findViewById(R.id.ViewTest);
    textview.setText("Hello onCreate");
}
@Override
public final void onSensorChanged(SensorEvent event ) {
}
@Override
public final void onAccuracyChanged(Sensor sensor, int accuracy) {
}

Android Studio kent de types SensorEvent en Sensor nog niet. Voeg deze imports bovenaan toe via Alt+Enter of met de hand:

import android.hardware.Sensor;
import android.hardware.SensorEvent;

De code moet nu weer compileren, menu Build, Make Project mag geen foutmeldingen geven.

Voeg aan het einde van onCreate deze code toe, dus na textview.setText:

SensorManager sensorMgr = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
Sensor lightSensor = sensorMgr.getDefaultSensor(Sensor.TYPE_LIGHT);
sensorMgr.registerListener(this, lightSensor,
        sensorMgr.SENSOR_DELAY_NORMAL);

Opnieuw zijn er enkele import statements bovenin nodig. Voeg deze toe met Alt+Enter of met de hand:

import android.content.Context;
import android.hardware.SensorManager;

De volgorde van de import statements is niet van belang.

De onSensorChanged functie is nog leeg, voeg daar deze regels toe:

float value = event.values[0];
String val = String.valueOf(value);
TextView textview = findViewById(R.id.ViewTest);
textview.setText(val);

De code is hiermee compleet. Start de app op je mobiel via Android Studio menu Run, Run app. In plaats van de Hello tekst zie je nu een getal dat wijzigt afhankelijk van wat de lichtsensor meet. Beweeg je hand over de bovenzijde van je het scherm van je mobiel om de waarde te veranderen.

Meer informatie hoe je Sensors kunt gebruiken in je code kun je vinden op:

Code

Mogelijk lukt het wijzigen van de code niet goed. Vergelijk dan je code met de complete broncode hieronder.

In bestand activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Hello Test123!"
       android:id="@+id/ViewTest"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintLeft_toLeftOf="parent"
       app:layout_constraintRight_toRightOf="parent"
       app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

In bestand MainActivity.java:

package com.example.test123;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity
       implements SensorEventListener {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       TextView textview = findViewById(R.id.ViewTest);
       textview.setText("Hello onCreate");
       SensorManager sensorMgr = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
       Sensor lightSensor = sensorMgr.getDefaultSensor(Sensor.TYPE_LIGHT);
       sensorMgr.registerListener(this, lightSensor,
               sensorMgr.SENSOR_DELAY_NORMAL);
   }
   @Override
   public final void onSensorChanged(SensorEvent event) {
       float value = event.values[0];
       String val = String.valueOf(value);
       TextView textview = findViewById(R.id.ViewTest);
       textview.setText(val);
   }
   @Override
   public final void onAccuracyChanged(Sensor sensor, int accuracy) {
   }
}

Online Nederlandstalige sites

Er is online nog veel meer informatie te vinden, het meeste is in het Engels. Er zijn ook enkele Nederlandstalige websites met meer informatie.

Licentie

Deze webpagina over Online Android Apps programmeren mag worden gebruikt volgens de Creative Commons 2.5 Attribution License: http://creativecommons.org/licenses/by/2.5/.

Deze webpagina is deels gebaseerd op en maakt gebruik van content van webpagina's op de Android Developer website https://developer.android.com/.

Attribution is required:

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Zie ook de Content License webpagina https://developer.android.com/license.

Online Android Apps programmeren: versie 1.0 - april 2019