az első Android alkalmazás fejlesztése

miért érdekel minket az Android? Fontos számunkra az Android platform, mert ez a legszélesebb körben elterjedt mobil platform a bolygón, és világszerte elérhető a fogyasztók számára. Azokban a gazdaságokban, ahol a személyi számítógép birtoklása luxus, a mobileszközök használata a norma–és az Android nagy szerepet játszik az emberek összekapcsolásában. Mint ebben az oktatóanyagban megtudhatja, az Android külön megközelítést alkalmaz az alkalmazásokhoz. Az Android architektúrája nagymértékben testreszabható szoftverkörnyezetet tesz lehetővé a kért műveletek futásidejű kötésének és a kérések kielégítésére szolgáló kódnak köszönhetően. Legyen szó piacvezérelt megfontolásokról vagy az Android technikai szempontjairól, ez egy olyan platform, amelyet érdemes megvizsgálni. Továbbá, ha komolyan fontolóra veszi a platform mobil élményét, akkor nem hagyhatja figyelmen kívül az Androidot.

előfeltételek

ez az oktatóanyag több, egymással együttműködő technológiát igényel. Mindegyikre szüksége van ehhez az oktatóanyaghoz.

  • Android Studio – Android Studio az elsődleges kiindulási pont építésére Android Alkalmazások
  • Android készülék vagy emulátor – akkor eldönthetjük, akár egy fizikai Android készülék, vagy az Android emulátor. Akárhogy is, ennek az oktatóanyagnak az elolvasása segít megérteni az Android-alkalmazás alapvető csatlakozási pontjait.
  • forráskód – forráskód kivonatok ebben a tutorial tartalmazza:

    • Androidmegnyilvánul.xml kódrészlet-ez a fájl az alkalmazás telepítési leírója az Android alkalmazásokhoz.
    • főtevékenység.java-Ez egy Android tevékenységet valósít meg, amely az oktatóanyag mintaalkalmazásának elsődleges belépési pontja.
    • Activity_main.xml-ez tartalmazza a vizuális elemek vagy erőforrások definícióit az Android tevékenységek számára.
    • Androidmegnyilvánul.xml complete-ez felsorolja a teljes AndroidManfest.xml fájl, valamint az egyes fontos elemek leírása.

bemutatjuk az Android architektúrát

mielőtt belemerülnénk az Android Studio csínját-bínját és az Android alkalmazások fejlesztését, vessünk egy pillantást az Android architektúrájára és néhány kulcsfontosságú kifejezésre, amelyek hasznosak lesznek az oktatóanyagban és azon túl, amikor elkezdesz Android alkalmazásokat építeni magadnak.

Android terminológia

az alábbi kifejezések megértése hasznos az Android alkalmazásfejlesztésben az Android Studio segítségével.

  • Android egy nyílt forráskódú operációs környezet célzott mobil eszközök. Az Android egyre inkább megtalálható az “okostelefonokon”kívüli alkalmazásokban. Ide tartoznak a hordható technológiák, olyan készülékek, mint a projektorok, hangszórók és televíziók, sőt az autók is.
  • emulátor egy szoftver eszköz képviselője egy másik rendszer. Az emulátor gyakran olyan környezet, amely személyi számítógépen (PC, Mac, Linux gépen) fut, amely egy másik környezetet, például egy mobil számítástechnikai eszközt emulál.
  • a Linux egy nyílt forráskódú operációs rendszer kernel, amely számos számítástechnikai platform középpontjában áll, beleértve a szervereket, asztali számítógépeket, hálózati eszközöket és mobil számítástechnikai eszközöket. Az Android egy Linux kernel tetején fut.
  • az Android Run Time (ART) az Android veremben található operációs környezet, amely futásidőben hajtja végre az alkalmazáskódot. Az Android futási ideje felváltja a” régi ” Dalvik virtuális gép (VM) az Android korábbi verzióitól, amelyek a megfelelő Java virtuális géphez hasonló módon működtek.

a szándék

megalakulása óta az Android domináns erővé vált a mobiltelefon-térben. Alkalmazási modellje egyedülálló abban, hogy az alkalmazások nem monolitikus, menüvel terhelt alkalmazások, amelyek működéséhez sok kattintás és koppintás szükséges. Persze, vannak menük és gombok, amelyeket meg kell érinteni, de az Androidnak van egy innovatív tervezési eleme az architektúrájához, amelyet szándéknak neveznek.

a szándék egy olyan konstrukció, amely lehetővé teszi egy alkalmazás számára, hogy kérést adjon ki, ami kissé olyan, mint egy súgó-kívánt jel. Úgy nézhet ki, mint ezek:

  • “Wanted: Egy alkalmazás, amely segít megkeresni egy névjegyet ”
  • “Wanted: egy alkalmazás, amely segít megjeleníteni ezt a képet”
  • “Wanted: egy alkalmazás a földrajzi alapú keresés végrehajtásához.”

hasonló és kiegészítő módon az alkalmazások regisztrálhatják magukat, mint akik képesek és érdekeltek a különböző kérések vagy szándékok kielégítésében. A minősített hirdetési paradigma követése, ezek így nézhetnek ki:

  • “elérhető: alkalmazás kész és hajlandó bemutatni kapcsolatfelvételi nyilvántartások világos, tömör módon”
  • ” elérhető: Alkalmazás kész és hajlandó elvégezni a földrajzi keresést.”

ezek a szándék példáiszűrők, amelyeket a továbbiakban tárgyalunk.

az IntentFilter

az alkalmazások bejelentik, hogy rendelkezésre állnak az ilyen típusú műveletek végrehajtásához egy IntentFilter néven ismert konstrukción keresztül. A IntentFilter vagy regisztrált futásidejű vagy szerepel a AndroidManifest.xml fájl. A következő részlet egy Android alkalmazásból származik, amely válaszol a bejövő SMS (szöveges) üzenetekre:

<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>

Show moreShow more icon

IntentFilter rövid bemutatása után a következő rész bemutatja az Android alkalmazások négy fő típusát.

típusú Android Alkalmazások

vessünk egy pillanatra, hogy vizsgálja meg a négy fő típusa Android Alkalmazások:

  • Activity
  • Service
  • Receiver
  • ContentProvider

a felhasználói felület (UI) elemeinek megjelenítéséhez is megnézzük a nézeteket.

Activity apps

a tevékenység az Android Alkalmazások leglátványosabb és legkiemelkedőbb formája. Egy tevékenység bemutatja a felhasználói felületet egy alkalmazásnak, egy nézet néven ismert osztály segítségével. A nézet osztály különféle felhasználói felület elemekként valósul meg, például szövegdobozokként, címkékként, gombokként és más, a számítástechnikai platformokra jellemző UI-ként, mobil vagy otherwise.An az alkalmazás tartalmazhat egy vagy több tevékenységet. A tevékenységet általában egy-egy kapcsolatban határozzák meg az alkalmazásban található képernyőkkel.

egy alkalmazás egyik tevékenységről a másikra mozog a startActivity()vagy startSubActivity() néven ismert módszer meghívásával. Az előbbi módszert akkor alkalmazzák, amikor az alkalmazás egyszerűen “át akar váltani” az új tevékenységre. Ez utóbbit akkor használják, ha szinkron hívás / válasz paradigmára van szükség. Mindkét esetben a szándék argumentumként kerül átadásra a hívott módszerhez.

az operációs rendszer felelőssége meghatározni a legmegfelelőbb tevékenységet a megadott szándék kielégítésére.

szerviz-és vevőalkalmazások

a többi többfeladatos számítástechnikai környezethez hasonlóan vannak olyan alkalmazások is, amelyek “a háttérben” futnak, és különböző feladatokat látnak el. Az Android az ilyen típusú alkalmazásokat szolgáltatásoknak hívja. A szolgáltatás egy Android alkalmazás, amelynek nincs felhasználói felülete.

a Vevő egy alkalmazásösszetevő, amely kéréseket fogad a szándékok feldolgozására. Mint a szolgáltatás, a Vevő nem, a szokásos gyakorlatban, van egy UI elem. A vevőkészülékeket általában az Androidban regisztráltákmegnyilvánul.xml fájl.

a következő kódrészlet (amely megegyezik az IntentFilter esetében bemutatottal) egy példa a Vevő alkalmazás definiálására. Vegye figyelembe, hogy a vevő name attribútuma a Java osztály, amely felelős a vevő megvalósításáért.

<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>

Show moreShow more icon

a ContentProvider az Android mechanizmus adatok tárolására absztrakció. Nézzünk meg egy adott típusú adatot, amely egy mobil eszközön található: a címjegyzék vagy a névjegyek adatbázisa. A címjegyzék tartalmazza az összes névjegyet és telefonszámot, amelyre egy személynek szüksége lehet mobiltelefon használatakor.

a ContentProvider egy mechanizmus absztrakt hozzáférést egy adott adattár. Sok szempontból a ContentProvider adatbázis-kiszolgáló szerepében működik. Egy adott adattároló tartalmának olvasására és írására irányuló műveleteket a megfelelő ContentProvider – on keresztül kell továbbítani, ahelyett, hogy közvetlenül hozzáférne egy fájlhoz vagy adatbázishoz. A ContentProvider“kliensei” és “implementációi” is lehetnek.

Android nézetek

az Android nézetek a felhasználói felület mechanizmusa, amellyel a dolgok megjeleníthetők egy Android-eszköz képernyőjén. Az Android-tevékenység nézeteket alkalmaz a felhasználói felület elemeinek megjelenítéséhez. Néhány népszerűbb elrendezési terv a következőket tartalmazza:

  • LinearVertical-minden további elem követi elődjét azáltal, hogy egyetlen oszlopban áramlik alatta.
  • Lineárisvízszintes – minden következő elem követi elődjét, egyetlen sorban jobbra áramolva.
  • táblázat – sorok és oszlopok sorozata, hasonlóan egy HTML táblázathoz. Minden cella egy nézet elemet tartalmazhat.
  • kényszer – minden elem “korlátozott” a kijelző egy aspektusához, például a képernyő tetejéhez vagy oldalához vagy egy másik elemhez. Ez az elrendezés segíti az “érzékeny” alkalmazások felépítését, és az Android platform korábbi verzióiban bevezetett örökölt relatív elrendezés örököse.

miután kiválasztott egy adott elrendezést (vagy elrendezések kombinációját), az Egyedi nézetek kerülnek felhasználásra a felhasználói felület meghatározásához.

a Nézetelemek ismerős felhasználói felület elemekből állnak, beleértve:

  • ImageView
  • EditText a bemenet különböző szűrőkkel történő összegyűjtése, például dátum vagy numerikus
  • TextView (hasonló a címkéhez, statikus szöveget jelenít meg)
  • jelölőnégyzet
  • rádió gomb
  • Fonó (hasonló a “legördülő” kombinált dobozhoz)
  • Automatikus kiegészítés (EditText Automatikus szöveg-teljes funkcióval)

a nézetek egy XML fájlban vannak meghatározva. Ez például egy egyszerű LinearVertical nézetet jelenít meg, gombokkal és szövegnézetekkel:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" ><TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Activity 1!" /><TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Activity 1, second text view!" /><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Switch To Activity 2" /></LinearLayout>

Show moreShow more icon

https://developer.android.com/, görgessen lefelé az Android Studio letöltéséhez. Az Android Studio elérhető Windows, Mac és Linux rendszerekre.

az Android Studio az IntelliJ IDE platformon alapul. Ha Ön olyan fejlesztő, aki érdekes a billentyűparancsok kihasználásában, akkor fontolóra veheti, hogy többet megtudjon az IntelliJ-ről a jetbrains webhelyről.

első lépések az Android SDK-val

most, hogy az Android Studio telepítve van, itt az ideje, hogy megkapja a szoftverfejlesztő készletet (SDK) az Android számára.

de mielőtt tovább mennénk, beszélnünk kell az Android verziókról.

Android verziók

a kezdetektől fogva az Android egy kissé párhuzamos útvonalon jelent meg a numerikus kiadások, az API szintek, valamint az “édes” nevek, beleértve a Jelly Bean, a KitKat, az Oreo és más cukrászati Kedvenceket.

könnyű elárasztani a rendelkezésre álló választási lehetőségeket. Most már csak egy kicsit meg kell értened ezt a “verzió tájat”, hogy elkezdhesd Android fejlesztőként.

az Android számos verziója vagy változata létezik a vadonban. Ha kereskedelmi kiadás iránti kérelmet fog írni, akkor tudnia kell, hogy mely eszközöket célozza meg. A Wikipedia szép összefoglalót tartalmaz az Android verziókról, a nevekről, a megjelenési dátumokról, valamint egy grafikáról, amely az egyes eszközök hozzávetőleges számát ábrázolja a piacon.

az újabb eszközök a legújabb kódot futtatják, a régebbi eszközök pedig némileg korlátozhatják az Android újabb verziójára való frissítés képességét. Néha az újabb verziók olyan képességeket támogatnak, amelyeket a régebbi készülékek nem képesek támogatni (gondoljunk csak a második kamerára, a közeli terepi kommunikációra stb.). Egy másik nem triviális ok, amiért a régebbi készülékek nem tudják futtatni a legújabb Android verziót, az az, hogy mind a gyártónak, mind a távközlési szolgáltatónak (Verizon,&T-nél stb.) támogatnia kell az ökoszisztémájukban futó szoftvert. Az új operációs rendszer támogatása erőforrásokat igényel az eszköz gyártójától és a szolgáltatótól. A piaci erők azt sugallják, hogy ezek a piaci szereplők inkább a jövőbeli értékesítésekkel foglalkoznak, mint a korábbi értékesítések támogatásával, és ennek megfelelően fektetik be humán tőkéjüket.

szoftverfejlesztőként mit számít, hogy az operációs rendszer új verziói vannak? Ez két nagy kategóriába sorolható, amikor az alkalmazások programozásáról van szó:

  • az operációs rendszer új verziója gyakran új funkciókat vezet be, amelyeket kihasználhatunk és/vagy felhasználói bázisunk elvárja alkalmazásaink támogatását.
  • a környezet régebbi (vagy régebbi) jellemzői valójában akadályozhatják az újabb funkciókat és/vagy alacsonyabb szintű megközelítést jelenthetnek egy adott funkciókészlet biztosításában. Néha a kódot valóban el kell távolítani az API-definíciókból. Van egy speciális kifejezés a korábban működő kód “eltávolítására” – ezt”kód elavulásnak” nevezzük. Amikor egy API-t eltávolításra jelöltek meg, azt mondjuk, hogy ez egy elavult API. Ez lényegében egy üzenet a fejlesztőnek, amely így megy: “figyelmeztetés” Ez a kód a jövőben eltávolításra kerül, kérjük, ennek megfelelően tervezzen.”

az Android platform meglehetősen liberális (vagyis kedvező a fejlesztő számára) az elavult kód megközelítésével, lehetővé téve az alkalmazások számára, hogy a régebbi API-kat még egy ideig használják, miután elavultnak jelölték őket. (Ez a megközelítés ellentétben áll az Apple megközelítésével az elavult kóddal az iOS-ben, ahol a régebbi kód egyszerűen csak leállhat a következő operációs rendszer kiadásán. IOS esetén úgy tűnik, hogy még a programozási nyelv is megváltozik, miközben nem keresünk!)

bár az Android kissé megbocsátóbb lehet az elavult kód hosszú szenvedésével, szemmel kell tartanunk a dokumentációs címkét, amely azt mondja, hogy egy adott API elavult. Ha egy általunk használt kód elavultként van megjelölve, akkor végül meg kell változtatnunk a megközelítésünket az alkalmazásunk egy jövőbeli verziójában, mert az elavultként megjelölt API-k eltávolíthatók egy későbbi kiadásban. Az SDK-ban szereplő elavult markerek a jövőbeli fejlesztési lehetőségek és a potenciális fejfájás ütemterve. Néha a dolgok” új ” módja egyszerű és egyenes, de nem minden esetben!

sikeres mobil alkalmazásfejlesztőnek lenni folyamatos befektetést igényel egy olyan alkalmazás élettartama alatt, ahol az idő általában úgy telik el, mint a kutya évek…nagyon gyorsan!

ezzel az alapvető bevezetővel az Android verzióihoz itt az ideje megszerezni az Android SDK-t.

megszerzése és telepítése az Android SDK

Start Android Studio. Az Eszközök menüben válassza az SDK Manager lehetőséget. Ez a menüpont betölti az Android Studio Beállítások párbeszédpanelt, és előre kiválasztja az Android SDK almenüt. Ez a menü az elsődleges eszközünk az Android számos verziójához elérhető különféle SDK-kkal való interakcióhoz.

Screen shot Android Studio Beállítások párbeszédablak, az Android SDK Manager Felsorolja a rendelkezésre álló változat az Android SDK

minden kiadás az operációs rendszer, az API szint növekszik. Vegye figyelembe, hogy a felülvizsgálat lassabban növekszik, mint az API szint. A felülvizsgálatra úgy gondolhat, mint a platform” generációjára”, vagy mint” fő ” verziószámra. Az Android dokumentációjának böngészésekor ügyeljen arra, hogy jegyezze fel, melyik API-szintet vezette be egy adott képesség. Minden API a megadott vagy annál magasabb API szinten érhető el, kivéve, ha az API elavult, majd később eltávolításra került. Például a ContactsContract API-t az 5.szinten vezették be, amely ezen a ponton meglehetősen “régi”.

válasszon ki egy vagy két SDK szintet, amellyel most dolgozni szeretne. Az SDK Manager ezt követően letölti a kapcsolódó fájlokat,és elérhetővé teszi azokat az Android Studio-ban.

az Eszközök menü alatt is lehetőség van az AVD kezelő számára. Az AVD az Android Virtual Device rövidítése. Ez az emulátor. Az emulátor azért hasznos, mert lehetővé teszi számunkra, hogy teszteljük az alkalmazásokat különböző eszköztípusokon, méreteken és verziókon. Az oktatóanyag képernyőképei az emulátorból származnak. Erről bővebben később.

az első Android alkalmazás elkészítése

ez a bemutató végigvezeti Önt a SaySomething nevű alapvető Android alkalmazás létrehozásán, az Android Studio használatával és az Android emulátoron történő bemutatásával.

Szerezd meg a kódot

1. lépés: Új projekt létrehozása

  1. Fájl kiválasztása > új projekt.
  2. töltse ki az Android projekt létrehozása párbeszédpanelt, majd kattintson a Tovább gombra.

     Screen shot új projekt létrehozása párbeszédablak Android Studio

    a követelmények az új projekt tartalmazza:

    • alkalmazás neve
    • vállalati domain (ez com-ba fordul.tartomány), hogy az alkalmazások particionálva maradjanak, még akkor is, ha ugyanaz az alkalmazás neve.
    • projekt helye – a fájlok tárolásának helye
    • A Csomag neve az Alkalmazásnévből és a vállalati tartományból javasolt
    • alapértelmezés szerint az Android alkalmazások Java nyelven vannak írva. Ha alternatív nyelveket szeretne támogatni, mint például a C++ (natív kód esetén) vagy a Kotlin, jelölje be a megfelelő jelölőnégyzeteket.
  3. a cél Android-eszközök párbeszédpanelen adja meg az API szintet és a célplatformokat. Mint korábban említettük, az Android nem csupán telefonokra vonatkozik, bár céljainkhoz egyszerűen kiválasztjuk a telefon és a táblagép formáját ehhez az oktatóanyaghoz. Ezután kattintson a Tovább gombra.

     képernyő lövés cél Android készülékek párbeszédablak Android Studio

  4. a tevékenység hozzáadása a mobilhoz párbeszédpanelen válassza ki az üres tevékenységtípust. Ezután kattintson a Tovább gombra.

    Screen shot of Add an Activity to Mobile dialog in Android Studio

    Ez létrehoz egy alapértelmezett alkalmazást, amely készen áll a felépítésre és közvetlenül az Android Studio futtatására.

  5. a tevékenység konfigurálása párbeszédpanelen adja meg az alkalmazás fájljait.

     a tevékenység konfigurálása párbeszédpanel képernyőképe az Android stúdióban

2. lépés: tekintse át a kódot

az alábbi ábra az új projektünk összetevőit mutatja:

az Android Studio

projekt részében látható Új Projektfájlok képernyőképe két mappa található: app és Gradle szkriptek.

  • a app mappa tartalmazza az alkalmazás összes kódját.
  • a nyilvánul mappát a app mappa tartalmaz AndroidManifest.xml, amely az alkalmazás telepítési leírója. Ez a fájl megmondja az Android készüléknek, hogyan kell kölcsönhatásba lépni az alkalmazással, milyen tevékenységet kell megjeleníteni az alkalmazás indításakor, amely az alkalmazásszolgáltatásokat célozza, mely ikonokat jelenítse meg és még sok más.
  • a java mappa tartalmazza az alkalmazás forráskódját. Ebben az esetben a fájl, amely végrehajtja a tevékenységünket, valamint néhány osztályfájlt az automatizált tesztek elvégzéséhez (amelyeket figyelmen kívül hagyunk ebben az oktatóanyagban).
  • a res mappa tartalmazza az alkalmazás erőforrásait, beleértve az ikonokat, elrendezési fájlokat, karakterláncokat, menüket stb.
  • a Gradle Scripts mappa tartalmazza az alkalmazás felépítéséhez szükséges összes szkriptelhető elemet. A Gradle build rendszer önmagában is téma. Most értsd meg, hogy ezek a szkriptek szabályozzák az alkalmazás felépítésének folyamatát – és ami a legfontosabb az érettebb projektek és csapatok számára, ezek a lépések mindegyike futtatható a parancssorból. Ez azért fontos, mert ez a megközelítés támogatja az automatizálást, és a folyamatos integráció kategóriájába tartozik.

most vizsgáljuk meg részletesebben a forráskódot.

az alkalmazás elsődleges tevékenysége

mintaalkalmazásunk egyetlen tevékenységből áll, amelynek neve MainActivity.

package com.navitend.saysomething;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.util.Log;import android.widget.Button;import android.widget.TextView;import android.widget.EditText;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("IBM","Hello there logcat!"); setContentView(R.layout.activity_main); final Button btnHitMe = (Button) findViewById(R.id.hitme); final Button btnMapMe = (Button) findViewById(R.id.mapme); final TextView tvLabel = (TextView) findViewById(R.id.thelabel); final EditText etLatitude = (EditText) findViewById(R.id.etLatitude); final EditText etLongitude = (EditText) findViewById(R.id.etLongitude); btnHitMe.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tvLabel.setText("Ouch!"); } } ); btnMapMe.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String coords = etLatitude.getText()+","+etLongitude.getText(); Log.i("IBM",coords); Uri mapsIntentUri = Uri.parse("geo:" + coords); Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapsIntentUri); startActivity(mapIntent); } } ); }}

Show moreShow more icon

MainActivity egy normál Java osztály, csomaggal és importálással, ahogy az várható volt.

  • MainActivitykiterjeszti a AppCompatActivitynevű alap Android osztályt, amely a android nevű csomagban található.támogatás.v7.app.
  • a onCreate()módszer a belépési pont ehhez a tevékenységhez, amely Bundle típusú argumentumot kap. A Bundle egy olyan osztály, amely lényegében egy térkép vagy hashmap körüli burkoló. Az építéshez szükséges elemek ebben a paraméterben kerülnek átadásra.
  • a setContentView(..) felelős az elsődleges felhasználói felület létrehozásáért a R. elrendezés használatával.fő argumentum. Ez egy azonosító, amely az alkalmazás erőforrásaiban található fő elrendezést képviseli. Vegye figyelembe, hogy az “R” osztály minden azonosítóját automatikusan generálja a build folyamat. Lényegében az összes korábban leírt res mappában lévő xml erőforrásfájl az R osztályban érhető el.
  • az alkalmazás erőforrásai

    az Android erőforrásai a projekt res nevű alkönyvtárába vannak rendezve, a korábban leírtak szerint. Az erőforrások számos kategóriába sorolhatók. E kategóriák közül három:

    • Drawables – ez a mappa grafikus fájlokat, például ikonokat és bitképeket tartalmaz
    • elrendezések – ez a mappa XML fájlokat tartalmaz, amelyek az alkalmazás elrendezéseit és nézeteit képviselik. Ezeket az alábbiakban részletesen megvizsgáljuk.
    • értékek – ez a mappa egy strings nevű fájlt tartalmaz.xml. Ez az alkalmazás karakterlánc-lokalizációjának elsődleges eszköze. A fájl színei.az xml hasznos az alkalmazás által használt színkódok meghatározásához. Ez a fájl analóg a CSS stíluslap azok számára, akik ismerik a webes programozási technikákat.

    elsődleges UI források a main_activity.xml fájl

    a mintaalkalmazás egyetlen tevékenységet és egyetlen nézetet tartalmaz. Az alkalmazás tartalmaz egy fájlt nevű main_activity.xml, amely a tevékenység elsődleges felhasználói felületének vizuális aspektusait képviseli. Ne feledje, hogy nincs hivatkozás a main_activity.xml ahol az elrendezést használják. Ez azt jelenti, hogy szükség esetén több tevékenységben is használható. Lásd a következő kódlistát

    <?xml version="1.0" encoding="utf-8"?><LinearLayout 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" android:orientation="vertical" android:gravity="center_vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="301dp"> <Button android:id="@+id/hitme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hit Me!" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="383dp" /> <Button android:id="@+id/mapme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Map Me!" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="460dp" /> </LinearLayout> <TextView android:id="@+id/thelabel" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Hello World, Say Something!!!!!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/etLatitude" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Latitude" android:inputType="numberDecimal" android:text="40.9241164" /> <EditText android:id="@+id/etLongitude" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Longitude" android:inputType="numberDecimal" android:text="-74.7213913" /></LinearLayout>

    Show moreShow more icon

    LinearLayout beágyazáson belül van egy második LinearLayout vízszintes elrendezésként rendezve. Ez a belső elrendezés tartalmaz egy pár gombot kütyü. A vízszintes LinearLayout alatt egyetlen TextView elem található, amely más fejlesztői környezetek címkéjéhez hasonlítható. A TextView statikus szöveget jelent, amely nem szerkeszthető. A TextView alatt két EditText widget található, amelyek numerikus bemenetekre vannak konfigurálva. Ezeket a bemeneti elemeket egy szélességi és hosszúsági érték rögzítésére használják, amelyet később továbbítanak egy térképészeti alkalmazásnak, az alábbiakban bemutatottak szerint.

    vegye figyelembe, hogy minden nézet elem rendelkezik attribútumokkal az android névtérben. Néhány attribútum minden nézetben közös — például a android:layout_widthés android:layout_height attribútumok. Az attribútumokhoz rendelkezésre álló értékek a következők:

    • Match szülő – ez kiterjeszti a nézet elemet, hogy a rendelkezésre álló maximális helyet foglalja el. Ez úgy is felfogható, mint ” nyújtás.”
    • tartalom becsomagolása – ez az opció azt eredményezi, hogy az elem éppen annyira bővül, hogy tartalmazza a gyermek nézeteit vagy attribútumait, például szöveget vagy képet.

    telepítési leíró egy Android alkalmazás (AndroidManifest.xml)

    az Androidmegnyilvánul.az xml fájl egy Android alkalmazás telepítési leíróját jelenti. A fájl felsorolja az alkalmazásban található tevékenységeket, szolgáltatásokat, tartalomszolgáltatókat vagy vevőket, valamint az alkalmazás által támogatott megfelelő Intentfiltereket. Itt van a teljes Androidmegnyilvánul.xml fájl a minta alkalmazáshoz:

    <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.navitend.saysomething"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>

    Show moreShow more icon

    <manifest> címke lényegében osztályokat importál ebből a csomagból. A fájl összes nem teljesen minősített osztálya megtalálható a csomag attribútumban azonosított csomagban.

  • a <application> címke olyan attribútummal rendelkezik, amely az alkalmazás erőforrásaiból származó erőforrásra hivatkozik. Vegye figyelembe a különböző azonosítók előtti @ szimbólumot. Ez egy tipp az eszközlánc számára, hogy az egyes erőforrásokhoz keresse meg az alkalmazás erőforrásainak megfelelő mappáját.
  • a <tevékenység> címke tartalmazza a következő attribútumok és értékek megjegyzés:

    • android: name képviseli a Java osztály végrehajtása ezt a tevékenységet
    • android:label tartalmazza az alkalmazás nevét. Vegye figyelembe, hogy az egyik karakterlánc-erőforrásra hivatkozik. A karakterlánc.xml a fájl lokalizált karakterláncokat tartalmaz az alkalmazáshoz.
    • <intent-filter>képviseli a IntentFilter elérhető a minta alkalmazás. Ez a speciális művelet és kategória attribútumok a leggyakoribb IntentFilter látható Android Alkalmazások. Ez a szűrő lényegében azt mondja, hogy végrehajtja a fő műveletet (vagy belépési pontot), és elérhető az operációs rendszer jelenleg működő indító képernyőjén. Egyszerűen fogalmazva, ez azt jelenti, hogy alkalmazásként indítható az Android-eszköz elsődleges alkalmazáslistájából.
  • 3. lépés: Az alkalmazás felépítése

    az alkalmazás felépítéséhez válassza az Android Studio menüjében a csavarkulcs ikont (számomra inkább kalapácsnak tűnik).

    a korábban bemutatott építési folyamat egy többlépcsős folyamat, amely bármely adott alkalmazáshoz testreszabható. Ehhez az oktatóanyaghoz nem módosítjuk az építési folyamatot. Az építési folyamat kimenetének így kell kinéznie:

    Screen shot a Build kimenet Android Studio

    bizonyítani a build folyamat, bevezettünk egy hibát a forráskódot; hozzáadtunk egy extra helyet a módszer nevében findViewById, az alábbi ábrán látható:

    Screen shot of intentional error in source code

    ez létrehoz egy szintaxist vagy elemzési hibát, amelyet a build folyamat vesz fel, és megjelenik az Android Studio build eredmények ablakának részleteiben. A forráskód hibájának kijavítása után az alkalmazás megfelelően felépül, és a hibák eltávolításra kerülnek a problémák listájáról.

    4. lépés: Futtassa az alkalmazást

    most, hogy az alkalmazás sikeresen lefordított, itt az ideje, hogy futtassa a mintaalkalmazást.

    korábban ebben az oktatóanyagban az AVD Manager került bevezetésre az emulátor konfigurálásának eszközeként az alkalmazások teszteléséhez, valódi eszköz nélkül. Az alkalmazás futtatása az emulátor használatával különösen hasznos, mert lehetővé teszi a tesztelést anélkül, hogy számos költséges eszközt kellene vásárolnia.

    emulátor, vagy helyesebben egy Android virtuális eszköz (AVD) beállításához válassza az eszközök > AVD Manager lehetőséget. Vagy egyszerűen kattintson a lejátszás (Futtatás) ikonra.

    ez egy ablakot indít el, amely lehetővé teszi, hogy kiválasszon egy valódi eszközt, amely USB-kábellel csatlakozik, vagy egy rendelkezésre álló AVD-példányt, az alábbi ábrán látható módon:

    a telepítési cél kiválasztása párbeszédablak és az új virtuális eszköz létrehozása bekarikázva

    ha vannak csatlakoztatott eszközök, mindegyik megjelenik a csatlakoztatott eszközök alatti legördülő menüben. Alternatív megoldásként válasszon az elérhető virtuális eszközök közül. Az előző ábrán, van egy AVD meghatározott jogosult Nexus One API P. Új AVD létrehozásához válassza az új virtuális eszköz létrehozása gombot.

    végül kattintson az OK gombra az alkalmazás elindításához a kiválasztott telepítési célon. Az AVD vagy emulátor elindul a rajta futó mintaalkalmazásunkkal.

    az emulátorban vagy AVD-ben futó minta alkalmazás képernyőképe

    5.lépés: tesztelje az alkalmazást az emulátorban

    most, hogy az alkalmazás az emulátoron fut, vessünk egy pillantást arra, hogy mi történik a színfalak mögött. Az Android Studio alkalmazásban válassza a Nézet > Eszközablakok lehetőséget. Mi lesz kiemelni csak egy pár ilyen eszköz lehetőségek, bár mindegyik egy téma hozzátok is.

    Android Studio Tools

    először nézze meg az Android Profiler-t, amely a CPU, a memória és a hálózati forgalom futó diagramját ábrázolja. Az Android Profiler lehetővé teszi számunkra, hogy váltsunk a különböző eszközök/emulátor példányok és a megfelelő futó folyamatok között. Az alábbi ábra az emulátorpéldányon futó mintaalkalmazásunk mutatóit mutatja.

    Screen shot az Android Profiler a futó minta app

    naplózás hasznos eszköz minden fejlesztő bármilyen platformon. Az Android fejlesztők számára az eszköz neve LogCat.

    a LogCat egy futó naplófájl tevékenység zajlik a virtuális gép. Az alkalmazások saját bejegyzéseket tehetnek erre a listára egy egyszerű kódsorral az alábbiak szerint: napló.i (tag,message);1, ahol a tag és a message mindkettő Java karakterlánc. A Logosztály része a android.util.Log csomag.

    Screen shot a LogCat a futó minta app

    egy másik hasznos eszköz a file explorer, amely lehetővé teszi a fájlrendszer hozzáférést az emulátor. Az alábbi ábra azt mutatja, hogy az oktatóanyag mintaalkalmazása hol van telepítve az emulátoron.

    Screen shot az eszköz File Explorer

    felhasználói alkalmazások telepített /data/appmíg az Android beépített alkalmazások találhatók a /system/app könyvtárban.

    egy Android alkalmazás teljes körű hibakeresése túlmutat ezen oktatóanyag keretein, bár biztos lehet benne, hogy az Android Studio támogatja az összes modern alkalmazás hibakeresési eszközt, amire reménykedhetünk olyan dolgokkal, mint például a funkcióhívások átlépése és átlépése.

    tesztelése a minta alkalmazás

    érintse meg a Hit Me! a címke tartalma ” Jaj!”

    a minta alkalmazás képernyőképe az emulátorban, miután megérintette a Hit Me gombot

    érintse meg a térképet nekem! elindul egy leképező alkalmazás a megadott szélességi és hosszúsági fokokkal, amelyeket az EditText widgetek tartalmaznak.

    a minta alkalmazás képernyőképe az emulátorban a Map ME gomb megérintése után

    a gombok bekötése a Főbenaktivitást.xml kód. Különösen figyeld meg, hogy a szélességi és hosszúsági értékeket hogyan bontják ki és csomagolják egy Szándékba, amelyet később a leképező alkalmazás elindításához használnak.

    ez a bemutató bemutatta az Android platformot, az Android stúdiót és az Android fejlesztés legfontosabb elemeit. Most készen kell állnia saját Android-alkalmazások létrehozására.

    készen állsz valami többre? Próbálja ki ezt az oktatóanyagot, ahol Bluetooth Low Energy (ble) API-kat használ az IoT-hez csatlakoztatott eszközök építéséhez.

    Leave a Reply

    Az e-mail-címet nem tesszük közzé.