ITI0011-2014:Android

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Tagasi ITI0011 lehele.

Eclilpse'i seadistamine

  • Help -> Eclipse Marketplace ...
  • Otsida "android"
  • Valida tuleb: Android Development Tools for Eclipse by Google (nimekirjas 5. kohal)
  • Installeerides küsitakse kinnitust (nagu ikka, "Accept", "OK" jne)

.

  • Window
  • Preferences
  • Vasakult nimekirjast valida "Android"
  • Valida kaust, kuhu android sdk pakiti

.

  • Windows
  • SDK manager
  • Android 5.0 eest linnukesed ära (kui muidugi soovi ja aega, võib ka versioon 5 installeerida)
  • Android 4.4 valida (võib välja jätta Glass, Google API ja näiteks Intel x86 Atom System Image).
  • Install packages
  • tõmbab alla vajalikud pakid

Android SDK

https://developer.android.com/sdk

GET THE SDK FOR AN EXISTING IDE (kui Eclipse või muu IDE on juba olemas).

Alternatiivne emulaator

Genymotion: http://www.genymotion.com/

Allalaadimiseks tuleb tasuta konto teha.

Mitte Windowsi kasutajad peavad VirtualBox'i lisaks installeerima.


Linke

Telefoni peal arendamine

Kui soovid oma telefoni peal katsetada app-e (tugevalt soovitatav, kuna palju kiirem), siis see on juhend -> http://www.phonearena.com/news/How-to-enable-USB-debugging-on-Android_id53909

Arendamine

  • New ..
  • Android
  • New Android Application
  • erinevad sammud, kus saab määrata nime, minimaalset androidi versiooni, kus programm töötab, ikooni jne.
  • nimekirjast valida: Blank activity
  • MainActivity ja activity_main sobivad

Käivitamine:

  • Android Virtual Device tuleb luua: nimi, valida device jne.
  • Võtab kaua aega
  • run
  • Android application
  • Valik seadmetest (kui eelnevalt on loodud ja töötab), võib ka uue luua
  • Kui device käib, ei ole vaja seda kinni panna. Hiljem saab muudetud rakendust käivitada juba käimas olevas seadmes.

Projekt genymotionis käima

  • Kui genymotion töötab, siis saab käivitamise ajal valida käimas olevate seadmete seast genymotioni oma.


Failid (projekti all):

  • src/ - lähtekood, java-failid
  • res/ - ressursid
  • res/layout/activity_main.xml - peamine layout
  • res/values/strings.xml - sisaldab kõiki sõnesid, mis rakenduses kasutada saab
  • AndroidManifest.xml - rakenduse seaded

XML-failide puhul saab sisuakna all olevate tab'idega valida kas lähtekood (tekstiline näitamine) või graafiline näitamine.

Koodinäide loengust

src/com/example/smartguy/MainActivity.java: <source lang="java"> package com.example.smartguy;

import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView;


public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       
       Button askButton = (Button) findViewById(R.id.ask_button);
       
       askButton.setOnClickListener(new View.OnClickListener() {

@Override public void onClick(View v) { EditText questionField = (EditText) findViewById(R.id.question_field); String question = questionField.getText().toString(); TextView answerText = (TextView) findViewById(R.id.answer_text); ImageView answerImage = (ImageView) findViewById(R.id.answer_image); double random = Math.random(); if (random > 0.6) { answerText.setText("Probably Yes!"); answerImage.setImageResource(R.drawable.thumbs_down); } else { answerText.setText("No!"); answerImage.setImageResource(R.drawable.borat_thumbs_up); } } });

   }
   
   @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;
   }
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
       // Handle action bar item clicks here. The action bar will
       // automatically handle clicks on the Home/Up button, so long
       // as you specify a parent activity in AndroidManifest.xml.
   EditText questionField = (EditText) findViewById(R.id.question_field);
  
       int id = item.getItemId();
       if (id == R.id.action_settings) {
       questionField.setText("Are settings useful?");
           return true;
       } else if (id == R.id.weather_question) {
       questionField.setText("Is it going to rain today?");
       return true;
       }
       return super.onOptionsItemSelected(item);
   }

} </source>

res/drawable/: siin on 2 pilti nimega: borat_thumbs_up.jpg ja thumbs_down.jpg (täiesti suvalised pildid sobivad)

res/layout/activity_main.xml: <source lang="xml"> <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="com.example.smartguy.MainActivity" >
   <TextView
       android:id="@+id/textView2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:text="@string/question"
       android:textAppearance="?android:attr/textAppearanceLarge" />
   <EditText
       android:id="@+id/question_field"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_alignParentRight="true"
       android:layout_below="@+id/textView2"
       android:ems="10"
       android:inputType="text" >
       <requestFocus />
   </EditText>
   <Button
       android:id="@+id/ask_button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/question_field"
       android:layout_centerHorizontal="true"
       android:text="@string/ask_button" />
   <TextView
       android:id="@+id/answer_text"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/ask_button"
       android:layout_centerHorizontal="true"
       android:textAppearance="?android:attr/textAppearanceLarge" />
   <ImageView
       android:id="@+id/answer_image"
       android:layout_width="200dp"
       android:layout_height="200dp"
       android:layout_below="@+id/answer_text"
       android:layout_centerHorizontal="true" />

</RelativeLayout> </source>

res/menu/menu.xml: <source lang="xml"> <menu xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:tools="http://schemas.android.com/tools"
   tools:context="com.example.smartguy.MainActivity" >
   <item
       android:id="@+id/action_settings"
       android:orderInCategory="100"
       android:showAsAction="ifRoom"
       android:title="@string/action_settings"/>
   <item
       android:id="@+id/weather_question"
       android:title="@string/action_weather"
       android:showAsAction="ifRoom">
   </item>

</menu> </source>

res/values/strings.xml: <source lang="xml"> <?xml version="1.0" encoding="utf-8"?> <resources>

   <string name="app_name">SmartGuy</string>
   <string name="hello_world">Hello world!</string>
   <string name="action_settings">Settings</string>
   <string name="question">Ask me anything?</string>
   <string name="ask_button">Ask</string>
   <string name="action_weather">Weather</string>

</resources> </source>