[Powered by Google Translate] [Seminarium] [Android Apps (Teraz z Jelly Beans!)] [Jordan Jóźwiak] [Harvard University] [To jest CS50.] [CS50.TV] Witam wszystkich i zapraszamy do Android Apps (Teraz z Jelly Beans!) Seminarium. Nazywa się teraz z Jelly Beans, oczywiście, bo Najnowsza wersja systemu operacyjnego jest nazywany Jelly Bean. Kiedy rozmawiałem o Androida w zeszłym roku i zrobił to w zasadzie same seminarium I było przedstawienie wzorców projektowych i stylistycznych wyborów do piernika, chociaż Ice Cream Sandwich wyszedł w czasie, i jest to coś, będziemy rozmawiać o pójściu do przodu trochę. Android, oczywiście, ma pewne problemy z fragmentacją, tak, najnowszy system operacyjny Google jest zazwyczaj naprawdę nie stanie się powszechne wśród użytkowników na potencjalnie nawet do roku, niestety. Ale pomijając, że porozmawiamy o mnóstwo powodów, dla których Android jest o wiele lepiej niż iOS. Dobrze, porozmawiamy o Android kontra iOS, pewne paradygmaty projektowania, jak dostaniesz utworzone w jednym slajdzie, a duża różnica między tym i ubiegłym roku to po prostu chcę zoom przez kilka koncepcyjnych rzeczy pracujących z system operacyjny, a następnie przejść do np. bardzo podstawowe. W rzeczywistości, po prostu przykład, że Google opisuje na budowę swojej pierwszej aplikacji, i idziemy przez to razem i po prostu opisać. Wiem, że wielu z was tylko kodowane w C, więc Java jest już będzie innej perspektywy, a ten sposób będziesz uzyskanie stopy mokre i czuć się trochę bardziej komfortowo z niego z nadzieją. Szybkie podsumowanie, Android kontra iOS. W Android jest to jednorazowa opłata deweloper 25 dolarów, żadna z tych rzeczy, 100 dolarów rocznie. Nie ma ograniczeń, co oznacza, że ​​jeśli chcę złożyć aplikację, I tylko złożyć go, i nie ma tam procesu zatwierdzania, jak jest dla iOS. Dostać się do opracowania w języku Java za pomocą Eclipse, co jest wieloplatformowym, więc to nie ma znaczenia, jeśli masz komputer Mac, Windows lub niektóre Linux maszyna. Oczywiście, z iOS musisz użyć XCode na Mac, i Android jest używany przez wielu ludzi więcej, więc jeśli chcesz, aby Twoja aplikacja mieć jakiś widoczności, a może zarobić trochę pieniędzy z reklam jesteś prawdopodobnie bardziej skłonni do korzystania z Androida. I jedna rzecz, która zawsze była znana o Androida jest extreme kwota dostosowania, podczas gdy iOS jest bardzo stałe w ich sposobów tak, że mogą utrzymać bezpieczeństwo i kontrolę nad każdym małym aspekcie konstrukcji w ich OS i aplikacje indywidualnych. Android jest bardzo wolna postać, i jest tak wiele więcej możliwości. Okay, niektóre paradygmaty projektowania. Zauważcie, jak iOS ma tabletki i iPhone i iPod Touches mają one na celu wspieranie, powiedzieć, tak jak kilkanaście urządzeń, jeśli chcesz wspierać historyczne rzeczy, jak również. Z Androida trzeba obsługuje setki urządzeń, tak, są pewne rzeczy, że Google stara się realizować aby użytkownik doświadczyć trochę bardziej spójne, ale my także mówić o tym, jak to oznacza, że ​​są problemy z fragmentacją że stale muszą być świadome wspieranie. Rozdrobnienie oznacza, że ​​istnieje wiele różnych systemów operacyjnych, wiele różnych telefonów z innym sprzętem z systemem Android w tym samym czasie, więc wykres sięga tu przez około 6 miesięcy. Tak, 6 miesięcy i można zobaczyć, jak najciemniejszy zespół na dole jest Jelly Bean, który ukazał się w okresie letnim, i widać teraz prawdopodobnie około 2% telefonów ma. Ice Cream Sandwich ukazał się ponad rok temu, i czwarta komórkowych mają. Istnieje jeszcze wiele telefonów, które korzystają z wersji OS od lat. Jedna rzecz, że Google stara się zrobić, aby doświadczenie użytkownika wiele bardziej spójne w całej aplikacji zaczyna z plastra miodu, który jest wersją tabletu, to Ice Cream Sandwich i Jelly Bean, oni naprawdę starają się podkreślić korzystania z tego pasku akcji, czyli to, co można zobaczyć na górze tutaj, wszystko tutaj, w tym ten mały przycisk Ustawienia. To jest wybór projektu. Teraz, gdy można zobaczyć 3 kropki oznacza to kliknij na to, i będzie rozwijane menu, które ma jakieś ustawienia. To tylko pokazuje, bo kliknąłem przycisk. To jest coś, że próbujesz użyć, aby aplikacje trochę bardziej spójne w różnych dziedzinach, a więc użytkownik ma lepsze poczucie jednolitego doświadczenia. Ok, więc w przypadku, gdy nie zostało to zrobione wcześniej czy oglądania w domu następnie można wykonać następujące kroki, aby skonfigurować środowisko kodowania. Będzie ona obejmować będzie na stronie internetowej tutaj. Możesz Google instalacji Android SDK i po kilka opisów tam. Mówią ci wszystko. Mają zainstalować SDK do pobrania Eclipse wersji CLASSIC, choć, oczywiście, jesteśmy kodowania w Javie. Polecają ten jeden, a następnie ten ADT, narzędzia Android Development, to, że zainstalowanie wtyczki do Eclipse, który pozwala na mają znacznie bardziej opływowy doświadczenie z Androida w Eclipse. To daje pewne graficznych interfejsów użytkownika do projektowania poglądy, a to daje dużo więcej wsparcia oraz możliwość uruchamiania z emulatora i wszystkie tego rodzaju rzeczy. Application Framework. Chcę porozmawiać o tym, jak projekty w Androida są tak skonstruowane, , a potem pójdziemy do szybkiego przykład, i miejmy nadzieję, można zadawać pytania w dowolnym momencie i czuć się komfortowo przez koniec. Mamy trochę żargonu pierwszy. Aktywność jest jak na ekranie widać, kiedy uruchomić aplikację. Całe doświadczenie jest działalność sama, więc można myśleć o tym, jak ekran lub widoku, ale w rzeczywistości kod po stronie tego. My nadal nazywają rzeczywistą część interfejsu to widok. To coś w rodzaju, jak w Pset 7 mieliśmy kontrolera, a następnie w widoku. Aktywność jest mniej lub bardziej kontroler i widok jest to, co robimy w zakresie XML , które jest związane z tym działania. Fragmenty są czymś, co jest realizowane w Ice Cream Sandwich w przyszłości. To tylko pomysł biorąc części zdania lub działalność i dzieląc je na dwie części, tak, że możemy sprawić, by nasz kod bardziej użyteczny dla tych wielu urządzeń różnych że musimy wspierać, a to jest po prostu sposób próbuje również czynnik się więcej kodu. Usługi są rzeczy, tło, jak odtwarzanie muzyki lub wskazówki nawigacyjne potencjalnie. Dostawcy treści są to API w systemie operacyjnym , które pozwalają na dostęp do udostępnionych danych, takich jak informacje kontaktowe, i zamiarem jest coś użyjemy, gdy chcemy uruchomić nowa działalność z naszej bieżącej działalności. Witaj Android, to ma być projekt, który będziemy rozmawiać. Ja rzeczywiście zrobi to za Ciebie, a następnie zrobimy coś, gdzie klikamy przycisk z tekstem i rozpoczęcia nowej działalności. Bardzo proste, ale chcę, aby przejść co trafi do projektu jak ten. Po wprowadzeniu nowego projektu można zobaczyć w ramach Eclipse jest to projekt o nazwie Halo Android. Wtedy istnieje cała masa folderów tutaj. Ci, jesteś naprawdę zajmujące się to folder źródłowy, Folder resource, RES, i do pewnego stopnia folderu libs dla bibliotek. I tak jesteśmy na tej samej stronie, z tym, jeśli były, aby utworzyć nowy projekt, możesz zrobić to tutaj, więc jeśli chcę zadzwonić to HelloAndroid, a następnie automatycznie wykonuje całą masę informacji o nas. Nazwa pakietu ma być unikalny identyfikator które zwykle są związane z serwisem, jeśli miała. Na przykład, ja nazywam to net.cs50.helloandroid. A ja już się ten projekt raz. Okay, przepraszam. Nazwijmy to HelloCS50. A potem będzie prosić rzeczy jak co to ikony chcemy zrobić. To wszystko z powodu interfejsu Android Developer Tools, plugin, który dodaliśmy do Eclipse, więc możemy wybrać takie rzeczy jak co ikona chcemy, i że pójdzie na tej głębokości, jeśli chcemy. Ale w końcu, po prostu zrobić ten projekt, i wszystko, co pojawia się tutaj. Tak jak pokazano na drugim ekranie mamy folder źródłowy i będę mówić o tym, co to wszystko oznacza tylko, ale widać, że natychmiast trzeba nam do HelloCS50 ekranie. Są tu przyciski do dodawania tekstu i tekst układy pól. To coś w rodzaju XCode ale niestety nie tak usprawnione. Ale klipy będzie twoim przyjacielem i ADT w szczególności do tego. Okay, folder źródłowy jest gdzie pliki Java odbywają, i to jest faktycznie uruchomienie programu. Jest to w zasadzie jak kontrolerów. Folder resource lub res gdzie będziemy trzymać układów ekranu, obrazy, dźwięki, teksty, animacje i wszystko inne, libs, oczywiście, biblioteki. I Manifest, to sposób, że system Android wie sposób interakcji z aplikacji. Mówi to o uprawnienia, jakie działania będą faktycznie uruchomić. To wszystko jest istotne informacje, że jest to konieczne, aby uruchomić aplikację. Folder źródłowy jest-jeśli go rozwinąć, jak widać tutaj. I przykład, że kod będzie wyglądał, jest to kod domyślny. Jak nazywa się to, główną działalność. Domyślnie mamy OnCreate, która to funkcja, która jest wywoływana, gdy działalność ta ładunki, więc chcesz zadzwonić OnCreate (savedInstanceState). To przywróci żadnych bitów informacji w przypadku, gdy aplikacja została wstrzymana. Jest cała aktywność wykres cyklu życia które można spojrzeć na kiedy się trochę bardziej szczegółowe, w tym, ale najważniejsza linia kodu jest funkcja setContentView która ładuje plik zasobów dla układu. Następnie co OnCreate tutaj jest w zasadzie robi to mówi podczas tworzenia tej działalności chcę załadować ten układ. I będziemy rozmawiać o tym, co, że układ jest w drugim. Gdybyśmy uruchomić, że tutaj to wygląda dokładnie tak, jak to, i domyślnie dlatego, że Eclipse to zrobić i ADT robi to za nas to jest cały kod boilerplate który jest stworzony dla nas, i możemy iść dalej i zmienić rzeczy, jak chcemy. Folder zasobów, jak powiedziałem, to jest, gdy posiadamy wszystkie układy, drawables w zakresie każdego rodzaju obrazów- nazywa się drawables a potem pliki dźwiękowe, menu. To sposób na całą masę XML w ładnym stylu sortowanie. Jak widać, istnieje. Hdpi, ldpi, MDPI i foldery xhdpi dla drawables. Są to różne gęstości ekranu, tak wysoka gęstość pikseli na cal, niskiej gęstości, o średniej gęstości, bardzo wysokiej gęstości. Jest to kolejny, więc możemy wspierać wszystkie te różne urządzenia, a najlepiej, będziesz mieć różne obrazy dla każdej innej rozdzielczości. Układy są gdzie m.in. wszystkie inne układy, które będą wykorzystywane w różnych działaniach. Mogą również zawierać układy dla fragmentów, co oznacza częściowe działania w zasadzie. Jeśli chcesz zrobić coś fajnego, jak gdy telefon zostanie obrócony chcesz go mieć inny układ można zrobić układ-krajobraz jak w innym folderze, i Android automatycznie ma całą masę tych zasad w folderze zasobów, więc będzie wiedzieć, aby spojrzeć na różnych folderach na podstawie bieżącej konfiguracji telefonu, Jaki sprzęt używasz. Podobnie, to wartości-v11 tutaj i wartości-v14 i wartości domyślnego folderu to dla- dobrze, wartości samo w sobie, to będą wartości domyślne we wszystkich wersjach systemu operacyjnego. Z drugiej strony, v11 i v14 odpowiadać Honeycomb i Ice Cream Sandwich, odpowiednio. Ponownie, to są sposoby, które-w tych folderach są różne ciągi i style, dzięki czemu można dostosować wygląd aplikacji lub potencjalnie nawet jego funkcjonalność, ale że będzie prawdopodobnie zły pomysł, na podstawie wersji systemu operacyjnego. I ja rozmawialiśmy o tym wszystkim tutaj. Ponownie, drawable, surowe, Układ wartości. Domyślne, jeśli pójdziemy do Witaj Android lub Witaj CS50 właśnie teraz będzie to wyglądać podobnie jak ten. Będzie powiedzieć hello world. Jak widać tutaj z tekstem Androida Tekst dla tego widoku tekstu, który jest w zasadzie tylko label, jest to, co my nazywamy go w iOS. Ma to zabawna notacji @ ciąg / hello_world. To tak się da-staramy się wyodrębnić wszystkie łańcuchy, wszystkich ciężko zakodowanych ciągów w Androida do osobnego folderu, co dzieje się w values.strings. Jeśli spojrzymy tutaj, widzimy, że mamy zakodowane ciąg zapisany tutaj sortowania Hello World, a to się nazywa hello world, a to z wspólny projekt decyzji na wielu platformach, które chcesz- łańcuchy są te rzeczy, które chcemy, aby potencjalnie być w stanie zmienić. Nie chcemy kontrolować F w naszym pliku z kodem źródłowym w naszym XML. Chcemy być w stanie zmienić tego, kiedy mamy szansę. Ten plik XML, strings.xml, jest sposobem wydobywania zakodowane ciągi, które inaczej byłyby w naszych zasobów układ lub w naszym kodzie źródłowym. Manifest jest gdzie trzymać tego podstawowe informacje o aplikacji. Zawiera nazwę pakietu. To musi być unikalny identyfikator. W przeciwieństwie do App Store dla iOS się nazwy aplikacji nie muszą być unikalne i można faktycznie zmienić nazwę aplikacji po przesłaniu go, więc jeśli zaczynasz z Angry Birds, a potem dokonać aktualizacji, i nie chcę się do wydania nowej wersji Myślę, że mógłbym nazwać to Angry Birds 2, a ja jestem w tym samym cyklu wydawniczego. Byłoby to po prostu pokazać się jako aktualizacja. Jedyną rzeczą, która musi być unikalna jest to nazwa pakietu, który wiele osób nie będzie widać. Cóż, można zobaczyć tylko jeśli szukasz w kodzie źródłowym lub jeśli jest jakiś błąd. Składniki obejmują działania, więc musimy zadeklarować każdy rodzaj działalności używamy. Jest to rodzaj zezwolenia rzeczy. Ponieważ Android nie posiada tego rygorystyczny proces aplikacji składania aplikacji, a nie po prostu nie wszystko opiera się o uprawnienia i deklarując rzeczy w manifeście. Wersja SDK jest również ważna. Możemy ustawić wykorzystanie wersję czegoś, jako minimalne SDK. Oczywiście, chcesz stworzyć kod i projektowania dla nowszych systemów operacyjnych. Być może nie jest najnowszy, może nie Jelly Bean. Może chcesz zaprojektować przede wszystkim do Ice Cream Sandwich, chociaż są prawie takie same w zakresie decyzji projektowych a rzeczywiste bibliotek i API. Ale zamiast mieć ludzi oryginalnej wersji Android Donut-podobny sposób, kiedy z tyłu- którzy jeszcze się do korzystania, które należy pobrać aplikację, a potem mówią to nie działa na moim telefonie można ustawić minimalną wersję i mają być Sandwich Ice Cream Gingerbread lub lub cokolwiek czujesz się komfortowo przedkładanie. I to jest przykład z manifestem. Możemy spojrzeć na rzeczywistą jeden na trochę. W porządku, po prostu iść do przodu z demo teraz. To jest demo, jeśli Google Android zbudować swoją pierwszą aplikację, czy coś takiego. Pojedziemy przez wszystko, co się dzieje w środku, i przepraszam, tylko dla odniesienia, kto tutaj zna Javę w jakimkolwiek stopniu? Okay, więc Java jest nowy język kodowania dla większości ludzi pochodzących z CS50. Krótko mówiąc, aby go na nowo to, co mówi się tutaj, to, co chcemy zrobić, to zamiast dostosować tę aplikacji Hello World że wszystko, co robi, jest to uruchamia i mówi hello world i mówi cześć CS50 na górze, bo to nazwa aktywności będziemy próbować uczynić pole tekstowe i przycisk tak, że kiedy nacisnąć ten przycisk, to zajmie tekst z pola tekstowego i uruchomienie nowej działalności, a to znaczy cokolwiek, że tekst mówi w działalności, i to jest stosunkowo proste. To nie jest bardzo ciekawe. Nie chcesz, aby wyzwolić wszelkie app tak. Ale to pokazuje kilka ważnych rzeczy projektowych. Musimy współdziałać z manifestem, z plikami układu, z kodem źródłowym, można zobaczyć, jak uruchomić jedną działalność od drugiego. Zaczniemy z układem dla naszej pierwszej działalności, co wiem, to trochę małe, ale jak widać w tej chwili, wszystko to jest to ma nasze logo, które stworzyliśmy, Nazwa działalności, i mówi hello world w centrum. Zamiast tego, jestem pierwszy zamiar zrobić to na liniowy układ, względny układ, a to są wszystkie rzeczy można spojrzeć w górę i są warte będzie ponad w pewnym momencie w zakresie układów. To dużo jak HTML. Powiedzieliśmy, to naprawdę nie jest warte poznania pod względem programowym sensie ale istnieje tak wiele różnych układów, które można kontrolować, i to tylko jak CSS w zakresie stylów. Jest dużo dzieje się tylko pod względem estetyki tutaj, i tak, to warto się czegoś, ale takie rzeczy należy szukać w górę jak idziesz i czujesz, że potrzebujesz czegoś nowego. Mogę skorzystać z niektórych narzędzi ADT tu przynajmniej zacząć od. Zrobię pole tekstowe, a sprawię, że się przycisk. Umieść je obok siebie. Oni już zmienić rozmiar odpowiednio. Niestety, znowu wraca do różnicy między liniowego układu i układu względnego, liniowy układ daje trochę więcej funkcjonalności pod względem wypełnienia przestrzeni, a upewniając my rzeczy pozycji poziomo lub pionowo. Duża różnica między liniowego układu oraz układu względnego Wszystko jest względne pozycje układ w stosunku do innych poglądów, i dobrą rzeczą jest to, że zajmuje mniej czasu, aby wyciągnąć ponieważ system operacyjny wygląda na cały kod i mówi, że to idzie w stosunku do tego tutaj, tutaj. Oznacza to, że sprawia, że ​​mniej pomiarów niż całą masę zagnieżdżonych liniowych układów, co mam zrobić, jeśli chcę rzeczy iść pionowo tutaj. Mam już kilka rzeczy dzieje w poziomie, więc będę potrzebował inny układ liniowy zagnieździć je pionowo, ale jeśli robią względny układ mogę powiedzieć zachować to w lewo, to w prawo, a te rzeczy poniżej. Ale dlatego, że chcę je wypełnić właśnie teraz mam zamiar wykorzystać liniowy układ, i widać to już robi wiele z tych rzeczy dla nas. Wszystkie widoki muszą mieć właściwości szerokości i wysokości, i tak się dzieje, aby mieć ciężar 1, a to ma ciężar 1 tak, że wypełnia całą przestrzeń. Ale szerokość i wysokość są najważniejsze. To pole ID tu nie jest ważne w rzeczywisty układ chyba że używamy względny układ i mówiąc możemy odwoływać jeden widok pozycji w stosunku do drugiego. Jeśli mieliśmy względny układ można powiedzieć pozycję to poniżej tej jednej lub powyżej tego numeru, ale to będzie istotne ID gdy używamy go w naszym kodzie, bo możemy odwoływać te poszczególne poglądy w ten sposób. I wtedy można zobaczyć requestFocus tag, który jest coś, czego zapewne widzieliśmy w Pset 7. Było tag auto focus lub coś wzdłuż tych linii na jednym z pól. I jedno, oczywiście, możemy zrobić tak jak w HTML, i zauważ jedną z miłych rzeczy o ADT jest to, że autocompletes tutaj. Może nie tak ładnie jak to miało miejsce w Xcode, ale ma jednak, i można powiedzieć, podpowiedź, a następnie nadać mu jakiś ciąg jak napisać wiadomość, i jeśli dać mu chwilę, również zauważyć, że mam trochę błąd tutaj mówiąc, że powinniśmy korzystać z zasobu ciąg dla tego, więc jeśli pozwolę zrobić niektóre z ciężkiej pracy dla mnie Mogę wybrać ten ciąg, czy refraktora Android i ekstraktu Android ciąg. Mogę dać mu to imię, napisz wiadomość, i co to było to, że otrzymuje że ciąg zakodowane w odniesieniu do całego łańcucha w ciągu tych. pliku xml, co oznacza, że ​​teraz jest to tutaj. I wiem, że wydaje się nieco banalne i jak dodatkowa praca w tym momencie, ale gdy masz całą masę rzeczy, cała masa łańcuchów, to jest bardzo ważne, zwłaszcza dla lokalizacji bo jak już wcześniej wspomniałem, Android jest bardzo używanym systemem operacyjnym na świecie , że można po prostu zrobić wartości-en-SP lub wartości lub coś w języku angielskim lub hiszpańskim lub innych. I to prawdopodobnie nie mieli tego doświadczenia jeszcze ponieważ nie zrobiliśmy dużo JavaScript w zakresie programowania WWW, ale możemy też zrobić to pole o nazwie onClick dla przycisku, i to jest sposób na odniesienie w naszym układzie że chcemy pewną funkcję, która ma zostać wywołana w naszym kodzie źródłowym. Mam zamiar nazwać sendMessage, i aby to robić to znaczy w głównej działalności tutaj Będę musiał utworzyć funkcję, która jest publiczna tak, że można go uzyskać przez układ. To nieważne, bo po prostu nie chcę, aby powrócić niczego. Nazwiemy go sendMessage, i zajmuje stanowisko, który jest rodzajem kontekście, że możemy zakotwiczyć tę metodę w tym konkretnym celu, gdy kończy nam się to. I nie wiem, czy zauważyłeś, dobrze, by nie zauważył, ale w tym momencie tutaj ten widok jest typ, który nie został jeszcze określony, i oczywiście, wszyscy wiemy z CS50 o nie w tym rodzaju. Zaletą Eclipse jak IDE, że jeśli zapomnisz to typ to podkreślić z odrobiną czerwieni squiggly a następnie daje możliwość importowania pogląd. Szybkim sposobem na osiągnięcie tego jest kontrola shift O, i będzie importować wszystkie pliki, że musi. Teraz, gdy mamy ten sendMessage funkcyjnego który zamierza wysłać wiadomość z główną działalność do nowej działalności, będziemy musieli korzystać z zamiarem uruchomienia nowej działalności z tym jednym, więc będziemy prawdopodobnie utworzyć globalna stała lub też szczególnie publiczne stały które pomogą nam znać, jak będziemy odwoływać ciąg bo gdy tworzymy intencji nie jesteśmy po prostu wywołanie nowej działalności, ale możemy też dać pakiet informacji. Pakiet jest w rzeczywistości termin Android korzysta, i jest to sposób na powiedzenie dać dodatkowe informacje, które nie mogą być wykonane z bardzo wyrafinowanym typem danych, ale na pewno możemy to wartości logiczne lub ciągi lub przerwaniami. Takie rzeczy. Zapraszam do zadawania o żadnej z tych eliminacjach tutaj, public, final, static. Publiczny jest ważne. Oznacza to, że możemy uzyskać dostęp do tej zmiennej z innych plików kodu źródłowego przykład podczas tworzenia nowej aktywności. Możemy odwołać ciąg w tym pliku. Jeśli to jest prywatna, to oznacza, że ​​jest ograniczona do tego pojedynczego pliku tutaj. Ale nazwijmy to coś w dodatkowym komunikacie. Teraz zrobiliśmy tę funkcję, a jeśli klikniesz przycisk, funkcja ta zostanie wywołana. Ale nie zrobiliśmy nic, oczywiście, z funkcją. To, co chcemy zrobić, to stworzyć nową działalność, aktywności, które będą faktycznie rozpoczęła. W Eclipse można powiedzieć, nowy Android aktywność, puste aktywności. Możemy nadać mu nazwę. Nazwijmy to nasza działalność wynik. A potem ta hierarchiczna pole rodzic jest sposób określania sposobu działania są podobne do siebie. Ponieważ ta zostanie uruchomiona z innej działalności należy określić, że ma dominującą główną działalność. I mógłbym kliknięciu na kolejnym polu tam, który powiedział nam, niektóre pola opcjonalne, które było również w tym, ale miłą rzeczą ADT, ponownie, jest to, że jeśli ja przewinąć tutaj w manifeście należy pamiętać, że to wszystko naprawdę było włączone domyślnie kiedy stworzony projekt, i teraz, bo kiedyś to utworzenie nowej działalności, a nie tylko dodając własny plik klasy, bo poszliśmy przez ich GUI dla tej to się już wszystko do manifestu dla nas, co oznacza po prostu, że teraz system operacyjny nie będzie narzekać gdy staramy się uruchomić tę działalność. A także, oczywiście, dał etykiety, które również znajdują się w ciągi. Robi wiele rzeczy na tylnym końcu dla nas. W każdym razie, teraz, że mamy tej działalności wynik, jak również, właściwy plik kod źródłowy w folderze źródłowym, i widać, krótko dotknąć tego- dlatego, że powiedział to o tym hierarchicznej rodzica dało to android.r.ide.home pola w tym onOption rzecz wybranego. Co to jest w zasadzie powiedzieć, znajduje się przycisk menu teraz że w lewym górnym rogu ekranu jeśli wrócę do programu PowerPoint, w którym po raz pierwszy mówił o pasku akcji ze względu na hierarchiczną rodzica teraz jest trochę tu strzałka i to jest interaktywna, więc powinniśmy być w stanie do-po faktycznie uruchomić aplikację- wrócić, i to jest sposób na uratowanie nam trochę kodu tam. Teraz w ramach tego-dobrze, wydaje się, że narzekają, że na chwilę. Miejmy komentarz, że na zewnątrz. Teraz, w celu współdziałania z tymi faktycznie 2 działań trzeba utworzyć zamiaru która zawiera wszystkie te dane. W SendMessage teraz idę do rejsu przez niektórych bitów kodu i wyjaśnić, że jak idę. Intencja, jak powiedziałem, jest to sposób, aby uruchomić jedno działanie od innych. Intent jest typ. Tworzymy zmienną myIntent. I to jest rzeczywiście przedmiotem, dlatego musimy wywołać nowy. To wspólne wykorzystanie Java tam, co może zająć trochę przyzwyczaić. To oznacza, że ​​za pomocą działalności lub główną działalność klasy, i zamiar w ten sposób wykonuje działalność to będzie od i aktywność to będzie, co nazywamy ResultActivity, i to jest jego własna klasa. M.in., że. A potem, jak już wspomniałem wcześniej, daliśmy to ID do pola edycji tekstu i zobacz tekst, tak aby programowo przechwytywania Tekst, który istnieje w EditText możemy korzystać z tej funkcji o nazwie findViewByID, który jest podobny do czegoś, co będziesz używać podczas próby uzyskania pola z DOM. Może mówi David o tym w wykładzie. Ale to jest po prostu sposobem na uzyskanie tych-dlatego oznaczyć te rzeczy z tych pól. Id.editText1. To już autocompleting tam na mnie. I wtedy będziemy również-to EditText teraz, że mamy pole w naszym programie, wszystko findViewByID nie było w zasadzie można myśleć o tym, jak dać nam odniesienie do tego EditText. Teraz chcemy uzyskać ciąg lub komunikat w tym EditText które możemy zrobić za pomocą- można myśleć EditText jako struct- nazywamy to obiekt w Javie, z całą masę różnych metod lub pola i atrybuty przypisane do niego. Kiedy mówię EditText. to daje mi szansę, aby uzyskać dostęp metody takie jak gettext, który będzie aktualny tekst w tym EditText a następnie przekonwertować jawnie na sznurku, a my zapisane wiadomości. Teraz naprawdę chcemy zrobić coś z tym zamiarem stworzyliśmy tylko chwile temu. Położę extra jak to się nazywa w tej intencji, co znów tak jak powiedziałem wcześniej, jest to sposób na stworzenie paczkę z całą masę danych. Extra wiadomość jest nasz tag więc wiemy, z czym mamy do zapisywania tego w ramach, i to ja jestem tym wiadomość. I wtedy możemy zacząć działalność poprzez nadanie mu myIntent parametru. I to rzeczywiście uruchomić działalność, więc teraz od uaktualnieniu do Windows 8 nie mogą być pewne błędy, które pojawiają się na krótko, ale staram się je ignorować. I to jest Android emulator. Mam nadzieję, że kod rzeczywiście pojawiają się w jednej chwili. Ponownie, ignorując te wszystkie małe rzeczy. Ale emulator Android można emulować dowolną wersję systemu operacyjnego od najwcześniejszych, Donut, Gingerbread. To Jelly Bean 4.1. Ale jak widać w tej chwili, to jest coś zrobiliśmy. Ma to tę główną działalność, EditText, przycisk. Mogę pisać coś tutaj, ale co nam brakuje w tym momencie? Zrobiliśmy boiska w główną działalność, która się dzieje, aby wysłać wiadomość do innych aktywności, ale w tym momencie nie zrobiliśmy nic w innej działalności, więc to nie będzie otrzymywać niczego. Skończmy się, że część, zanim przejdziemy. Działanie to wynika, co musimy zrobić, to musimy zrobić, to musimy do- możemy odwołać się do intencji w tej działalności, więc musimy uchwycić intencje, co jest naprawdę proste. Jest to funkcja, należących do grupy aktywności, więc możemy tylko powiedzieć "Pobierz wiadomości z zamiarem". "MyIntent Intent = getIntent". I to daje nam-teraz myIntent jest obiekt, co jest nawiązaniem do intencji, które doprowadziły nas do tej działalności. Główną działalność wywołuje i daje dodatkowe informacje na wynik działalności. Aktywność Rezultat wygląda teraz w intencji, która doprowadziła go tutaj, i możemy przejść do wiadomości, że utworzony w drugim, getStringExtra, autouzupełnianie i to będzie dla mnie. A potem pamiętam, nasz sposób oznaczony, że bit danych był poprzez nadanie mu tego pola tu, to publiczny ciąg który jest tag na ciąg faktycznie zawartych. Jeśli powiem MainActivity.Extra_Message To właśnie tam, a to jest coś w rodzaju nazwy parametru kiedy mijaliśmy kod ze sterownika do szablonu, gdy chcemy coś powiedzieć strzałki tytułowy. To ten sam rodzaj pomysłu nie. Teraz, o tym pamiętać. Mieliśmy również to auto stworzone lub auto generowany kod dla działalności wynik, który zawiera widok tekstu w środku że mówi hello world. Możemy ewentualnie zrobić, że większe. Zróbmy to pierwsze. Moglibyśmy zrobić to 40 gęstości niezależnych pikseli. Zobaczmy, że jest bardzo duże. To będzie w porządku. A potem, w celu odwoływać się do tego indywidualne widok tekstu w naszym kodzie musimy nadać mu identyfikator, w tym celu, że mówimy @ + id, co oznacza, możemy przypisać mu identyfikator. Jeśli po prostu powiedział id @ to przyjąć mamy odwołanie do identyfikatora, który już istnieje, i nazwijmy to nasz resultTextView. I zauważyć, że w XML nie ma potrzeby średnikiem lub cokolwiek. Wszystko jest w tych tagów. Jest bardzo podobny do HTML w wielu znaczeniach. To zajmuje trochę przyzwyczaić, ale w końcu będziesz czuć się dość komfortowo z nim. Chcę zaktualizować tekst dla naszego widzenia tekstu wynikowego, i tak jak my, gdy byliśmy coraz to pole Edycja tekstu w naszej pozostałej działalności w główną działalność tutaj będziemy również samo- znajdziemy pogląd przez ID. I R, w przypadku nie wspomnieć o tym wcześniej, jest odniesienie do naszego folderu zasobów, i ID jest odniesienie do wszystkiego w folderze zasobów, wszystkie identyfikatory, i resultTextView. I tak jak wcześniej, resultTextView jest obiekt, co oznacza, że ​​nie wszystkie z tych właściwości związane. Kiedy używamy getText dla tekstu edycji na tym polu tekstowym lub w widoku tekstowym możemy właściwie wykorzystać setText, a potem już znalazłem wiadomość od intencji, więc mogę powiedzieć, wiadomości, i to właściwie ustawić wiadomość. To poświęć chwilę, aby uruchomić, a następnie możemy zobaczyć, czy się zawiesi, ale wszelkie pytania dotyczące tego procesu właśnie tam, tego typu interakcji? Pod wieloma względami jest to proste. Powodem Idę przez coś stosunkowo prostego jest, ponownie, ponieważ można zobaczyć interakcji między układem, kod źródłowy, jak się rzeczy referencyjne a może się trochę ekspozycji na jak Java tam pracuje. Jeśli rzeczywiście coś tu wpisać, jak OHAI, a potem kliknij przycisk, uruchamia nową działalność, i że widok mówi tekst ohai. To jest bardzo proste, ale mam nadzieję, że po tym przykładzie Ci rodzaju jak ta interakcja działa, a teraz, że bałagan plików po lewej stronie dla wszystkich tych folderów projektu, mam nadzieję, że wiesz, gdzie szukać teraz. Jest to obszar kodu źródłowego. Układ jest naprawdę jedyną rzeczą, będziesz zajmować się aż zawierać obrazy i drawables lub cokolwiek, i wartości, które obejmują ciągi, jak wspomnieliśmy, a następnie styl to coś, coś w rodzaju CSS. Adres, kiedy chcesz, ale dopóki nie czują się komfortowo z dodające uroku do aplikacji nie ma potrzeby martwić się o tym zbyt wiele. Wystarczy, aby zakończyć jedną rzecz na pewno chcesz to- zakładając, że chcesz zintegrować fajne funkcje i oszczędzić sobie jakieś dodatkowe kodowanie- byłoby to 3-gie bibliotek zewnętrznych. Oto mały facet Android z Sherlock Holmes kapeluszu. To jest action bar Sherlock biblioteka, co w skrócie oznacza, że ​​pasek akcji widziałeś wcześniej, która jest obecnie standardem w Ice Cream Sandwich i Jelly Bean, jeśli chcesz przynieść tego rodzaju doświadczenia użytkownika do użytkowników w starszych wersjach i zapisać się od martwienia się o sposób użytkownik będzie poruszać w starszych wersjach, gdy ta rzecz nie istnieje możesz dołączyć tę bibliotekę a potem po prostu trzeba reference-zamiast domyślnie Android biblioteki na pasku akcji, można odwoływać się do tej biblioteki wsparcia. Rzeczy takie jak Scoreloop, to jest świetne, jeśli masz zamiar to gra. Pozwala dodawać tabelach liderów i osiągnięć do gier. AdMob jest sposobem na wprowadzenie reklam w aplikacjach w przypadku, gdy chcesz, aby trochę pieniędzy od niego. Oczywiście, nie jest Facebook i Twitter integracji istnieje Jeśli chcesz podzielić się rzeczy łatwo, et cetera. Dropbox, podobnie, a Google Analytics jest to, że wykres patrząc jeden tam. To będzie bardzo ważne, jeśli faktycznie chcą zobaczyć, kto jest interakcja z aplikacji lub kto to jest, jak one oddziałują, et cetera. Google, domyślnie, mówi Ci wiele statystyk na temat, który zainstalował aplikację i jakie telefony mają, co wersje systemów operacyjnych mają. Ale jeśli chcesz zobaczyć, kto używa go na co dzień i jak z niego korzystać potem będziesz chciał to jakiś system śledzenia takiego. Kiedy będziesz gotowy do dystrybucji aplikacji Nie trzeba iść do, że w głębi za dużo. Kliknij na link tutaj, Google Odtwórz. Kiedyś na rynku Android. Oni przemianowane wszystko z Google Play, więc teraz przedstawić to. To bardzo proste. Musisz zawierać opis, kilka zrzutów ekranu. Tak jak mówiłem, nie ma proces zatwierdzania jak iOS. I gdzie dalej? Pokazałem ci bardzo prosty przykład. Mam nadzieję, że jeśli wydaje się to strasznie proste wtedy to chyba dobry znak. Jeśli w ogóle czułem się trochę zdezorientowany i pewien dokładnie to, co pisałem to też jest w porządku, ale od tego przejść do przewodników Google. Jest to idealne miejsce, aby rozpocząć. Będzie rozmawiać Cię przez to, czego się spodziewać w zakresie projektowania aplikacji, jak użytkownicy zwykle interakcja. To znacznie więcej niż iOS w postaci wolnego, powiedziałbym, którym wydaje się, że widoki tabeli są-nie wiem, to jest ich chleb i masło. Wszystko jest widok tabeli przesuwane w górę iw dół. Z Androida na pewno zachęcić ludzi, aby spojrzeć na to z cała masa różnych perspektyw. Kiedy obejmuje zestaw do tworzenia oprogramowania w tym ADT domyślnie masz całą masę przykładowych projektów w Androida. Właśnie tu, Android, Project Sample Android. Jeśli klikam na to, to mogę wybrać wersję dla których próbki projekty zastosowania. Jest cała masa różnych rzeczy tutaj. Zaczyna się z kompatybilnością pasku akcji, gry akcelerometr, tworzenia kopii zapasowych i przywracania, Bluetooth, budowniczy gest. JetBoy to gra sample dają ci, jak to LunarLander. Istnieje cała masa przykładowych aplikacji tutaj, i wszystkie są skierowane do różnych aspektów API Androida, i idea jest taka, że ​​jak sobie aplikację nie ma potrzeby, aby dowiedzieć się wszystkiego na temat Androida złożyć aplikację dla systemu Android. Trzeba tylko dowiedzieć się o części, że jesteś rzeczywiście będzie w użyciu. Spójrz na tych bibliotek próbek. Zapraszam skopiować i wkleić kod i ponownie go. To wielka rzecz, aby spojrzeć na trudniejszej kodu i starać się zrozumieć to, co jest, oczywiście, dlaczego w CS50 często daje duże ilości kodu źródłowego. Spójrz na niektóre z nich, jeśli masz zamiar stosować podobne bibliotek a następnie zastosować go do własnego kodu. I oczywiście, są tutoriale. Szukaj samouczków. Znalazłem wiele dobrych Internecie, które mogą doprowadzić cię do prędkości z czego fragmenty naprawdę są i jak można z nich korzystać. Niektóre z tych nowych rzeczy, projektowych, jak fragmentów, Naprawdę nie trzeba się martwić o ile nie robisz dość duża w projekcie zakres. Są rzeczy, że Google stara się stopniowo w. Stackoverflow jest oczywiście twój przyjaciel. Mam nadzieję, że sprzedał ci trochę na Androida, zdając sobie sprawę, że o wiele łatwiej podejść w kategoriach tylko język kodowania. Java to powiedziałbym, że o wiele łatwiejsze do zrozumienia niż Objective-C. Android rośnie Myślę, znacznie więcej niż iOS. To znaczy, dane są tam też, oprócz tego, co myślę. To będzie przez jakiś czas, i kilka lat w tyle pod względem ich cykli projektowych, więc jest to jakby zrozumiała, że ​​wciąż pracujemy przez niektóre z nich kwestie spójności, jak ten pasku akcji jest to nowa rzecz dla nich nadal, rodzaj tworzenia podobny interfejs użytkownika we wszystkich swoich aplikacji. Mam nadzieję, że można iść do przodu i teraz otwarcie Eclipse i tworzyć własne aplikacje Android. Czy ktoś ma jakieś pytania, zanim skończymy o niczym? Mogę powiedzieć, że odpowiedź jest 42. Cóż, szczęśliwy kodowanie wszystkich, i życzę powodzenia. [CS50.TV]