[Powered by Google Translate] [Szeminárium] [Android Apps (Most Jelly Beans!)]
[Jordan Jozwiak] [Harvard Egyetem]
[Ez a CS50.] [CS50.TV]
>> Hello mindenkinek, és üdvözöljük a Android Apps (Most Jelly Beans!) Szeminárium.
Úgy hívják Most Jelly Beans, persze, mert
legújabb változata az operációs rendszer neve Jelly Bean.
Amikor beszéltem Android tavaly, és tette ezt lényegében ugyanaz szeminárium
Én bemutató tervezési minták és stilisztikai választás Mézeskalács,
bár Ice Cream Sandwich jött ki abban az időben,
és ez az, amit fogunk beszélni, megy előre egy kicsit.
Android, természetesen van néhány kérdés a töredezettség,
így a legújabb Google operációs rendszer általában
nem igazán fog válni gyakori a felhasználók körében a potenciálisan akár egy évig, sajnos.
>> De figyelmen kívül hagyva, hogy fogunk beszélni, sok oka
Android sokkal jobb, mint iOS.
Oké, majd beszélünk Android vs iOS,
egyes tervezési paradigmák, hogy kapsz létre csak egy csúszda,
és a nagy különbség az elmúlt évben, hogy én csak azt szeretném,
zoom valamilyen fogalmi dolgot dolgozik
az operációs rendszert, majd bemegy egy nagyon egyszerű példa.
Tény, hogy csak a példa, hogy a Google leírja az épület az első alkalmazás,
és mi végig együtt, és csak le.
>> Tudom, hogy sokan csak a kódolt C, így a Java már lesz
egy másik szempontból, és ez így lesz a lábát a nedves
és úgy érzi, egy kicsit kényelmesebb vele remélhetőleg.
Egy gyors összefoglaló, Android vs iOS.
Android van ez egyszeri fejlesztői díj $ 25
mindez 100 $ évente dolog.
Nincs korlátozás, ami azt jelenti, hogy ha akarom, hogy nyújtson be egy app,
Én csak be, és nincs jóváhagyási folyamat, mint van az iOS.
Kapsz kialakulhat Java segítségével Eclipse,
amely platformfüggetlen, így nem számít, ha van egy Mac,
Windows vagy egy Linux gép.
Természetesen, az iOS meg kell használni XCode egy Mac,
és az Android használják sokkal több ember,
Tehát, ha azt szeretné, hogy app, hogy valamilyen látási vagy esetleg
hogy egy kis pénzt a reklámok
akkor valószínűleg nagyobb valószínűséggel részesülnek Android.
>> És egy dolog, ami mindig is ismert Android
az extrém mennyiségű testreszabás, míg iOS nagyon rögzített útjaik
úgy, hogy fenn tudja tartani a biztonság és ellenőrzés minden apró eleme
A tervezés saját operációs rendszer és az egyes alkalmazások.
Android nagyon szabad formában, és van sok több lehetőséget.
Oké, néhány tervezési paradigmák.
Figyeljük meg itt, mint iOS van tabletták és iPhone és iPod érint
meg kell támogatni, mondjuk, mint egy tucat eszközt, ha azt szeretné, hogy támogassák
történelmi dolgokat is.
Az Android meg kell támogatni száz eszközök
így van néhány dolog, hogy a Google már próbálta végrehajtani
hogy a felhasználói élmény egy kicsit következetesebb,
de akkor is beszélni, hogy ez azt jelenti, hogy vannak olyan kérdések töredezettség
hogy folyamatosan kell tisztában támogató.
Széttagoltság azt jelenti, hogy számos különböző operációs rendszerek,
különböző telefonok különböző hardver futó Android minden ugyanabban az időben,
így ez a grafikon itt megy vissza kb 6 hónap.
Ja, 6 hónap, és láthatjuk, hogy a legsötétebb sáv
az alját Jelly Bean, ami kijött a nyár,
és láthatjuk most valószínűleg mintegy 2%-a telefonok is.
>> Ice Cream Sandwich jött ki több mint egy évvel ezelőtt,
és negyede a telefonok is.
Még mindig sok a telefonok, amelyek a OS verziót évvel ezelőtt.
Egy dolog, hogy a Google igyekezett tenni, hogy a felhasználói élmény
sokkal konzisztens apps indul a Honeycomb,
amely a tabletta változata, majd Ice Cream Sandwich és a Jelly Bean,
ők nagyon igyekszem hangsúlyozni ezzel a cselekvés bar,
amely a mi látható a tetején itt,
Minden itt, köztük ez a kis beállítások gombra.
Ez a tervezési választás.
Most, amikor megjelenik a 3 pont azt jelenti, kattintson erre,
és lesz egy legördülő menüből, amely valamilyen beállítást.
Ez csak azt mutatja, mert rákattintottam ezt a gombot.
Ez az, amit meg akarnak használni, hogy alkalmazásokat egy kicsit következetesebb
az egész fórumon, így a felhasználó egy jobb értelemben egységes tapasztalat.
>> Oké, ha még nem tette meg, vagy már ha nézed otthon
akkor kövesse az alábbi lépéseket, hogy hozzanak létre a kódolási környezetet.
Ez magában foglalja majd a honlapon itt.
Akkor a Google Android SDK telepítése
és a következő néhány leírásokat is.
Ők azt mondják, mindent.
Ezek telepítése az SDK, letölthető Eclipse Classic változat,
még akkor is, persze, mi kódolás a Java.
Azt javasoljuk, ez, és akkor ez a ADT az Android Development Tools,
egy plugin, hogy telepítse a Eclipse, amely lehetővé teszi, hogy
sokkal korszerűbb tapasztalat Android belül Eclipse.
Ez ad egy kis grafikus felhasználói felületek
tervezése a véleményét, és kapsz sokkal több támogatást
és a képesség, hogy indítson az emulátor, és minden ilyesmi.
Alkalmazás keretet.
>> Szeretnék beszélni arról, hogy a projekt keretében Android épülnek,
aztán megyünk egy gyors példa, és remélhetőleg
lehet kérdéseket bármely pontján, és jól érzik magukat a végét.
Van néhány zsargon először.
Egy tevékenység olyan, mint a képernyőn lát, amikor elindítja egy kb.
Az egész élmény maga a tevékenység,
így lehet gondolni rá, mint egy képernyő vagy a nézet,
de valójában a forráskód oldalát.
Még mindig hívja a tényleges felület része a kilátás.
Ez a fajta, mint például, hogy a Pset 7 volt a vezérlő, majd a kilátást.
A tevékenység több vagy kevesebb a vezérlő,
és a kilátás az, amit csinálunk szempontjából az XML
társított e tevékenység.
Töredékek valami, ami végre Ice Cream Sandwich jövőre.
Ez csak egy ötlet, hogy része azon a véleményen van, vagy a tevékenység
és elosztjuk őket külön területre, hogy mi is
tegyük kód is használható az ilyen sok különböző eszközöket
hogy meg kell támogatni, és ez csak egy módja, hogy megpróbáljuk
is tényező többet kódot.
A szolgáltatások háttér dolgok, mint a zenelejátszás és navigációs irányok lehetséges.
A tartalomszolgáltatók, ezek API-k az operációs rendszer
hogy lehetővé teszi a hozzáférést megosztott adatok, például elérhetőségi adatait,
, majd egy szándék van valami, amit majd használni akarjuk indítani
egy új tevékenység a jelenlegi tevékenységet.
>> Helló Android, ez lesz a projekt, hogy beszéljük meg.
Én valójában nem ez az Ön számára, és aztán csinál egy dolgot, amikor kattintson a gombra
néhány szöveg és elindít egy új tevékenységet.
Nagyon egyszerű, de azt akarom, hogy menjen át
mi megy egy ilyen projekt.
Amikor, hogy az új projekt látni fogod a Eclipse
itt van ez a projekt az úgynevezett Helló Android.
Aztán ott van egy csomó mappa itt.
Azok, akiket igazán érintett a forrás mappa,
az erőforrás mappa a res, és bizonyos mértékig a libs mappa a könyvtáraknak.
És csak hogy az ugyanazon az oldalon, hogy a
Ha úgy döntesz, hogy hozzon létre egy új projektet,
akkor ezt itt, így ha azt akarom nevezni HelloAndroid,
és akkor automatikusan csinál egy csomó információt számunkra.
A csomag neve állítólag egy egyedi azonosítót
amely általában kapcsolódó honlap, ha van neki.
>> Például, hívja ezt net.cs50.helloandroid.
És már készül a projekt egyszerre.
Oké, sajnálom. Nevezzük HelloCS50.
És akkor meg fogja kérdezni a dolgokat, mint hogy milyen ikon akarunk tenni.
Ez mind azért, mert az Android Developer Tools felület,
a plugin, amit hozzáadott Eclipse, így lehet választani a dolgokat, mint
amit ikon akarunk, és hogy menne abba a mélység, ha akarunk.
De a végén, csak, hogy a projekt
és minden felbukkan itt.
Ahogy azt mutatta, a másik képernyőn
megvan a forrás mappát, és fogok beszélni arról, hogy mit jelent mindez hamarosan,
de látni, hogy azonnal tart minket a HelloCS50 képernyőre.
Vannak gombok itt a hozzá szöveget és a szöveg mezőbe elrendezés.
Ez a fajta, mint XCode de sajnos nem annyira áramvonalas.
De a klip lesz a barátod, és ADT különösen ezt.
>> Oké, a forrás mappát, ahol
A Java fájlokat tárolja, és ez valójában a dob a program.
Ez alapvetően, mint a vezérlők.
Az erőforrás mappa vagy a res, ahol mi folyamatosan képernyő elrendezések,
képek, hangok, szöveg, animáció és minden mást, könyvtárak, nyilván, könyvtárak.
És a nyilvánvaló, ez az út, hogy az Android rendszer tudja
hogyan hatnak a kb.
Azt mondja, hogy az engedélyek, és milyen tevékenységeket ténylegesen futni.
Ez az összes lényeges információt, ami szükséges futtatni a kb.
A forrás mappa, ha bővíteni, mint látható itt.
És egy példa arra, hogy a kód nézne-ez az alapértelmezett kód.
Ahogy nevezte, MainActivity.
Alapértelmezésben kapunk OnCreate, ami egy olyan funkció, hogy hívják, amikor ezt a tevékenységet terhelés,
így a hívni kívánt OnCreate (savedInstanceState).
Ez visszaállítja minden bit információt
abban az esetben az alkalmazás megszakadt.
>> Van egy egész tevékenység életciklusának táblázat, amely akkor nézd meg
ha egy kicsit mélyebb benne,
de a legfontosabb kódsor van ez setContentView funkció
amely betölti a forrás fájlt az elrendezés.
Akkor mi OnCreate itt alapvetően csinál ez mond
amikor létre ezt a tevékenységet szeretném betölteni ezt az elrendezést.
És fogunk beszélni, hogy mi az elrendezés a második.
Ha kellett indítani, hogy itt úgy néz ki, pontosan olyan, mint ez,
és alapértelmezés szerint azért van, mert Eclipse ezt és ADT csinálja nekünk
ez minden boilerplate kód, amely a teremtett számunkra,
és mi lehet lépni, és változtatni a dolgokat, ahogy mi szeretjük.
Az erőforrás mappa, mint mondtam, ez az, ahol tartunk minden elrendezés,
drawables tekintve bármilyen kép-
ők hívják drawables-, majd hangfájlok, menüket.
Ez egy módja annak, egy csomó XML egy szép rendezett módon.
Mint látható, vannak. Hdpi, ldpi, mdpi és xhdpi mappákat az drawables.
Ezek a különböző képernyő sűrűségű, így a nagy sűrűségű pixel per inch,
alacsony sűrűségű, közepes sűrűségű, extra nagy sűrűségű.
>> Ez megint, így tudjuk támogatni ezeket a különböző eszközöket,
és ideális esetben, akkor a különböző képek minden különböző felbontású.
Elrendezések, ahol is a különböző elrendezést, hogy lehet használni a különböző tevékenységek.
Ők is elrendezések töredékek,
ami azt jelenti, részleges tevékenységeket alapvetően.
Ha akarsz valamit, jó, mint amikor forgatni a telefont
azt szeretné, hogy egy másik elrendezés, amit tehetünk, layout-táj, mint egy másik mappába,
és az Android automatikusan egy egész csomó ilyen szabályok a forrás mappát,
így tudni fogja, hogy nézd meg a különböző mappákban alapján a jelenlegi felállás a telefon,
milyen hardvert használ.
Hasonlóképpen, ez az érték-V11 itt és értékek-V14
és az alapértelmezett értékek mappához ez for-
jól, értékek is, ez lesz az alapértelmezett értékek minden változata az operációs rendszer.
Másrészt, V11 és V14 felelnek Méhsejt
és Ice Cream Sandwich, ill.
Megint ezek olyan módon, hogy ezek a mappák, a különböző húrok
és stílusok, így testre a megjelenését a app
vagy esetleg még a funkcionalitás, bár ez valószínűleg egy rossz ötlet,
alapuló változata az operációs rendszer.
>> És beszéltem erről az egészről itt.
Ismét rajzolható, nyers, elrendezés, értékek.
Az alapértelmezett, ha bemegy Helló Android vagy Helló CS50 most
úgy fog kinézni, mint ez.
Azt fogja mondani, hello world.
Mint látható, itt az Android szöveg
A szöveg A szöveg nézet, ami alapvetően csak egy címke,
az, amit mi hívjuk iOS.
Ez a vicces jelölés @ string / hello_world.
Ez azért van így tudjuk, igyekszünk kivonat minden a húrok,
az összes kódolt string Android egy külön mappába,
amely történetesen a values.strings.
Ha megnézzük itt, azt látjuk, hogy van egy kódolt szöveg ide menti
A hello world, és úgy hívják hello world, és ez egyfajta
közös tervezési döntés között számos platformon kívánt,
húrok az a fajta dolog, amit szeretnék, hogy esetleg képes megváltoztatni.
Nem akarjuk, hogy ellenőrizzék F a forráskód fájl az XML.
Azt akarjuk, hogy képes megváltoztatni ezt, amikor megkapjuk az esélyt.
>> Ez az XML fájl, strings.xml, egy módja annak, kitermelése
kódolt karakterláncok, amelyek egyébként a mi elrendezés erőforrások
vagy a forráskód.
A Manifest Itt tartjuk az alapvető információk az alkalmazásról.
Ez magában foglalja a csomag nevét. Ez kell, hogy legyen egy egyedi azonosítót.
Ellentétben az App Store iOS nevét a pályázatok
Nem kell, hogy egyedi, és akkor valóban változtatni a nevét, az alkalmazás
után be, tehát ha elindul Angry Birds,
aztán, hogy egy frissítést, és nem akarom, hogy kiadja az új verzió
Azt hiszem, én is nevezni Angry Birds 2, amíg én vagyok az ugyanazon kiadási ciklushoz.
Ez csak azt mutatják ki, mint egy frissítést.
Az egyetlen dolog, egyedinek kell lennie ez csomag neve,
ami nem sok ember fogja látni.
Nos, azt csak látni, ha keresték meg a forráskódot, vagy ha van valami hiba.
Az elemek közé tartozik tevékenységek, így meg kell, hogy állapítsa meg
bármilyen tevékenység használunk.
Ez az engedély az ilyesmi.
>> Mivel az Android nem rendelkezik ezzel a szigorú pályázati folyamat
benyújtásának apps hanem ők csak mindent alapján le engedélyek
és kijelentette dolgok a Manifest.
Az SDK verzió is fontos.
Tudjuk meg használatra SDK minimálisan verzió valamit.
Nyilvánvaló, hogy szeretne létrehozni kód
és design az újabb operációs rendszerek.
Talán nem a legújabb, talán nem Jelly Bean.
Talán szeretne tervezni elsősorban Ice Cream Sandwich,
bár nagyjából megegyeznek egymással a tervezési döntések
és a tényleges könyvtárak és API-k.
De ahelyett, hogy az emberek
Az eredeti Android verzió, mint a fánk vissza, amikor-
aki még mindig megtörténhet, hogy használ, hogy megpróbálja letölteni az alkalmazást, majd mondja
ez nem működik a telefonon, akkor a minimális verzió
, és azt, hogy Gingerbread vagy Ice Cream Sandwich
vagy bármi jól érzi magát benyújtása.
És ez egy példa az nyilvánvaló. Azt is nézd meg a tényleges egy kicsit.
>> Oké, csak megy előre a demo most.
Ez az a demo, ha a Google Android építeni az első alkalmazás, vagy valami ilyesmi.
Megyünk át mindent, ami folyik ott,
és sajnálom, csak a referencia, aki itt tudja a Java bármilyen mértékben?
Oké, így a Java új kódolási nyelv a legtöbb ember jön ki a CS50.
Röviden, hogy menjen újra, mit mond itt,
amit akarok, és nem módosíthatja a hello world alkalmazás
hogy csinál ez elindítja, és azt mondja, hello world
és azt mondja, helló CS50 a tetején, mert ez a tevékenység nevét
fogunk kísérletet, hogy egy szöveges mező és a gomb
így amikor megnyomja ezt a gombot, hogy meg fogja tenni a szöveget
a szövegmezőbe, és elindít egy új tevékenység, és azt fogja mondani,
bármit, hogy a szöveg szerint a tevékenység, és ez a viszonylag egyszerű.
Ez nem túl érdekes. Ugye nem akarja, hogy kiadja minden app, mint ez.
De mutatja néhány fontos tervezési dolgot.
>> Mi lesz, hogy befolyásolja a nyilvánvaló, a layout fájlokat,
a forráskódot, és láthatjuk, hogyan lehet indítani egy másik tevékenység.
Kezdjük az elrendezés az első tevékenység,
ami tudom, hogy milyen kicsi,
de mint látható most is ez van azt a logót, amit teremtett,
a tevékenység nevét, és azt mondja, hello world központjában.
Ehelyett, én vagyok az első lesz, hogy ezt a lineáris elrendezés,
relatív elrendezés, és ezek mind olyan dolgok,
meg tudná nézni, és érdemes megy át egy bizonyos ponton szempontjából az elrendezés.
Ez olyan, mint a HTML.
Azt mondta, hogy nem igazán érdemes tudni szempontjából egy programszerű értelemben
de olyan sok különböző elrendezésben lehet ellenőrizni,
és ez, mint CSS szempontjából stílusokat.
>> Van egy csomó folyik csak szempontjából az esztétika itt,
és igen, ez érdemes megtanulni, de ez a fajta dolog, amit meg kell keresni
kirovó és úgy érzed, kell valami új.
Én kihasználhatják egyes ADT eszközök itt legalább, hogy elindul.
Csinálok egy szövegmezőbe, és teszem a gombot.
Tegyük fel a jobb egymás mellett.
Már átméretezni megfelelően.
Sajnálom, megint jön vissza a különbség a lineáris elrendezés és a relatív elrendezés,
lineáris elrendezés ad egy kicsit több funkció
tekintve töltő tér és gondoskodik róla,
mi pozíció dolgok vízszintesen vagy függőlegesen.
A nagy különbség a lineáris elrendezésű relatív elrendezés
a relatív pozíciók elrendezés minden képest más nézeteket,
és a jó dolog az, hogy kevesebb időt, hogy dolgozzon
mert az operációs rendszer úgy néz ki, meg az összes kódot, és azt mondja, ez megy
képest ez itt, itt.
Ez azt jelenti, ez teszi kevesebb mérés, mint egy csomó beágyazott lineáris elrendezés,
amit kellett volna tennie, ha akartam menni a dolgok függőlegesen itt.
>> Én már néhány dolgok vízszintesen, ezért lenne szükség a különböző lineáris elrendezése
a fészek függőlegesen, de ha csinálsz egy relatív elrendezés Mondhatnám
Tartsa meg a bal oldalon, hogy ez a helyes, és ezeket a dolgokat az alábbiakban.
Hanem azért, mert azt akarom, hogy töltse ki most fogom használni a lineáris elrendezés,
és láthatjuk, hogy már nem sok ilyen dolog számunkra.
Minden néző kell, hogy egy ingatlan a szélesség és magasság,
és ez történik, hogy egy 1 tömeg, és ez a súlya 1
úgy, hogy kitölti az egész teret.
De a szélesség és a magasság a legfontosabbak.
Ez az azonosító mezőt itt nem fontos a tényleges elrendezése
kivéve, ha a 'használ egy relatív elrendezés és azt mondom, hogy lehet hivatkozni
Egy nézet pozíciót hivatkozik egy másik.
Ha volt egy relatív elrendezés mondhatjuk helyzetben ez alatt ez
vagy e fölött azonosítója, de ez a szám fontos lesz
amikor mi használja a kódunk, mert lehet hivatkozni
ezek az egyes nézetek ezen a módon.
>> És akkor láthatja a címkét requestFocus, ami az, amit valószínűleg látott Pset 7.
Volt egy autofókusz tag vagy ezekhez hasonlót az egyik területen.
És egy dolog, persze, meg tudjuk csinálni, mint a HTML-ben,
és vegyük észre az egyik szép dolog ADT, hogy automatikus kiegészítéshez itt.
Lehet, hogy nem olyan szép, mint ahogy az Xcode, de ez ennek ellenére,
és azt mondhatjuk, hint, majd adja meg valami szöveg
mint írni egy üzenetet,
és ha adok, hogy egy pillanatra is észre, hogy kapok egy kis hiba itt
mondván, hogy kell használni a szöveges erőforrás ez,
így ha hagyjuk, hogy néhány, a kemény munka számomra
Tudom választani ezt a fonalat, akkor refraktor Android és kivonat Android string.
Tudom, hogy ez a név, írjon egy üzenetet,
és mi volt most ez váltotta fel hard-kódolt karakterláncot
való hivatkozással a string a string. xml fájlban,
ami azt jelenti, most ez itt.
>> És tudom, hogy úgy tűnik, egy kicsit triviális, és mint extra munkát ezen a ponton,
de ha van egy csomó dolog, egy csomó húrok,
ez nagyon fontos, és különösen a lokalizáció
mert ahogy korábban említettem, Android egy nagyon globálisan használt operációs rendszer
hogy egyszerűen nem érték-en, illetve értékeket-SP
vagy valami angol vagy spanyol, vagy más nyelveken.
És akkor valószínűleg még nem volt ez az élmény még
mert mi nem sokat JavaScript szempontjából a webes programozás,
de mi is csinálni ezen a területen az úgynevezett onClick a gomb,
és ez az egyik módja a hivatkozás a mi elrendezés
hogy szeretne egy bizonyos funkciót, hogy hívják a mi forráskód.
Fogom hívni ezt SendMessage,
és annak érdekében, hogy ez a munka azt jelenti, hogy a fő tevékenység van
Én létre kell hozni, hogy a funkció az állami
úgy, hogy elérhető legyen a layout.
Ez érvénytelen, mert csak nem akarom, hogy vissza semmit.
Hívjuk meg SendMessage, és tart annak érdekében,
amely egyfajta kontextus, hogy ezt a módszert is horgonyt
az, hogy az egyes view amikor kifutunk azt.
>> És nem tudom, hogy észrevette-nos, akkor nem lett volna észre,
de ezen a ponton itt
ez a nézet egy olyan típus, amely még nem szerepel,
és persze, mindenki tudja, hogy nem a CS50 beleértve típusok.
A szép dolog olyan, mint Eclipse IDE, hogy
ha elfelejti, hogy tartalmazza a típus fog hangsúlyozni egy kis piros squiggly
majd adja meg a lehetőséget, hogy importálni a nézetet.
Egy gyors módja ennek, hogy az irányítás váltás O, és ez lesz importálni
az összes fájlt, hogy kell.
Most, hogy ezt a funkciót SendMessage,
ami lesz küldése a MainActivity egy új tevékenység,
mi kell majd használni a szándékkal, hogy indítson az új tevékenység ez,
így akkor érdemes létrehozni egy globális konstans vagy is különösen a nyilvánosság állandó
, amely segít bennünket, hogyan fogunk hivatkozni a string
mert amikor létrehoz egy szándék mi nem csak hív egy új tevékenység,
de mi is, hogy ez egy csomó információt.
A csomag valójában a kifejezés, hogy az Android használ,
és ez így a mondás, hogy ez extra adat, amely nem lehet a nagyon kifinomult adattípust,
de lehet feltétlenül tartalmaznia Logikai vagy szövegek és ints.
Ez a fajta dolog.
>> Nyugodtan kérdezni bármelyik selejtezők itt,
nyilvános, a végső, statikus.
Közönség a fontos.
Ez azt jelenti, hogy akkor érheti el ezt a változót más forráskód fájlokat
mint például amikor egy új tevékenységet.
Mi lehet hivatkozni a szöveg ebben a fájlban.
Ha ez saját, ez azt jelenti, hogy csak erre az egyes fájlok itt.
De hívjuk ezt valahogy így extra üzenetet.
Most tették ezt a funkciót, és ha rákattint a gombra, ez a funkció kerül meghívásra.
De nem csinált semmit, nyilván, és a funkciót.
Amit akarok most egy új tevékenység,
a tevékenység, hogy valóban indul.
A Eclipse mondhatjuk új Android tevékenység üres tevékenység.
Adhatunk neki nevet.
Nevezzük ezt az eredmény tevékenységet.
És akkor ez a hierarchikus szülő a területen egy módja a meghatározó
hogy a tevékenységek kapcsolódnak egymáshoz.
Mert ez az egyik indul a többi tevékenység
meg kell határozni, hogy az a szülő fő tevékenysége.
>> És tudtam, hogy csattant a következő területen van, ami azt mondta nekünk
néhány opcionális mezők azt is beleértve,
de a szép dolog ADT, megint az, hogy ha én lapozás itt
A Manifest ne feledjük, hogy mindez tényleg alapértelmezés szerint tartalmazza
amikor eredetileg a projekt
és most, mert már használta ezt egy új tevékenység, nem pedig csak
hozzátéve a saját class fájlt, mert mentünk keresztül GUI ezt
már hozzá mindez a nyilvánvaló számunkra,
ami csak azt jelenti, hogy most már az operációs rendszer nem fog panaszkodni
amikor megpróbálja elindítani ezt a tevékenységet.
És ez is, persze, adott neki egy címke, ami azt is mutatja fel szálakat.
Ez nem egy csomó dolgot a háttérben számunkra.
Különben is, most, hogy van ez az eredmény tevékenységet is,
a tényleges forráskód fájlt a forrás mappa,
és láthatjuk, hogy röviden érinteni this-
mert azt mondták, hogy ezt a hierarchikus szülő
ez adta a területen android.r.ide.home ebben onOption kiválasztott dolog.
>> Amit ez alapvetően mondani, hogy van egy menü gombot már
hogy a bal felső sarokban
ha visszamegyek a PowerPoint, ahol először beszélt akció bar
mivel a hierarchikus szülő most van egy kis nyíl vissza
és ez kattintható így kell tenni, hogy-miután tényleg futtatni ezt app-
menj vissza, és ez a módja a megtakarítás minket egy kis kódot is.
Most ebben a hát, úgy tűnik, hogy panaszkodnak, hogy egy pillanatra.
Nézzük elmondták, hogy ki.
Most, annak érdekében, hogy valóban kölcsönhatásba ezekkel 2 tevékenységek
Hozzunk létre olyan szándékot, amely magában foglalja az összes ezeket az adatokat.
A SendMessage most megyek, hogy az óceánjáró valamilyen bit kód
és magyarázza, hogy mivel megyek.
A szándék, mint mondtam, egy módja annak, hogy indítson egy tevékenységet egy másik.
Szándék az a típus. Hozunk létre egy változó myIntent.
>> És ez valójában egy tárgy, ezért is meg kell hívni az új.
Ez a közös használat Java van, ami egy kicsit szokni kell.
Ez azt jelenti, amit használ a tevékenység vagy az osztály MainActivity,
és a szándék az, hogy azon a módon tevékenység ez megy a
és a tevékenység is fog, vagy ahogy mi hívjuk ResultActivity,
és ez a saját kategóriájában.
Közé tartozik, hogy.
Aztán ahogy már említettem, adtunk, hogy az ID a szerkesztés szövegmezőbe
és a szöveg nézet, ezért annak érdekében, hogy programozottan elfog
a szöveget, hogy létezik a EditText
használjuk ezt a funkciót nevezik findViewByID,
amely hasonló a valami, amit akkor használ, amikor megpróbál mezőket a DOM.
Talán David beszél az előadás.
De ez csak egy módja annak, hogy azok, hogy emiatt tag ezeket a dolgokat ezeken a területeken.
Id.editText1.
Ez már automatikusan kiegészülő meg ott.
>> És akkor majd is-ez EditText most, hogy a területen
belül a program minden findViewByID nem alapvetően
akkor gondolj rá, mint nekünk egy hivatkozást, amely EditText.
Most azt akarjuk, hogy a szöveg, vagy az üzenet
belül EditText amit tehetünk az a-
gondolkodnunk EditText mint a struktúra-
hívjuk egy tárgy Java-egy csomó különböző módszerek
vagy mezők és attribútumok kapcsolódik.
Amikor azt mondom, EditText. ez ad nekem az esélyt, hogy hozzáférést
olyan módszerrel, mint például Gettext, amely megkapja a jelenlegi szöveg
abban EditText majd átalakítani, hogy kifejezetten
egy string, és mentette az üzenetet.
Most tényleg akar valamit csinálni, hogy a szándék hoztuk létre pillanatok óra.
Teszek extra ahogy hívják a szándék,
ami megint, mint már mondtam, ez az egyik módja, hogy megteremtse a csomag
egy csomó adat.
Extra üzenet a tag, így tudjuk, hogy mi vagyunk a mentés alatt,
és akkor én vagyok köztük az üzenetet.
>> És akkor mi is valójában a tevékenység kezdetét azáltal, hogy a paraméter myIntent.
És ez valóban elindítja a tevékenység, így most, mert én frissített Windows 8
talán akad egy kis hiba, hogy megjelenik röviden, de próbáld figyelmen kívül hagyni őket.
És ez az Android emulátor.
Remélhetőleg a kód valóban felbukkan egy pillanatra.
Ismét, figyelmen kívül hagyva azokat a kis dolgokat.
De az Android emulátor segítségével emulálni bármelyik változata az operációs rendszer
a legkorábbi is, fánk, mézeskalács.
Ez a Jelly Bean 4.1.
De mint látható most, ez az, amit tettünk.
Ez a MainActivity a EditText a gombot.
Azt is írja valamit, de mit is hiányzik ezen a ponton?
Mi történt a területen a MainActivity hogy fog elküldeni az üzenetet
A másik tevékenység, de ezen a ponton
nem tettünk semmit a többi tevékenység, így nem fog kapni semmit.
Fejezzük ki azt a részét, mielőtt tovább megyünk.
>> Ez az eredmény tevékenység, amit akkor kell tennie, akkor kell tennie, hogy mi kell,
azt is hivatkozni a szándék belül ezt a tevékenységet,
így van, hogy rögzítse a szándék, ami nagyon egyszerű.
Ez egy funkciót tevékenységhez tartozó osztály,
így csak mondani, hogy "Szerezd meg az üzenetet a szándék."
"Szándék myIntent = getIntent."
És ez ad nekünk, most myIntent egy objektum,
amely egy hivatkozás a szándék vezetett bennünket, hogy ezt a tevékenységet.
MainActivity hívások és ad további információt az eredménylistához tevékenységet.
Eredmény tevékenység most úgy néz ki, a szándék vezetett, hogy itt,
és mi az üzenet, amit létrehozott a másikat,
getStringExtra, és ez autocomplete nekem.
Aztán emlékszem, ahogy mi címkézett, hogy kicsit az adatok
volt, azáltal, hogy ezen a téren itt, ezt a nyilvános string,
amely a tag a szöveg valójában is.
>> Ha azt mondom, MainActivity.Extra_Message
ott van, és ez a fajta, mint a paraméter neve
amikor elhaladtunk kódot a vezérlő a sablon,
amikor azt mondanám, hogy címet nyíl valamit.
Ez ugyanaz a fajta elképzelés van.
Nos, emlékezz erre.
Mi is volt az automatikus létre, vagy automatikusan generált kód
aktivitás az eredményhez, amely magában foglalja a szöveges nézet közepén
azt mondja hello world.
Azt esetleg tenni, hogy nagyobb.
Csináljuk az első.
Tudtuk, hogy ez 40 sűrűség független pixel.
Lássuk, ez szuper nagy. Ez rendben lesz.
És akkor, hogy hivatkozni ez az egyedi szöveges nézetben a kódunkat
mi kell, hogy ez egy azonosítót,
és annak érdekében, hogy ezt, hogy mondjuk @ + id, ami azt jelenti, hogy hozzá, hogy ID.
Ha csak azt mondta @ id lenne feltételezni, mi hivatkozik egy azonosítót, amely már létezik,
és nevezzük ezt a resultTextView.
És észre, hogy az XML-ben nincs szükség a pontosvessző, vagy ilyesmi.
Minden ezekben a címkéket.
Ez nagyon hasonlít a HTML-ben a sok érzékeit.
>> Beletelik egy kis megszokni, de végül akkor úgy érzi, elég kényelmes vele.
Nézzük frissíti a szöveget a szöveg eredmény szerint
és, mint mi, amikor mi voltunk, hogy egyre szerkesztő mezőbe a mi más tevékenység
A MainActivity itt is hasonlóképpen,
megtaláljuk a nézetet az azonosítót.
És R, ha nem említettem ezt korábban, az a hivatkozás, hogy a források mappába
majd ID egy utalás mindent a Resources mappában, mind az azonosítók,
és resultTextView.
És ahogy korábban, resultTextView egy objektum,
ami azt jelenti, hogy ezeket a tulajdonságokat az összes társított.
Amikor használja Gettext a Szöveg szerkesztése A szöveg mező vagy a szöveges nézet
tudjuk ténylegesen használni setText,
és akkor már megtalálta az üzenetet a szándék,
így azt mondhatom üzenetet, és ez valóban meg az üzenetet.
>> Ez egy pillanatra, hogy indítsanak, és akkor láthatjuk-e vagy sem, hogy összetörik,
de bármilyen kérdése van a folyamat ott, hogy az a fajta interakció?
Sok szempontból ez egyértelmű.
Azért megyek át valami viszonylag egyszerű
is, újra, mert akkor kap, hogy a kölcsönhatás az elrendezés,
a forráskódot, hogy hogyan hivatkozás dolgok
és talán egy kicsit expozíció hogyan Java ott dolgozik.
Ha tényleg írja itt valami, mint a ohai, aztán kattintson a gombra,
elindítja egy új tevékenység, és a szöveg nézet szerint ohai.
Ez nagyon egyszerű, de remélhetőleg utána példa
Ha valami, hogyan működik ez a kölcsönhatás, és most, hogy a rendetlenség a kép
a bal oldalon az összes ilyen projekt mappákat, remélhetőleg tudja, hol kell keresni most.
Ez az Ön forráskód területen.
>> Layout valóban az egyetlen dolog, amit kezelni, amíg nem tartalmaz képeket
és a drawables vagy bármi, és értékek, amelyek tartalmazzák húrok,
mint már említettük, majd stílus van valami, hogy ez a fajta, mint a CSS.
Cím, ha akarsz, de addig, amíg úgy érzi, kényelmes extra hangulattal
hogy az alkalmazás nem kell aggódni, hogy túl sokat.
Csak azért, hogy lezárja egy másik dolog, amit feltétlenül szeretne felvenni,
feltételezve azt szeretné, hogy integrálja hűvös jellegét, és mentse magát egy kis extra kódolás-
lenne, hogy 3rd party könyvtárak.
Itt van a kis Android srác a Sherlock Holmes kalapot.
Ez egy akció bar Sherlock könyvtár,
ami lényegében azt jelenti, hogy a cselekvés bar láttad korábban,
amely most szabvány Ice Cream Sandwich és a Jelly Bean,
ha azt akarjuk, hogy ez a fajta felhasználói élményt a felhasználók számára a régebbi verziók
, és mentse magát kell aggódnia, hogy a felhasználó fog navigálni
A régebbi verziók, amikor ez a dolog nem ott is ezt a könyvtárat
és akkor csak azt kell referencia helyett az alapértelmezett Android
könyvtárak az intézkedés bar, akkor hivatkozni ez a támogatás könyvtárat.
>> Dolgok, mint Scoreloop, ez nagyszerű, ha lesz is egy játék.
Ez lehetővé teszi hozzá vezető lapok és eredményeket játékokat.
AdMob a megfogalmazás hirdetéseket az alkalmazásokat
az esetre, ha szeretnénk, hogy egy kis pénzt le róla.
Természetesen van a Facebook és a Twitter integrálására van
Ha meg szeretné osztani a dolgokat könnyedén, satöbbi.
Dropbox, hasonlóképpen, és a Google Analytics, hogy a táblázat keres ott.
Ez nagyon fontos lesz, ha valóban szeretnénk látni, aki kölcsönhatásban
a app, vagy ki az, hogyan hatnak egymásra, satöbbi.
Google, alapértelmezés szerint azt mondja, sok a statisztikát, aki telepítette a app
és milyen telefonok vannak, milyen operációs rendszer verziói vannak.
De ha azt akarjuk, hogy ki használja napi rendszerességgel, és hogyan használja
akkor majd szeretnénk felvenni valamilyen nyomkövető rendszer, mint ezt.
>> Ha készen áll, hogy osztja a app
Nem kell belemenni, hogy túl sok mélység.
Kattints a linkre itt, a Google Lejátszás.
Régen az Android Market.
Ők átnevezte mindent Google Play,
így most már be ezt.
Ez nagyon egyszerű.
Meg kell szerepeltetni, néhány kép.
Mint mondtam, nincs jóváhagyási folyamat, mint iOS.
És hová tovább?
Megmutattam, hogy egy nagyon egyszerű példát.
Remélhetőleg, ha úgy tűnik, borzasztóan egyszerű
akkor ez talán egy jó jel.
Ha egyáltalán úgy érezte, egy kicsit zavaros, vagy nem biztos, hogy pontosan mit is írja
ez is rendben van, de innen megy a Google útmutatók.
Ez egy nagyszerű kiindulópont.
Ez beszélni végig mit várnak szempontjából az alkalmazások tervezése,
hogy a felhasználók általában kölcsönhatásba vele.
Ez sokkal több, szabad formában, mint iOS, azt mondanám,
amely úgy tűnik, asztal nézetek, nem is tudom, hogy ez a kenyér és a vaj.
Minden egy tábla nézet csúszott fel és le.
Az Android határozottan ösztönzi az embereket, hogy nézd meg, hogy
egy csomó különböző perspektívák.
>> Amikor is a Software Development Kit ebben ADT
alapértelmezés szerint van egy csomó minta projektek Android.
Itt, Android, Android minta projekt.
Ha rákattint a, akkor választhat egy változata, amely a minta projektek alkalmazni.
Van egy csomó különböző dolgokat.
Úgy indul az akció bar kompatibilitás,
gyorsulásmérő játék, biztonsági mentés és visszaállítás, Bluetooth, gesztus építője.
JetBoy egy példa játék kapsz, mint LunarLander.
Van egy csomó minta alkalmazás itt,
és ők mind célzó különböző aspektusait Android API,
és az ötlet is, hogy mint te, hogy az alkalmazás
nem kell tanulni mindent, hogy egy Android Android app.
Csak meg kell tanulni a részeket, hogy te tényleg fog használni.
Nézd meg ezeket a minta könyvtárakban.
Nyugodtan másolja be a kódot, és újra azt.
Ez egy nagyszerű dolog, hogy nézd nehezebb kód
és próbálja megérteni, ami persze miért CS50
gyakran ad nagy mennyiségű forráskód.
Nézd meg néhány ilyen, ha akarsz használni hasonló könyvtárak
majd alkalmazni, hogy a saját kódját.
És persze, vannak oktató.
Keresése oktató.
Én találtam egy csomó jó is on-line, amely hozhat Önnek, hogy gyorsítsa
, amit töredékek valójában, és hogyan használhatja őket.
>> Néhány ilyen új design dolgokat, mint a töredékek,
tényleg nem kell aggódik, ha még van egy
Elég nagy kiterjedésű, projektben.
Ezek azok a dolgok, hogy a Google igyekszik, hogy fokozatosan be
StackOverflow természetesen a barátod.
Remélem el egy kicsit az Android,
felismerve, hogy ez sokkal könnyebb megközelíteni szempontjából csak a kódolási nyelvet.
Java Azt mondanám, sokkal könnyebb megérteni, mint Objective-C.
Android növekszik szerintem sokkal több, mint iOS.
Úgy értem, az adatok ott is, eltekintve attól, amit gondolok.
Ez lesz egy darabig,
és ezek néhány évvel lemaradva a tervezési ciklus,
így egyfajta érthető, hogy ők még mindig dolgoznak át néhány ilyen
következetesség kérdést, mint például ez a fellépés a sáv egy új dolog számukra is,
valami ami hasonló felhasználói élményt nyújt minden apps.
Remélhetőleg akkor megy előre, és most nyit Eclipse
és a saját Android alkalmazások.
>> Van valakinek bármilyen kérdése, mielőtt lezárja a valamit?
Azt lehet mondani, a válasz 42.
Nos, boldog kódolás mindenki, és sok szerencsét.
[CS50.TV]