kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Getting Started - Erste Schritte zur Entwicklung und zum Testen einer eigenen App

(EN google-translate)

(PL google-translate)

Geeignetes Testgerät: ASUS NEXUS7 2012er mit 3G (Sim-Schacht)

ASUS NEXUS7 2012er mit 3G (Sim-Schacht) bei Amazon

Die Nexus_reihe wird von Google an verschiedene Hersteller in Auftrag gegeben und zeichnet sich durch ein "unverfälschtes" Betriebssystem aus, was nützlich bei der Entwicklung ist.

Zudem läßt sich bei diesen Geräte sehr leicht ein Entwicklermodus einstellen, der es erlaubt, selber entwickelte Apps direkt vom PC über das USB-Kabel auf das Gerät zu übertragen und dort zu testen.

Tablet NEXUS 7 für die Entwicklung freigeben:

  • Settings - > About Tablet (ganz unten) - > Build Number (ganz unten)
  • Mindestens sieben mal auf Build Number drücken.
  • Es erscheint dann "You are now developer" und es exisitert ab dann der Menüpunkt:
  • Settings - > Developer Options

Java6 installieren

Für Knoppix 6.7.1 wird das Development-Kit OpenJava 6 installiert.

120_jdk.zip - Development-Kit OpenJava 6.

ADT-Eclipse-bundle installieren und einrichten

Es gibt eine Eclipse-Variante, die die notwendigen Entwicklertools für Android-App-Entwicklung bereits enthält:

adt-bundle-linux-x86-20131030_2.zip - ADT-Eclipse-bundle für Linux i386, 32-Bit-Version.
  • Verzeichnis erstellen: /mnt-system/ANDROID_ADT_APP
  • Bundle entpacken nach /mnt-system/ANDROID_ADT_APP (Es gibt dann /mnt-system/ANDROID_ADT_APP/adt-bundle-linux-x86-20131030)
  • Erstmaliger Start von Eclipse (Doppelclick auf /mnt-system/ANDROID_ADT_APP/adt-bundle-linux-x86-20131030/eclipse/eclipse)
  • Sinnvolles Anlegen des Workspace, z.B. in /mnt-system/ANDROID_ADT_APP/adt_workspace.

Erste App erstellen

Neues

Bild 0-1: Neues "Android Application Project" anlegen.

Einstellungen

Bild 0-2: Einstellungen

  • Application Name: Ordnername des projektes
  • Package Name: Eindeutige Identifizierung der App, wichtig für App-shop, typisch: Website der Organisation rückwärts.
  • Minimum Required SDK: Mindest-Anfordrung (möglichst tief wählen, damit es auf älteren Geräten auch läuft)
  • Target SDK: Mindestens Level 14 (IceCreamSandwich), wg. neuerer Features
Mit eigenem Icon, mit activity (Interaktion) und Ordner im Workspace.

Bild 0-3: Mit eigenem Icon, mit activity (Interaktion) und Ordner im Workspace.

Icon wählen.

Bild 0-4: Icon wählen.

Blank Activity (default) wählen.

Bild 0-5: Blank Activity (default) wählen.

Name für Activity- und Layout-Datei festlegen.

Bild 0-6: Name für Activity- und Layout-Datei festlegen.

Sicht auf Projekt öffnen.

Bild 0-7: Sicht auf Projekt öffnen.

Erste App erstellen - Layout anpassen in activity_main.xml anpassen

Java-Browsing-Perspective wählen.

Bild 0-8: Java-Browsing-Perspective wählen.

Datei layout - > res - > activity_main.xml öffnen und

Bild 0-9: Datei layout - > res - > activity_main.xml öffnen und "unser" Gerät einstellen.

Damit das Layout so dargestellt wird, wie es sich beim Zielgerät später ergibt, kann das Zielgerät ausgewählt werden:

Zielgerät wegen Auflösung auswählen.

Bild 0-10: Zielgerät wegen Auflösung auswählen.

  • Gerät: Nexus 7
  • Auflösung: WXGA 800x1280
ID für den schon vorhandenen Hinweistext (Label) vergeben: Rechte Maustaste auf Textfeld, Assign ID, Beispiel hier: id_hinweistext.

Bild 0-11: ID für den schon vorhandenen Hinweistext (Label) vergeben: Rechte Maustaste auf Textfeld, Assign ID, Beispiel hier: id_hinweistext.

Weitere GUI-Elemente hinzufügen: Texteingabe, Button Textausgabe, siehe Form Widgets.

Erste App erstellen - Funktionalität in MainActivity.java anpassen

Wie die verwendeten Klassen importiert werden können, läßt sich an ihrer Package-Zugehörigkeit in der API nachschlagen:

http://developer.android.com/reference/android/view/View.html - Referenz.

Im folgenden wird einfach der Quelltext der XML-Datei und der Java-Datei gezeigt:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/idvonhallotext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/idvonhallotext"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="155dp"
        android:layout_marginLeft="60dp"
        android:ems="10"
        android:inputType="text" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/idvonhallotext"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="74dp"
        android:text="Button" />

</RelativeLayout>

Code 0-1: Datei activity_main.xml (Nicht ganz das gleiche Projekt wie oben besprochen!)

package com.example.hallo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //Listener beim Knopf registrieren:
	    Button knopf = (Button) findViewById(R.id.button1);
	    knopf.setOnClickListener(this);        
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    public void onClick(View v)
    {
    	    EditText text1 = (EditText) findViewById(R.id.editText1);
    	    text1.setText("Hallo");
    }    
}

Code 0-2: Datei MainActivity.java (Nicht ganz das gleiche Projekt wie oben besprochen!)

App auf einer Emulation laufen lassen

  • Menü Auswahl "Window - > Android Virtual Device Manager"
  • Neuen AVD erzeugen und Vorlage Nexus7 zuweisen bei Device.
Erzeugen eines

Bild 0-12: Erzeugen eines "Android Virtual Device" als Emulator für die neue App.

AVD starten.

Bild 0-13: AVD starten.

  • Auf Käfer klicken und "Android Application" auswählen (default).
Starten der Emulation

Bild 0-14: Starten der Emulation