1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminarium] [Android Apps (Teraz z Jelly Beans!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jóźwiak] [Harvard University] 3 00:00:04,210 --> 00:00:06,780 [To jest CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Witam wszystkich i zapraszamy do Android Apps (Teraz z Jelly Beans!) Seminarium. 5 00:00:11,600 --> 00:00:14,530 Nazywa się teraz z Jelly Beans, oczywiście, bo 6 00:00:14,530 --> 00:00:17,310 Najnowsza wersja systemu operacyjnego jest nazywany Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Kiedy rozmawiałem o Androida w zeszłym roku i zrobił to w zasadzie same seminarium 8 00:00:22,950 --> 00:00:29,150 I było przedstawienie wzorców projektowych i stylistycznych wyborów do piernika, 9 00:00:29,150 --> 00:00:31,250 chociaż Ice Cream Sandwich wyszedł w czasie, 10 00:00:31,250 --> 00:00:33,680 i jest to coś, będziemy rozmawiać o pójściu do przodu trochę. 11 00:00:33,680 --> 00:00:35,720 Android, oczywiście, ma pewne problemy z fragmentacją, 12 00:00:35,720 --> 00:00:40,240 tak, najnowszy system operacyjny Google jest zazwyczaj 13 00:00:40,240 --> 00:00:44,710 naprawdę nie stanie się powszechne wśród użytkowników na potencjalnie nawet do roku, niestety. 14 00:00:44,710 --> 00:00:49,960 >> Ale pomijając, że porozmawiamy o mnóstwo powodów, dla których 15 00:00:49,960 --> 00:00:53,000 Android jest o wiele lepiej niż iOS. 16 00:00:53,000 --> 00:00:56,410 Dobrze, porozmawiamy o Android kontra iOS, 17 00:00:56,410 --> 00:00:59,770 pewne paradygmaty projektowania, jak dostaniesz utworzone w jednym slajdzie, 18 00:00:59,770 --> 00:01:03,410 a duża różnica między tym i ubiegłym roku to po prostu chcę 19 00:01:03,410 --> 00:01:06,860 zoom przez kilka koncepcyjnych rzeczy pracujących z 20 00:01:06,860 --> 00:01:09,950 system operacyjny, a następnie przejść do np. bardzo podstawowe. 21 00:01:09,950 --> 00:01:13,730 W rzeczywistości, po prostu przykład, że Google opisuje na budowę swojej pierwszej aplikacji, 22 00:01:13,730 --> 00:01:17,070 i idziemy przez to razem i po prostu opisać. 23 00:01:17,070 --> 00:01:22,100 >> Wiem, że wielu z was tylko kodowane w C, więc Java jest już będzie 24 00:01:22,100 --> 00:01:27,220 innej perspektywy, a ten sposób będziesz uzyskanie stopy mokre 25 00:01:27,220 --> 00:01:31,540 i czuć się trochę bardziej komfortowo z niego z nadzieją. 26 00:01:31,540 --> 00:01:35,330 Szybkie podsumowanie, Android kontra iOS. 27 00:01:35,330 --> 00:01:39,200 W Android jest to jednorazowa opłata deweloper 25 dolarów, 28 00:01:39,200 --> 00:01:42,390 żadna z tych rzeczy, 100 dolarów rocznie. 29 00:01:42,390 --> 00:01:45,440 Nie ma ograniczeń, co oznacza, że ​​jeśli chcę złożyć aplikację, 30 00:01:45,440 --> 00:01:51,560 I tylko złożyć go, i nie ma tam procesu zatwierdzania, jak jest dla iOS. 31 00:01:51,560 --> 00:01:53,890 Dostać się do opracowania w języku Java za pomocą Eclipse, 32 00:01:53,890 --> 00:01:57,090 co jest wieloplatformowym, więc to nie ma znaczenia, jeśli masz komputer Mac, 33 00:01:57,090 --> 00:01:59,600 Windows lub niektóre Linux maszyna. 34 00:01:59,600 --> 00:02:03,730 Oczywiście, z iOS musisz użyć XCode na Mac, 35 00:02:03,730 --> 00:02:06,930 i Android jest używany przez wielu ludzi więcej, 36 00:02:06,930 --> 00:02:11,580 więc jeśli chcesz, aby Twoja aplikacja mieć jakiś widoczności, a może 37 00:02:11,580 --> 00:02:14,110 zarobić trochę pieniędzy z reklam 38 00:02:14,110 --> 00:02:17,450 jesteś prawdopodobnie bardziej skłonni do korzystania z Androida. 39 00:02:17,450 --> 00:02:20,630 >> I jedna rzecz, która zawsze była znana o Androida 40 00:02:20,630 --> 00:02:25,100 jest extreme kwota dostosowania, podczas gdy iOS jest bardzo stałe w ich sposobów 41 00:02:25,100 --> 00:02:29,380 tak, że mogą utrzymać bezpieczeństwo i kontrolę nad każdym małym aspekcie 42 00:02:29,380 --> 00:02:34,180 konstrukcji w ich OS i aplikacje indywidualnych. 43 00:02:34,180 --> 00:02:40,180 Android jest bardzo wolna postać, i jest tak wiele więcej możliwości. 44 00:02:40,180 --> 00:02:42,530 Okay, niektóre paradygmaty projektowania. 45 00:02:42,530 --> 00:02:49,600 Zauważcie, jak iOS ma tabletki i iPhone i iPod Touches 46 00:02:49,600 --> 00:02:53,840 mają one na celu wspieranie, powiedzieć, tak jak kilkanaście urządzeń, jeśli chcesz wspierać 47 00:02:53,840 --> 00:02:55,450 historyczne rzeczy, jak również. 48 00:02:55,450 --> 00:02:58,410 Z Androida trzeba obsługuje setki urządzeń, 49 00:02:58,410 --> 00:03:01,240 tak, są pewne rzeczy, że Google stara się realizować 50 00:03:01,240 --> 00:03:04,970 aby użytkownik doświadczyć trochę bardziej spójne, 51 00:03:04,970 --> 00:03:08,560 ale my także mówić o tym, jak to oznacza, że ​​są problemy z fragmentacją 52 00:03:08,560 --> 00:03:11,700 że stale muszą być świadome wspieranie. 53 00:03:11,700 --> 00:03:16,140 Rozdrobnienie oznacza, że ​​istnieje wiele różnych systemów operacyjnych, 54 00:03:16,140 --> 00:03:20,330 wiele różnych telefonów z innym sprzętem z systemem Android w tym samym czasie, 55 00:03:20,330 --> 00:03:29,680 więc wykres sięga tu przez około 6 miesięcy. 56 00:03:29,680 --> 00:03:36,460 Tak, 6 miesięcy i można zobaczyć, jak najciemniejszy zespół 57 00:03:36,460 --> 00:03:39,330 na dole jest Jelly Bean, który ukazał się w okresie letnim, 58 00:03:39,330 --> 00:03:42,970 i widać teraz prawdopodobnie około 2% telefonów ma. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich ukazał się ponad rok temu, 60 00:03:45,520 --> 00:03:47,770 i czwarta komórkowych mają. 61 00:03:47,770 --> 00:03:53,910 Istnieje jeszcze wiele telefonów, które korzystają z wersji OS od lat. 62 00:03:53,910 --> 00:03:57,820 Jedna rzecz, że Google stara się zrobić, aby doświadczenie użytkownika 63 00:03:57,820 --> 00:04:01,400 wiele bardziej spójne w całej aplikacji zaczyna z plastra miodu, 64 00:04:01,400 --> 00:04:04,320 który jest wersją tabletu, to Ice Cream Sandwich i Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 oni naprawdę starają się podkreślić korzystania z tego pasku akcji, 66 00:04:06,750 --> 00:04:10,430 czyli to, co można zobaczyć na górze tutaj, 67 00:04:10,430 --> 00:04:14,730 wszystko tutaj, w tym ten mały przycisk Ustawienia. 68 00:04:14,730 --> 00:04:16,079 To jest wybór projektu. 69 00:04:16,079 --> 00:04:18,000 Teraz, gdy można zobaczyć 3 kropki oznacza to kliknij na to, 70 00:04:18,000 --> 00:04:21,880 i będzie rozwijane menu, które ma jakieś ustawienia. 71 00:04:21,880 --> 00:04:28,900 To tylko pokazuje, bo kliknąłem przycisk. 72 00:04:28,900 --> 00:04:32,040 To jest coś, że próbujesz użyć, aby aplikacje trochę bardziej spójne 73 00:04:32,040 --> 00:04:39,210 w różnych dziedzinach, a więc użytkownik ma lepsze poczucie jednolitego doświadczenia. 74 00:04:39,210 --> 00:04:42,640 >> Ok, więc w przypadku, gdy nie zostało to zrobione wcześniej czy oglądania w domu 75 00:04:42,640 --> 00:04:50,210 następnie można wykonać następujące kroki, aby skonfigurować środowisko kodowania. 76 00:04:50,210 --> 00:04:52,630 Będzie ona obejmować będzie na stronie internetowej tutaj. 77 00:04:52,630 --> 00:04:56,260 Możesz Google instalacji Android SDK 78 00:04:56,260 --> 00:04:59,130 i po kilka opisów tam. 79 00:04:59,130 --> 00:05:01,310 Mówią ci wszystko. 80 00:05:01,310 --> 00:05:05,160 Mają zainstalować SDK do pobrania Eclipse wersji CLASSIC, 81 00:05:05,160 --> 00:05:07,450 choć, oczywiście, jesteśmy kodowania w Javie. 82 00:05:07,450 --> 00:05:12,190 Polecają ten jeden, a następnie ten ADT, narzędzia Android Development, 83 00:05:12,190 --> 00:05:17,300 to, że zainstalowanie wtyczki do Eclipse, który pozwala na 84 00:05:17,300 --> 00:05:20,550 mają znacznie bardziej opływowy doświadczenie z Androida w Eclipse. 85 00:05:20,550 --> 00:05:24,070 To daje pewne graficznych interfejsów użytkownika 86 00:05:24,070 --> 00:05:29,610 do projektowania poglądy, a to daje dużo więcej wsparcia 87 00:05:29,610 --> 00:05:34,840 oraz możliwość uruchamiania z emulatora i wszystkie tego rodzaju rzeczy. 88 00:05:34,840 --> 00:05:36,090 Application Framework. 89 00:05:36,090 --> 00:05:41,590 >> Chcę porozmawiać o tym, jak projekty w Androida są tak skonstruowane, 90 00:05:41,590 --> 00:05:44,830 , a potem pójdziemy do szybkiego przykład, i miejmy nadzieję, 91 00:05:44,830 --> 00:05:48,820 można zadawać pytania w dowolnym momencie i czuć się komfortowo przez koniec. 92 00:05:48,820 --> 00:05:50,090 Mamy trochę żargonu pierwszy. 93 00:05:50,090 --> 00:05:55,330 Aktywność jest jak na ekranie widać, kiedy uruchomić aplikację. 94 00:05:55,330 --> 00:05:57,840 Całe doświadczenie jest działalność sama, 95 00:05:57,840 --> 00:06:00,790 więc można myśleć o tym, jak ekran lub widoku, 96 00:06:00,790 --> 00:06:04,540 ale w rzeczywistości kod po stronie tego. 97 00:06:04,540 --> 00:06:12,680 My nadal nazywają rzeczywistą część interfejsu to widok. 98 00:06:12,680 --> 00:06:17,230 To coś w rodzaju, jak w Pset 7 mieliśmy kontrolera, a następnie w widoku. 99 00:06:17,230 --> 00:06:20,690 Aktywność jest mniej lub bardziej kontroler 100 00:06:20,690 --> 00:06:23,360 i widok jest to, co robimy w zakresie XML 101 00:06:23,360 --> 00:06:25,260 , które jest związane z tym działania. 102 00:06:25,260 --> 00:06:29,340 Fragmenty są czymś, co jest realizowane w Ice Cream Sandwich w przyszłości. 103 00:06:29,340 --> 00:06:36,380 To tylko pomysł biorąc części zdania lub działalność 104 00:06:36,380 --> 00:06:39,990 i dzieląc je na dwie części, tak, że możemy 105 00:06:39,990 --> 00:06:45,030 sprawić, by nasz kod bardziej użyteczny dla tych wielu urządzeń różnych 106 00:06:45,030 --> 00:06:51,890 że musimy wspierać, a to jest po prostu sposób próbuje 107 00:06:51,890 --> 00:06:54,290 również czynnik się więcej kodu. 108 00:06:54,290 --> 00:07:01,090 Usługi są rzeczy, tło, jak odtwarzanie muzyki lub wskazówki nawigacyjne potencjalnie. 109 00:07:01,090 --> 00:07:05,640 Dostawcy treści są to API w systemie operacyjnym 110 00:07:05,640 --> 00:07:09,070 , które pozwalają na dostęp do udostępnionych danych, takich jak informacje kontaktowe, 111 00:07:09,070 --> 00:07:12,790 i zamiarem jest coś użyjemy, gdy chcemy uruchomić 112 00:07:12,790 --> 00:07:17,210 nowa działalność z naszej bieżącej działalności. 113 00:07:17,210 --> 00:07:20,980 >> Witaj Android, to ma być projekt, który będziemy rozmawiać. 114 00:07:20,980 --> 00:07:25,410 Ja rzeczywiście zrobi to za Ciebie, a następnie zrobimy coś, gdzie klikamy przycisk 115 00:07:25,410 --> 00:07:27,650 z tekstem i rozpoczęcia nowej działalności. 116 00:07:27,650 --> 00:07:30,110 Bardzo proste, ale chcę, aby przejść 117 00:07:30,110 --> 00:07:34,480 co trafi do projektu jak ten. 118 00:07:34,480 --> 00:07:39,260 Po wprowadzeniu nowego projektu można zobaczyć w ramach Eclipse 119 00:07:39,260 --> 00:07:41,900 jest to projekt o nazwie Halo Android. 120 00:07:41,900 --> 00:07:43,470 Wtedy istnieje cała masa folderów tutaj. 121 00:07:43,470 --> 00:07:46,760 Ci, jesteś naprawdę zajmujące się to folder źródłowy, 122 00:07:46,760 --> 00:07:54,540 Folder resource, RES, i do pewnego stopnia folderu libs dla bibliotek. 123 00:07:54,540 --> 00:08:00,070 I tak jesteśmy na tej samej stronie, z tym, 124 00:08:00,070 --> 00:08:03,240 jeśli były, aby utworzyć nowy projekt, 125 00:08:03,240 --> 00:08:08,270 możesz zrobić to tutaj, więc jeśli chcę zadzwonić to HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 a następnie automatycznie wykonuje całą masę informacji o nas. 127 00:08:11,100 --> 00:08:14,110 Nazwa pakietu ma być unikalny identyfikator 128 00:08:14,110 --> 00:08:16,710 które zwykle są związane z serwisem, jeśli miała. 129 00:08:16,710 --> 00:08:24,430 >> Na przykład, ja nazywam to net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 A ja już się ten projekt raz. 131 00:08:30,070 --> 00:08:40,059 Okay, przepraszam. Nazwijmy to HelloCS50. 132 00:08:40,059 --> 00:08:42,929 A potem będzie prosić rzeczy jak co to ikony chcemy zrobić. 133 00:08:42,929 --> 00:08:48,840 To wszystko z powodu interfejsu Android Developer Tools, 134 00:08:48,840 --> 00:08:53,350 plugin, który dodaliśmy do Eclipse, więc możemy wybrać takie rzeczy jak 135 00:08:53,350 --> 00:08:58,320 co ikona chcemy, i że pójdzie na tej głębokości, jeśli chcemy. 136 00:08:58,320 --> 00:09:04,360 Ale w końcu, po prostu zrobić ten projekt, 137 00:09:04,360 --> 00:09:07,040 i wszystko, co pojawia się tutaj. 138 00:09:07,040 --> 00:09:10,030 Tak jak pokazano na drugim ekranie 139 00:09:10,030 --> 00:09:14,070 mamy folder źródłowy i będę mówić o tym, co to wszystko oznacza tylko, 140 00:09:14,070 --> 00:09:19,090 ale widać, że natychmiast trzeba nam do HelloCS50 ekranie. 141 00:09:19,090 --> 00:09:24,690 Są tu przyciski do dodawania tekstu i tekst układy pól. 142 00:09:24,690 --> 00:09:28,910 To coś w rodzaju XCode ale niestety nie tak usprawnione. 143 00:09:28,910 --> 00:09:37,790 Ale klipy będzie twoim przyjacielem i ADT w szczególności do tego. 144 00:09:37,790 --> 00:09:40,920 >> Okay, folder źródłowy jest gdzie 145 00:09:40,920 --> 00:09:43,820 pliki Java odbywają, i to jest faktycznie uruchomienie programu. 146 00:09:43,820 --> 00:09:45,990 Jest to w zasadzie jak kontrolerów. 147 00:09:45,990 --> 00:09:49,020 Folder resource lub res gdzie będziemy trzymać układów ekranu, 148 00:09:49,020 --> 00:09:54,110 obrazy, dźwięki, teksty, animacje i wszystko inne, libs, oczywiście, biblioteki. 149 00:09:54,110 --> 00:10:01,700 I Manifest, to sposób, że system Android wie 150 00:10:01,700 --> 00:10:03,130 sposób interakcji z aplikacji. 151 00:10:03,130 --> 00:10:07,980 Mówi to o uprawnienia, jakie działania będą faktycznie uruchomić. 152 00:10:07,980 --> 00:10:12,350 To wszystko jest istotne informacje, że jest to konieczne, aby uruchomić aplikację. 153 00:10:12,350 --> 00:10:17,990 Folder źródłowy jest-jeśli go rozwinąć, jak widać tutaj. 154 00:10:17,990 --> 00:10:23,920 I przykład, że kod będzie wyglądał, jest to kod domyślny. 155 00:10:23,920 --> 00:10:27,930 Jak nazywa się to, główną działalność. 156 00:10:27,930 --> 00:10:33,230 Domyślnie mamy OnCreate, która to funkcja, która jest wywoływana, gdy działalność ta ładunki, 157 00:10:33,230 --> 00:10:37,150 więc chcesz zadzwonić OnCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 To przywróci żadnych bitów informacji 159 00:10:40,440 --> 00:10:44,910 w przypadku, gdy aplikacja została wstrzymana. 160 00:10:44,910 --> 00:10:48,790 >> Jest cała aktywność wykres cyklu życia które można spojrzeć na 161 00:10:48,790 --> 00:10:50,380 kiedy się trochę bardziej szczegółowe, w tym, 162 00:10:50,380 --> 00:10:56,210 ale najważniejsza linia kodu jest funkcja setContentView 163 00:10:56,210 --> 00:11:00,290 która ładuje plik zasobów dla układu. 164 00:11:00,290 --> 00:11:03,590 Następnie co OnCreate tutaj jest w zasadzie robi to mówi 165 00:11:03,590 --> 00:11:07,010 podczas tworzenia tej działalności chcę załadować ten układ. 166 00:11:07,010 --> 00:11:12,030 I będziemy rozmawiać o tym, co, że układ jest w drugim. 167 00:11:12,030 --> 00:11:16,230 Gdybyśmy uruchomić, że tutaj to wygląda dokładnie tak, jak to, 168 00:11:16,230 --> 00:11:22,880 i domyślnie dlatego, że Eclipse to zrobić i ADT robi to za nas 169 00:11:22,880 --> 00:11:28,210 to jest cały kod boilerplate który jest stworzony dla nas, 170 00:11:28,210 --> 00:11:34,630 i możemy iść dalej i zmienić rzeczy, jak chcemy. 171 00:11:34,630 --> 00:11:38,190 Folder zasobów, jak powiedziałem, to jest, gdy posiadamy wszystkie układy, 172 00:11:38,190 --> 00:11:41,150 drawables w zakresie każdego rodzaju obrazów- 173 00:11:41,150 --> 00:11:46,360 nazywa się drawables a potem pliki dźwiękowe, menu. 174 00:11:46,360 --> 00:11:51,170 To sposób na całą masę XML w ładnym stylu sortowanie. 175 00:11:51,170 --> 00:11:58,030 Jak widać, istnieje. Hdpi, ldpi, MDPI i foldery xhdpi dla drawables. 176 00:11:58,030 --> 00:12:02,220 Są to różne gęstości ekranu, tak wysoka gęstość pikseli na cal, 177 00:12:02,220 --> 00:12:05,710 niskiej gęstości, o średniej gęstości, bardzo wysokiej gęstości. 178 00:12:05,710 --> 00:12:08,900 >> Jest to kolejny, więc możemy wspierać wszystkie te różne urządzenia, 179 00:12:08,900 --> 00:12:15,100 a najlepiej, będziesz mieć różne obrazy dla każdej innej rozdzielczości. 180 00:12:15,100 --> 00:12:20,740 Układy są gdzie m.in. wszystkie inne układy, które będą wykorzystywane w różnych działaniach. 181 00:12:20,740 --> 00:12:24,150 Mogą również zawierać układy dla fragmentów, 182 00:12:24,150 --> 00:12:26,670 co oznacza częściowe działania w zasadzie. 183 00:12:26,670 --> 00:12:29,610 Jeśli chcesz zrobić coś fajnego, jak gdy telefon zostanie obrócony 184 00:12:29,610 --> 00:12:33,900 chcesz go mieć inny układ można zrobić układ-krajobraz jak w innym folderze, 185 00:12:33,900 --> 00:12:39,000 i Android automatycznie ma całą masę tych zasad w folderze zasobów, 186 00:12:39,000 --> 00:12:44,690 więc będzie wiedzieć, aby spojrzeć na różnych folderach na podstawie bieżącej konfiguracji telefonu, 187 00:12:44,690 --> 00:12:46,740 Jaki sprzęt używasz. 188 00:12:46,740 --> 00:12:52,350 Podobnie, to wartości-v11 tutaj i wartości-v14 189 00:12:52,350 --> 00:12:55,460 i wartości domyślnego folderu to dla- 190 00:12:55,460 --> 00:13:01,730 dobrze, wartości samo w sobie, to będą wartości domyślne we wszystkich wersjach systemu operacyjnego. 191 00:13:01,730 --> 00:13:06,390 Z drugiej strony, v11 i v14 odpowiadać Honeycomb 192 00:13:06,390 --> 00:13:08,780 i Ice Cream Sandwich, odpowiednio. 193 00:13:08,780 --> 00:13:12,800 Ponownie, to są sposoby, które-w tych folderach są różne ciągi 194 00:13:12,800 --> 00:13:17,550 i style, dzięki czemu można dostosować wygląd aplikacji 195 00:13:17,550 --> 00:13:22,660 lub potencjalnie nawet jego funkcjonalność, ale że będzie prawdopodobnie zły pomysł, 196 00:13:22,660 --> 00:13:25,890 na podstawie wersji systemu operacyjnego. 197 00:13:25,890 --> 00:13:28,760 >> I ja rozmawialiśmy o tym wszystkim tutaj. 198 00:13:28,760 --> 00:13:35,870 Ponownie, drawable, surowe, Układ wartości. 199 00:13:35,870 --> 00:13:41,380 Domyślne, jeśli pójdziemy do Witaj Android lub Witaj CS50 właśnie teraz 200 00:13:41,380 --> 00:13:43,310 będzie to wyglądać podobnie jak ten. 201 00:13:43,310 --> 00:13:45,800 Będzie powiedzieć hello world. 202 00:13:45,800 --> 00:13:58,430 Jak widać tutaj z tekstem Androida 203 00:13:58,430 --> 00:14:04,420 Tekst dla tego widoku tekstu, który jest w zasadzie tylko label, 204 00:14:04,420 --> 00:14:06,900 jest to, co my nazywamy go w iOS. 205 00:14:06,900 --> 00:14:11,580 Ma to zabawna notacji @ ciąg / hello_world. 206 00:14:11,580 --> 00:14:16,200 To tak się da-staramy się wyodrębnić wszystkie łańcuchy, 207 00:14:16,200 --> 00:14:19,740 wszystkich ciężko zakodowanych ciągów w Androida do osobnego folderu, 208 00:14:19,740 --> 00:14:23,610 co dzieje się w values.strings. 209 00:14:23,610 --> 00:14:29,300 Jeśli spojrzymy tutaj, widzimy, że mamy zakodowane ciąg zapisany tutaj 210 00:14:29,300 --> 00:14:33,910 sortowania Hello World, a to się nazywa hello world, a to z 211 00:14:33,910 --> 00:14:39,230 wspólny projekt decyzji na wielu platformach, które chcesz- 212 00:14:39,230 --> 00:14:41,780 łańcuchy są te rzeczy, które chcemy, aby potencjalnie być w stanie zmienić. 213 00:14:41,780 --> 00:14:48,050 Nie chcemy kontrolować F w naszym pliku z kodem źródłowym w naszym XML. 214 00:14:48,050 --> 00:14:50,760 Chcemy być w stanie zmienić tego, kiedy mamy szansę. 215 00:14:50,760 --> 00:14:53,640 >> Ten plik XML, strings.xml, jest sposobem wydobywania 216 00:14:53,640 --> 00:14:56,710 zakodowane ciągi, które inaczej byłyby w naszych zasobów układ 217 00:14:56,710 --> 00:15:03,530 lub w naszym kodzie źródłowym. 218 00:15:03,530 --> 00:15:08,190 Manifest jest gdzie trzymać tego podstawowe informacje o aplikacji. 219 00:15:08,190 --> 00:15:11,050 Zawiera nazwę pakietu. To musi być unikalny identyfikator. 220 00:15:11,050 --> 00:15:16,020 W przeciwieństwie do App Store dla iOS się nazwy aplikacji 221 00:15:16,020 --> 00:15:19,980 nie muszą być unikalne i można faktycznie zmienić nazwę aplikacji 222 00:15:19,980 --> 00:15:23,570 po przesłaniu go, więc jeśli zaczynasz z Angry Birds, 223 00:15:23,570 --> 00:15:26,840 a potem dokonać aktualizacji, i nie chcę się do wydania nowej wersji 224 00:15:26,840 --> 00:15:34,230 Myślę, że mógłbym nazwać to Angry Birds 2, a ja jestem w tym samym cyklu wydawniczego. 225 00:15:34,230 --> 00:15:36,780 Byłoby to po prostu pokazać się jako aktualizacja. 226 00:15:36,780 --> 00:15:39,790 Jedyną rzeczą, która musi być unikalna jest to nazwa pakietu, 227 00:15:39,790 --> 00:15:41,280 który wiele osób nie będzie widać. 228 00:15:41,280 --> 00:15:44,680 Cóż, można zobaczyć tylko jeśli szukasz w kodzie źródłowym lub jeśli jest jakiś błąd. 229 00:15:44,680 --> 00:15:47,580 Składniki obejmują działania, więc musimy zadeklarować 230 00:15:47,580 --> 00:15:49,070 każdy rodzaj działalności używamy. 231 00:15:49,070 --> 00:15:53,430 Jest to rodzaj zezwolenia rzeczy. 232 00:15:53,460 --> 00:15:58,150 >> Ponieważ Android nie posiada tego rygorystyczny proces aplikacji 233 00:15:58,150 --> 00:16:02,210 składania aplikacji, a nie po prostu nie wszystko opiera się o uprawnienia 234 00:16:02,210 --> 00:16:04,300 i deklarując rzeczy w manifeście. 235 00:16:04,300 --> 00:16:06,380 Wersja SDK jest również ważna. 236 00:16:06,380 --> 00:16:10,330 Możemy ustawić wykorzystanie wersję czegoś, jako minimalne SDK. 237 00:16:10,330 --> 00:16:16,010 Oczywiście, chcesz stworzyć kod 238 00:16:16,010 --> 00:16:18,570 i projektowania dla nowszych systemów operacyjnych. 239 00:16:18,570 --> 00:16:20,840 Być może nie jest najnowszy, może nie Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Może chcesz zaprojektować przede wszystkim do Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 chociaż są prawie takie same w zakresie decyzji projektowych 242 00:16:27,120 --> 00:16:30,550 a rzeczywiste bibliotek i API. 243 00:16:30,550 --> 00:16:36,250 Ale zamiast mieć ludzi 244 00:16:36,250 --> 00:16:40,050 oryginalnej wersji Android Donut-podobny sposób, kiedy z tyłu- 245 00:16:40,050 --> 00:16:43,420 którzy jeszcze się do korzystania, które należy pobrać aplikację, a potem mówią 246 00:16:43,420 --> 00:16:46,160 to nie działa na moim telefonie można ustawić minimalną wersję 247 00:16:46,160 --> 00:16:48,620 i mają być Sandwich Ice Cream Gingerbread lub 248 00:16:48,620 --> 00:16:53,300 lub cokolwiek czujesz się komfortowo przedkładanie. 249 00:16:53,300 --> 00:16:57,170 I to jest przykład z manifestem. Możemy spojrzeć na rzeczywistą jeden na trochę. 250 00:16:57,170 --> 00:17:00,900 >> W porządku, po prostu iść do przodu z demo teraz. 251 00:17:00,900 --> 00:17:08,900 To jest demo, jeśli Google Android zbudować swoją pierwszą aplikację, czy coś takiego. 252 00:17:08,900 --> 00:17:12,089 Pojedziemy przez wszystko, co się dzieje w środku, 253 00:17:12,089 --> 00:17:17,690 i przepraszam, tylko dla odniesienia, kto tutaj zna Javę w jakimkolwiek stopniu? 254 00:17:17,690 --> 00:17:28,310 Okay, więc Java jest nowy język kodowania dla większości ludzi pochodzących z CS50. 255 00:17:28,310 --> 00:17:31,850 Krótko mówiąc, aby go na nowo to, co mówi się tutaj, 256 00:17:31,850 --> 00:17:35,580 to, co chcemy zrobić, to zamiast dostosować tę aplikacji Hello World 257 00:17:35,580 --> 00:17:38,620 że wszystko, co robi, jest to uruchamia i mówi hello world 258 00:17:38,620 --> 00:17:43,580 i mówi cześć CS50 na górze, bo to nazwa aktywności 259 00:17:43,580 --> 00:17:47,190 będziemy próbować uczynić pole tekstowe i przycisk 260 00:17:47,190 --> 00:17:50,680 tak, że kiedy nacisnąć ten przycisk, to zajmie tekst 261 00:17:50,680 --> 00:17:53,660 z pola tekstowego i uruchomienie nowej działalności, a to znaczy 262 00:17:53,660 --> 00:17:58,380 cokolwiek, że tekst mówi w działalności, i to jest stosunkowo proste. 263 00:17:58,380 --> 00:18:00,650 To nie jest bardzo ciekawe. Nie chcesz, aby wyzwolić wszelkie app tak. 264 00:18:00,650 --> 00:18:03,880 Ale to pokazuje kilka ważnych rzeczy projektowych. 265 00:18:03,880 --> 00:18:07,030 >> Musimy współdziałać z manifestem, z plikami układu, 266 00:18:07,030 --> 00:18:12,440 z kodem źródłowym, można zobaczyć, jak uruchomić jedną działalność od drugiego. 267 00:18:19,740 --> 00:18:23,060 Zaczniemy z układem dla naszej pierwszej działalności, 268 00:18:23,060 --> 00:18:27,320 co wiem, to trochę małe, 269 00:18:27,320 --> 00:18:32,660 ale jak widać w tej chwili, wszystko to jest to ma nasze logo, które stworzyliśmy, 270 00:18:32,660 --> 00:18:36,310 Nazwa działalności, i mówi hello world w centrum. 271 00:18:36,310 --> 00:18:40,400 Zamiast tego, jestem pierwszy zamiar zrobić to na liniowy układ, 272 00:18:40,400 --> 00:18:42,350 względny układ, a to są wszystkie rzeczy 273 00:18:42,350 --> 00:18:45,870 można spojrzeć w górę i są warte będzie ponad w pewnym momencie w zakresie układów. 274 00:18:45,870 --> 00:18:47,310 To dużo jak HTML. 275 00:18:47,310 --> 00:18:52,640 Powiedzieliśmy, to naprawdę nie jest warte poznania pod względem programowym sensie 276 00:18:52,640 --> 00:18:55,840 ale istnieje tak wiele różnych układów, które można kontrolować, 277 00:18:55,840 --> 00:18:57,970 i to tylko jak CSS w zakresie stylów. 278 00:18:57,970 --> 00:19:01,590 >> Jest dużo dzieje się tylko pod względem estetyki tutaj, 279 00:19:01,590 --> 00:19:08,930 i tak, to warto się czegoś, ale takie rzeczy należy szukać w górę 280 00:19:08,930 --> 00:19:11,810 jak idziesz i czujesz, że potrzebujesz czegoś nowego. 281 00:19:11,810 --> 00:19:17,030 Mogę skorzystać z niektórych narzędzi ADT tu przynajmniej zacząć od. 282 00:19:17,030 --> 00:19:21,930 Zrobię pole tekstowe, a sprawię, że się przycisk. 283 00:19:21,930 --> 00:19:24,100 Umieść je obok siebie. 284 00:19:24,100 --> 00:19:28,200 Oni już zmienić rozmiar odpowiednio. 285 00:19:28,200 --> 00:19:31,320 Niestety, znowu wraca do różnicy między liniowego układu i układu względnego, 286 00:19:31,320 --> 00:19:34,830 liniowy układ daje trochę więcej funkcjonalności 287 00:19:34,830 --> 00:19:38,720 pod względem wypełnienia przestrzeni, a upewniając 288 00:19:38,720 --> 00:19:42,790 my rzeczy pozycji poziomo lub pionowo. 289 00:19:42,790 --> 00:19:46,130 Duża różnica między liniowego układu oraz układu względnego 290 00:19:46,130 --> 00:19:50,250 Wszystko jest względne pozycje układ w stosunku do innych poglądów, 291 00:19:50,250 --> 00:19:52,630 i dobrą rzeczą jest to, że zajmuje mniej czasu, aby wyciągnąć 292 00:19:52,630 --> 00:19:56,120 ponieważ system operacyjny wygląda na cały kod i mówi, że to idzie 293 00:19:56,120 --> 00:19:58,270 w stosunku do tego tutaj, tutaj. 294 00:19:58,270 --> 00:20:03,170 Oznacza to, że sprawia, że ​​mniej pomiarów niż całą masę zagnieżdżonych liniowych układów, 295 00:20:03,170 --> 00:20:06,840 co mam zrobić, jeśli chcę rzeczy iść pionowo tutaj. 296 00:20:06,840 --> 00:20:10,510 >> Mam już kilka rzeczy dzieje w poziomie, więc będę potrzebował inny układ liniowy 297 00:20:10,510 --> 00:20:14,560 zagnieździć je pionowo, ale jeśli robią względny układ mogę powiedzieć 298 00:20:14,560 --> 00:20:18,140 zachować to w lewo, to w prawo, a te rzeczy poniżej. 299 00:20:18,140 --> 00:20:21,850 Ale dlatego, że chcę je wypełnić właśnie teraz mam zamiar wykorzystać liniowy układ, 300 00:20:21,850 --> 00:20:24,510 i widać to już robi wiele z tych rzeczy dla nas. 301 00:20:24,510 --> 00:20:28,890 Wszystkie widoki muszą mieć właściwości szerokości i wysokości, 302 00:20:28,890 --> 00:20:33,410 i tak się dzieje, aby mieć ciężar 1, a to ma ciężar 1 303 00:20:33,410 --> 00:20:36,050 tak, że wypełnia całą przestrzeń. 304 00:20:36,050 --> 00:20:38,460 Ale szerokość i wysokość są najważniejsze. 305 00:20:38,460 --> 00:20:45,880 To pole ID tu nie jest ważne w rzeczywisty układ 306 00:20:45,880 --> 00:20:49,060 chyba że używamy względny układ i mówiąc możemy odwoływać 307 00:20:49,060 --> 00:20:52,990 jeden widok pozycji w stosunku do drugiego. 308 00:20:52,990 --> 00:20:56,170 Jeśli mieliśmy względny układ można powiedzieć pozycję to poniżej tej jednej 309 00:20:56,170 --> 00:20:59,390 lub powyżej tego numeru, ale to będzie istotne ID 310 00:20:59,390 --> 00:21:01,660 gdy używamy go w naszym kodzie, bo możemy odwoływać 311 00:21:01,660 --> 00:21:05,610 te poszczególne poglądy w ten sposób. 312 00:21:05,610 --> 00:21:10,350 >> I wtedy można zobaczyć requestFocus tag, który jest coś, czego zapewne widzieliśmy w Pset 7. 313 00:21:10,350 --> 00:21:15,370 Było tag auto focus lub coś wzdłuż tych linii na jednym z pól. 314 00:21:15,370 --> 00:21:22,100 I jedno, oczywiście, możemy zrobić tak jak w HTML, 315 00:21:22,100 --> 00:21:25,660 i zauważ jedną z miłych rzeczy o ADT jest to, że autocompletes tutaj. 316 00:21:25,660 --> 00:21:29,930 Może nie tak ładnie jak to miało miejsce w Xcode, ale ma jednak, 317 00:21:29,930 --> 00:21:32,860 i można powiedzieć, podpowiedź, a następnie nadać mu jakiś ciąg 318 00:21:32,860 --> 00:21:37,070 jak napisać wiadomość, 319 00:21:37,070 --> 00:21:41,300 i jeśli dać mu chwilę, również zauważyć, że mam trochę błąd tutaj 320 00:21:41,300 --> 00:21:44,610 mówiąc, że powinniśmy korzystać z zasobu ciąg dla tego, 321 00:21:44,610 --> 00:21:48,820 więc jeśli pozwolę zrobić niektóre z ciężkiej pracy dla mnie 322 00:21:48,820 --> 00:21:57,320 Mogę wybrać ten ciąg, czy refraktora Android i ekstraktu Android ciąg. 323 00:21:57,320 --> 00:22:00,570 Mogę dać mu to imię, napisz wiadomość, 324 00:22:00,570 --> 00:22:04,180 i co to było to, że otrzymuje że ciąg zakodowane 325 00:22:04,180 --> 00:22:07,980 w odniesieniu do całego łańcucha w ciągu tych. pliku xml, 326 00:22:07,980 --> 00:22:10,200 co oznacza, że ​​teraz jest to tutaj. 327 00:22:10,200 --> 00:22:15,560 >> I wiem, że wydaje się nieco banalne i jak dodatkowa praca w tym momencie, 328 00:22:15,560 --> 00:22:17,840 ale gdy masz całą masę rzeczy, cała masa łańcuchów, 329 00:22:17,840 --> 00:22:20,750 to jest bardzo ważne, zwłaszcza dla lokalizacji 330 00:22:20,750 --> 00:22:26,920 bo jak już wcześniej wspomniałem, Android jest bardzo używanym systemem operacyjnym na świecie 331 00:22:26,920 --> 00:22:35,950 , że można po prostu zrobić wartości-en-SP lub wartości 332 00:22:35,950 --> 00:22:44,320 lub coś w języku angielskim lub hiszpańskim lub innych. 333 00:22:44,320 --> 00:22:50,210 I to prawdopodobnie nie mieli tego doświadczenia jeszcze 334 00:22:50,210 --> 00:22:53,030 ponieważ nie zrobiliśmy dużo JavaScript w zakresie programowania WWW, 335 00:22:53,030 --> 00:22:56,850 ale możemy też zrobić to pole o nazwie onClick dla przycisku, 336 00:22:56,850 --> 00:23:02,350 i to jest sposób na odniesienie w naszym układzie 337 00:23:02,350 --> 00:23:06,570 że chcemy pewną funkcję, która ma zostać wywołana w naszym kodzie źródłowym. 338 00:23:06,570 --> 00:23:09,420 Mam zamiar nazwać sendMessage, 339 00:23:09,420 --> 00:23:13,390 i aby to robić to znaczy w głównej działalności tutaj 340 00:23:13,390 --> 00:23:19,180 Będę musiał utworzyć funkcję, która jest publiczna 341 00:23:19,180 --> 00:23:22,250 tak, że można go uzyskać przez układ. 342 00:23:22,250 --> 00:23:25,930 To nieważne, bo po prostu nie chcę, aby powrócić niczego. 343 00:23:25,930 --> 00:23:37,760 Nazwiemy go sendMessage, i zajmuje stanowisko, 344 00:23:37,760 --> 00:23:43,690 który jest rodzajem kontekście, że możemy zakotwiczyć tę metodę 345 00:23:43,690 --> 00:23:47,160 w tym konkretnym celu, gdy kończy nam się to. 346 00:23:47,160 --> 00:23:50,090 >> I nie wiem, czy zauważyłeś, dobrze, by nie zauważył, 347 00:23:50,090 --> 00:24:02,370 ale w tym momencie tutaj 348 00:24:02,370 --> 00:24:06,930 ten widok jest typ, który nie został jeszcze określony, 349 00:24:06,930 --> 00:24:10,630 i oczywiście, wszyscy wiemy z CS50 o nie w tym rodzaju. 350 00:24:10,630 --> 00:24:13,120 Zaletą Eclipse jak IDE, że 351 00:24:13,120 --> 00:24:17,520 jeśli zapomnisz to typ to podkreślić z odrobiną czerwieni squiggly 352 00:24:17,520 --> 00:24:19,680 a następnie daje możliwość importowania pogląd. 353 00:24:19,680 --> 00:24:23,130 Szybkim sposobem na osiągnięcie tego jest kontrola shift O, i będzie importować 354 00:24:23,130 --> 00:24:27,070 wszystkie pliki, że musi. 355 00:24:27,070 --> 00:24:33,670 Teraz, gdy mamy ten sendMessage funkcyjnego 356 00:24:33,670 --> 00:24:46,560 który zamierza wysłać wiadomość z główną działalność do nowej działalności, 357 00:24:46,560 --> 00:24:55,230 będziemy musieli korzystać z zamiarem uruchomienia nowej działalności z tym jednym, 358 00:24:55,230 --> 00:25:02,240 więc będziemy prawdopodobnie utworzyć globalna stała lub też szczególnie publiczne stały 359 00:25:02,240 --> 00:25:06,240 które pomogą nam znać, jak będziemy odwoływać ciąg 360 00:25:06,240 --> 00:25:09,090 bo gdy tworzymy intencji nie jesteśmy po prostu wywołanie nowej działalności, 361 00:25:09,090 --> 00:25:11,520 ale możemy też dać pakiet informacji. 362 00:25:11,520 --> 00:25:14,720 Pakiet jest w rzeczywistości termin Android korzysta, 363 00:25:14,720 --> 00:25:21,470 i jest to sposób na powiedzenie dać dodatkowe informacje, które nie mogą być wykonane z bardzo wyrafinowanym typem danych, 364 00:25:21,470 --> 00:25:24,510 ale na pewno możemy to wartości logiczne lub ciągi lub przerwaniami. 365 00:25:24,510 --> 00:25:29,750 Takie rzeczy. 366 00:25:29,750 --> 00:25:34,230 >> Zapraszam do zadawania o żadnej z tych eliminacjach tutaj, 367 00:25:34,230 --> 00:25:36,900 public, final, static. 368 00:25:36,900 --> 00:25:38,610 Publiczny jest ważne. 369 00:25:38,610 --> 00:25:47,090 Oznacza to, że możemy uzyskać dostęp do tej zmiennej z innych plików kodu źródłowego 370 00:25:47,090 --> 00:25:49,590 przykład podczas tworzenia nowej aktywności. 371 00:25:49,590 --> 00:25:52,190 Możemy odwołać ciąg w tym pliku. 372 00:25:52,190 --> 00:25:57,160 Jeśli to jest prywatna, to oznacza, że ​​jest ograniczona do tego pojedynczego pliku tutaj. 373 00:25:57,160 --> 00:26:02,430 Ale nazwijmy to coś w dodatkowym komunikacie. 374 00:26:16,260 --> 00:26:23,300 Teraz zrobiliśmy tę funkcję, a jeśli klikniesz przycisk, funkcja ta zostanie wywołana. 375 00:26:23,300 --> 00:26:27,970 Ale nie zrobiliśmy nic, oczywiście, z funkcją. 376 00:26:27,970 --> 00:26:33,130 To, co chcemy zrobić, to stworzyć nową działalność, 377 00:26:33,130 --> 00:26:35,350 aktywności, które będą faktycznie rozpoczęła. 378 00:26:35,350 --> 00:26:44,330 W Eclipse można powiedzieć, nowy Android aktywność, puste aktywności. 379 00:26:44,330 --> 00:26:46,530 Możemy nadać mu nazwę. 380 00:26:46,530 --> 00:26:57,050 Nazwijmy to nasza działalność wynik. 381 00:26:57,050 --> 00:27:04,430 A potem ta hierarchiczna pole rodzic jest sposób określania 382 00:27:04,430 --> 00:27:08,180 sposobu działania są podobne do siebie. 383 00:27:08,180 --> 00:27:11,020 Ponieważ ta zostanie uruchomiona z innej działalności 384 00:27:11,020 --> 00:27:27,520 należy określić, że ma dominującą główną działalność. 385 00:27:27,520 --> 00:27:31,220 >> I mógłbym kliknięciu na kolejnym polu tam, który powiedział nam, 386 00:27:31,220 --> 00:27:33,830 niektóre pola opcjonalne, które było również w tym, 387 00:27:33,830 --> 00:27:38,800 ale miłą rzeczą ADT, ponownie, jest to, że jeśli ja przewinąć tutaj 388 00:27:38,800 --> 00:27:45,740 w manifeście należy pamiętać, że to wszystko naprawdę było włączone domyślnie 389 00:27:45,740 --> 00:27:48,930 kiedy stworzony projekt, 390 00:27:48,930 --> 00:27:53,090 i teraz, bo kiedyś to utworzenie nowej działalności, a nie tylko 391 00:27:53,090 --> 00:27:58,610 dodając własny plik klasy, bo poszliśmy przez ich GUI dla tej 392 00:27:58,610 --> 00:28:01,930 to się już wszystko do manifestu dla nas, 393 00:28:01,930 --> 00:28:06,020 co oznacza po prostu, że teraz system operacyjny nie będzie narzekać 394 00:28:06,020 --> 00:28:09,400 gdy staramy się uruchomić tę działalność. 395 00:28:09,400 --> 00:28:14,620 A także, oczywiście, dał etykiety, które również znajdują się w ciągi. 396 00:28:14,620 --> 00:28:17,340 Robi wiele rzeczy na tylnym końcu dla nas. 397 00:28:17,340 --> 00:28:20,140 W każdym razie, teraz, że mamy tej działalności wynik, jak również, 398 00:28:20,140 --> 00:28:23,810 właściwy plik kod źródłowy w folderze źródłowym, 399 00:28:23,810 --> 00:28:33,540 i widać, krótko dotknąć tego- 400 00:28:33,540 --> 00:28:37,790 dlatego, że powiedział to o tym hierarchicznej rodzica 401 00:28:37,790 --> 00:28:46,640 dało to android.r.ide.home pola w tym onOption rzecz wybranego. 402 00:28:46,640 --> 00:28:49,020 >> Co to jest w zasadzie powiedzieć, znajduje się przycisk menu teraz 403 00:28:49,020 --> 00:28:53,110 że w lewym górnym rogu ekranu 404 00:28:53,110 --> 00:29:02,220 jeśli wrócę do programu PowerPoint, w którym po raz pierwszy mówił o pasku akcji 405 00:29:02,220 --> 00:29:05,380 ze względu na hierarchiczną rodzica teraz jest trochę tu strzałka 406 00:29:05,380 --> 00:29:10,610 i to jest interaktywna, więc powinniśmy być w stanie do-po faktycznie uruchomić aplikację- 407 00:29:10,610 --> 00:29:15,360 wrócić, i to jest sposób na uratowanie nam trochę kodu tam. 408 00:29:26,220 --> 00:29:40,180 Teraz w ramach tego-dobrze, wydaje się, że narzekają, że na chwilę. 409 00:29:40,180 --> 00:29:43,910 Miejmy komentarz, że na zewnątrz. 410 00:29:43,910 --> 00:29:48,260 Teraz, w celu współdziałania z tymi faktycznie 2 działań 411 00:29:48,260 --> 00:29:55,020 trzeba utworzyć zamiaru która zawiera wszystkie te dane. 412 00:29:55,020 --> 00:29:58,950 W SendMessage teraz idę do rejsu przez niektórych bitów kodu 413 00:29:58,950 --> 00:30:00,700 i wyjaśnić, że jak idę. 414 00:30:00,700 --> 00:30:06,280 Intencja, jak powiedziałem, jest to sposób, aby uruchomić jedno działanie od innych. 415 00:30:06,280 --> 00:30:10,000 Intent jest typ. Tworzymy zmienną myIntent. 416 00:30:10,000 --> 00:30:13,980 >> I to jest rzeczywiście przedmiotem, dlatego musimy wywołać nowy. 417 00:30:13,980 --> 00:30:18,500 To wspólne wykorzystanie Java tam, co może zająć trochę przyzwyczaić. 418 00:30:18,500 --> 00:30:23,900 To oznacza, że ​​za pomocą działalności lub główną działalność klasy, 419 00:30:23,900 --> 00:30:28,630 i zamiar w ten sposób wykonuje działalność to będzie od 420 00:30:28,630 --> 00:30:36,060 i aktywność to będzie, co nazywamy ResultActivity, 421 00:30:36,060 --> 00:30:38,170 i to jest jego własna klasa. 422 00:30:38,170 --> 00:30:41,720 M.in., że. 423 00:30:41,720 --> 00:30:47,370 A potem, jak już wspomniałem wcześniej, daliśmy to ID do pola edycji tekstu 424 00:30:47,370 --> 00:30:53,710 i zobacz tekst, tak aby programowo przechwytywania 425 00:30:53,710 --> 00:31:01,860 Tekst, który istnieje w EditText 426 00:31:01,860 --> 00:31:06,710 możemy korzystać z tej funkcji o nazwie findViewByID, 427 00:31:06,710 --> 00:31:13,660 który jest podobny do czegoś, co będziesz używać podczas próby uzyskania pola z DOM. 428 00:31:13,660 --> 00:31:17,560 Może mówi David o tym w wykładzie. 429 00:31:17,560 --> 00:31:26,600 Ale to jest po prostu sposobem na uzyskanie tych-dlatego oznaczyć te rzeczy z tych pól. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 To już autocompleting tam na mnie. 432 00:31:35,220 --> 00:31:42,010 >> I wtedy będziemy również-to EditText teraz, że mamy pole 433 00:31:42,010 --> 00:31:47,640 w naszym programie, wszystko findViewByID nie było w zasadzie 434 00:31:47,640 --> 00:31:50,870 można myśleć o tym, jak dać nam odniesienie do tego EditText. 435 00:31:50,870 --> 00:31:54,570 Teraz chcemy uzyskać ciąg lub komunikat 436 00:31:54,570 --> 00:32:00,670 w tym EditText które możemy zrobić za pomocą- 437 00:32:00,670 --> 00:32:03,360 można myśleć EditText jako struct- 438 00:32:03,360 --> 00:32:07,600 nazywamy to obiekt w Javie, z całą masę różnych metod 439 00:32:07,600 --> 00:32:10,650 lub pola i atrybuty przypisane do niego. 440 00:32:10,650 --> 00:32:15,510 Kiedy mówię EditText. to daje mi szansę, aby uzyskać dostęp 441 00:32:15,510 --> 00:32:19,770 metody takie jak gettext, który będzie aktualny tekst 442 00:32:19,770 --> 00:32:23,990 w tym EditText a następnie przekonwertować jawnie 443 00:32:23,990 --> 00:32:26,520 na sznurku, a my zapisane wiadomości. 444 00:32:26,520 --> 00:32:32,730 Teraz naprawdę chcemy zrobić coś z tym zamiarem stworzyliśmy tylko chwile temu. 445 00:32:32,730 --> 00:32:40,250 Położę extra jak to się nazywa w tej intencji, 446 00:32:40,250 --> 00:32:43,330 co znów tak jak powiedziałem wcześniej, jest to sposób na stworzenie paczkę 447 00:32:43,330 --> 00:32:45,980 z całą masę danych. 448 00:32:45,980 --> 00:32:50,920 Extra wiadomość jest nasz tag więc wiemy, z czym mamy do zapisywania tego w ramach, 449 00:32:50,920 --> 00:32:56,700 i to ja jestem tym wiadomość. 450 00:32:56,700 --> 00:33:04,870 >> I wtedy możemy zacząć działalność poprzez nadanie mu myIntent parametru. 451 00:33:04,870 --> 00:33:10,630 I to rzeczywiście uruchomić działalność, więc teraz od uaktualnieniu do Windows 8 452 00:33:10,630 --> 00:33:15,870 nie mogą być pewne błędy, które pojawiają się na krótko, ale staram się je ignorować. 453 00:33:28,010 --> 00:33:30,310 I to jest Android emulator. 454 00:33:30,310 --> 00:33:33,540 Mam nadzieję, że kod rzeczywiście pojawiają się w jednej chwili. 455 00:33:33,540 --> 00:33:36,680 Ponownie, ignorując te wszystkie małe rzeczy. 456 00:33:36,680 --> 00:33:42,290 Ale emulator Android można emulować dowolną wersję systemu operacyjnego 457 00:33:42,290 --> 00:33:45,180 od najwcześniejszych, Donut, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 To Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Ale jak widać w tej chwili, to jest coś zrobiliśmy. 460 00:33:53,150 --> 00:33:55,780 Ma to tę główną działalność, EditText, przycisk. 461 00:33:55,780 --> 00:34:01,550 Mogę pisać coś tutaj, ale co nam brakuje w tym momencie? 462 00:34:01,550 --> 00:34:05,190 Zrobiliśmy boiska w główną działalność, która się dzieje, aby wysłać wiadomość 463 00:34:05,190 --> 00:34:08,570 do innych aktywności, ale w tym momencie 464 00:34:08,570 --> 00:34:12,330 nie zrobiliśmy nic w innej działalności, więc to nie będzie otrzymywać niczego. 465 00:34:12,330 --> 00:34:18,800 Skończmy się, że część, zanim przejdziemy. 466 00:34:18,800 --> 00:34:25,760 >> Działanie to wynika, co musimy zrobić, to musimy zrobić, to musimy do- 467 00:34:25,760 --> 00:34:30,070 możemy odwołać się do intencji w tej działalności, 468 00:34:30,070 --> 00:34:33,580 więc musimy uchwycić intencje, co jest naprawdę proste. 469 00:34:33,580 --> 00:34:40,780 Jest to funkcja, należących do grupy aktywności, 470 00:34:40,780 --> 00:34:47,610 więc możemy tylko powiedzieć "Pobierz wiadomości z zamiarem". 471 00:34:47,610 --> 00:34:56,260 "MyIntent Intent = getIntent". 472 00:34:56,260 --> 00:35:00,030 I to daje nam-teraz myIntent jest obiekt, 473 00:35:00,030 --> 00:35:05,380 co jest nawiązaniem do intencji, które doprowadziły nas do tej działalności. 474 00:35:05,380 --> 00:35:10,130 Główną działalność wywołuje i daje dodatkowe informacje na wynik działalności. 475 00:35:10,130 --> 00:35:14,070 Aktywność Rezultat wygląda teraz w intencji, która doprowadziła go tutaj, 476 00:35:14,070 --> 00:35:23,540 i możemy przejść do wiadomości, że utworzony w drugim, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, autouzupełnianie i to będzie dla mnie. 478 00:35:26,370 --> 00:35:31,190 A potem pamiętam, nasz sposób oznaczony, że bit danych 479 00:35:31,190 --> 00:35:38,400 był poprzez nadanie mu tego pola tu, to publiczny ciąg 480 00:35:38,400 --> 00:35:42,080 który jest tag na ciąg faktycznie zawartych. 481 00:35:42,080 --> 00:35:48,450 >> Jeśli powiem MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 To właśnie tam, a to jest coś w rodzaju nazwy parametru 483 00:35:52,200 --> 00:35:55,330 kiedy mijaliśmy kod ze sterownika do szablonu, 484 00:35:55,330 --> 00:35:57,680 gdy chcemy coś powiedzieć strzałki tytułowy. 485 00:35:57,680 --> 00:36:01,140 To ten sam rodzaj pomysłu nie. 486 00:36:01,140 --> 00:36:07,130 Teraz, o tym pamiętać. 487 00:36:07,130 --> 00:36:12,230 Mieliśmy również to auto stworzone lub auto generowany kod 488 00:36:12,230 --> 00:36:16,410 dla działalności wynik, który zawiera widok tekstu w środku 489 00:36:16,410 --> 00:36:19,690 że mówi hello world. 490 00:36:19,690 --> 00:36:27,510 Możemy ewentualnie zrobić, że większe. 491 00:36:27,510 --> 00:36:33,980 Zróbmy to pierwsze. 492 00:36:33,980 --> 00:36:39,550 Moglibyśmy zrobić to 40 gęstości niezależnych pikseli. 493 00:36:39,550 --> 00:36:42,670 Zobaczmy, że jest bardzo duże. To będzie w porządku. 494 00:36:42,670 --> 00:36:48,180 A potem, w celu odwoływać się do tego indywidualne widok tekstu w naszym kodzie 495 00:36:48,180 --> 00:36:53,890 musimy nadać mu identyfikator, 496 00:36:53,890 --> 00:36:58,350 w tym celu, że mówimy @ + id, co oznacza, możemy przypisać mu identyfikator. 497 00:36:58,350 --> 00:37:02,480 Jeśli po prostu powiedział id @ to przyjąć mamy odwołanie do identyfikatora, który już istnieje, 498 00:37:02,480 --> 00:37:07,760 i nazwijmy to nasz resultTextView. 499 00:37:07,760 --> 00:37:10,570 I zauważyć, że w XML nie ma potrzeby średnikiem lub cokolwiek. 500 00:37:10,570 --> 00:37:12,380 Wszystko jest w tych tagów. 501 00:37:12,380 --> 00:37:15,530 Jest bardzo podobny do HTML w wielu znaczeniach. 502 00:37:15,530 --> 00:37:22,760 >> To zajmuje trochę przyzwyczaić, ale w końcu będziesz czuć się dość komfortowo z nim. 503 00:37:22,760 --> 00:37:31,320 Chcę zaktualizować tekst dla naszego widzenia tekstu wynikowego, 504 00:37:31,320 --> 00:37:35,650 i tak jak my, gdy byliśmy coraz to pole Edycja tekstu w naszej pozostałej działalności 505 00:37:35,650 --> 00:37:46,630 w główną działalność tutaj będziemy również samo- 506 00:37:46,630 --> 00:37:54,890 znajdziemy pogląd przez ID. 507 00:37:54,890 --> 00:37:59,640 I R, w przypadku nie wspomnieć o tym wcześniej, jest odniesienie do naszego folderu zasobów, 508 00:37:59,640 --> 00:38:05,350 i ID jest odniesienie do wszystkiego w folderze zasobów, wszystkie identyfikatory, 509 00:38:05,350 --> 00:38:10,060 i resultTextView. 510 00:38:10,060 --> 00:38:13,010 I tak jak wcześniej, resultTextView jest obiekt, 511 00:38:13,010 --> 00:38:15,780 co oznacza, że ​​nie wszystkie z tych właściwości związane. 512 00:38:15,780 --> 00:38:20,610 Kiedy używamy getText dla tekstu edycji na tym polu tekstowym lub w widoku tekstowym 513 00:38:20,610 --> 00:38:23,980 możemy właściwie wykorzystać setText, 514 00:38:23,980 --> 00:38:26,960 a potem już znalazłem wiadomość od intencji, 515 00:38:26,960 --> 00:38:35,760 więc mogę powiedzieć, wiadomości, i to właściwie ustawić wiadomość. 516 00:38:35,760 --> 00:38:41,820 >> To poświęć chwilę, aby uruchomić, a następnie możemy zobaczyć, czy się zawiesi, 517 00:38:41,820 --> 00:38:48,670 ale wszelkie pytania dotyczące tego procesu właśnie tam, tego typu interakcji? 518 00:38:48,670 --> 00:38:51,490 Pod wieloma względami jest to proste. 519 00:38:51,490 --> 00:38:53,960 Powodem Idę przez coś stosunkowo prostego 520 00:38:53,960 --> 00:38:57,330 jest, ponownie, ponieważ można zobaczyć interakcji między układem, 521 00:38:57,330 --> 00:38:59,520 kod źródłowy, jak się rzeczy referencyjne 522 00:38:59,520 --> 00:39:07,680 a może się trochę ekspozycji na jak Java tam pracuje. 523 00:39:07,680 --> 00:39:16,500 Jeśli rzeczywiście coś tu wpisać, jak OHAI, a potem kliknij przycisk, 524 00:39:16,500 --> 00:39:22,260 uruchamia nową działalność, i że widok mówi tekst ohai. 525 00:39:22,260 --> 00:39:27,640 To jest bardzo proste, ale mam nadzieję, że po tym przykładzie 526 00:39:27,640 --> 00:39:32,310 Ci rodzaju jak ta interakcja działa, a teraz, że bałagan plików 527 00:39:32,310 --> 00:39:36,870 po lewej stronie dla wszystkich tych folderów projektu, mam nadzieję, że wiesz, gdzie szukać teraz. 528 00:39:36,870 --> 00:39:38,700 Jest to obszar kodu źródłowego. 529 00:39:38,700 --> 00:39:41,760 >> Układ jest naprawdę jedyną rzeczą, będziesz zajmować się aż zawierać obrazy 530 00:39:41,760 --> 00:39:46,370 i drawables lub cokolwiek, i wartości, które obejmują ciągi, 531 00:39:46,370 --> 00:39:51,960 jak wspomnieliśmy, a następnie styl to coś, coś w rodzaju CSS. 532 00:39:51,960 --> 00:39:56,410 Adres, kiedy chcesz, ale dopóki nie czują się komfortowo z dodające uroku 533 00:39:56,410 --> 00:40:02,520 do aplikacji nie ma potrzeby martwić się o tym zbyt wiele. 534 00:40:02,520 --> 00:40:07,410 Wystarczy, aby zakończyć jedną rzecz na pewno chcesz to- 535 00:40:07,410 --> 00:40:13,010 zakładając, że chcesz zintegrować fajne funkcje i oszczędzić sobie jakieś dodatkowe kodowanie- 536 00:40:13,010 --> 00:40:16,460 byłoby to 3-gie bibliotek zewnętrznych. 537 00:40:16,460 --> 00:40:19,840 Oto mały facet Android z Sherlock Holmes kapeluszu. 538 00:40:19,840 --> 00:40:23,040 To jest action bar Sherlock biblioteka, 539 00:40:23,040 --> 00:40:25,390 co w skrócie oznacza, że ​​pasek akcji widziałeś wcześniej, 540 00:40:25,390 --> 00:40:29,590 która jest obecnie standardem w Ice Cream Sandwich i Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 jeśli chcesz przynieść tego rodzaju doświadczenia użytkownika do użytkowników w starszych wersjach 542 00:40:33,100 --> 00:40:39,290 i zapisać się od martwienia się o sposób użytkownik będzie poruszać 543 00:40:39,290 --> 00:40:42,490 w starszych wersjach, gdy ta rzecz nie istnieje możesz dołączyć tę bibliotekę 544 00:40:42,490 --> 00:40:46,770 a potem po prostu trzeba reference-zamiast domyślnie Android 545 00:40:46,770 --> 00:40:50,250 biblioteki na pasku akcji, można odwoływać się do tej biblioteki wsparcia. 546 00:40:50,250 --> 00:40:53,090 >> Rzeczy takie jak Scoreloop, to jest świetne, jeśli masz zamiar to gra. 547 00:40:53,090 --> 00:40:57,280 Pozwala dodawać tabelach liderów i osiągnięć do gier. 548 00:40:57,280 --> 00:41:00,900 AdMob jest sposobem na wprowadzenie reklam w aplikacjach 549 00:41:00,900 --> 00:41:02,900 w przypadku, gdy chcesz, aby trochę pieniędzy od niego. 550 00:41:02,900 --> 00:41:05,730 Oczywiście, nie jest Facebook i Twitter integracji istnieje 551 00:41:05,730 --> 00:41:08,170 Jeśli chcesz podzielić się rzeczy łatwo, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, podobnie, a Google Analytics jest to, że wykres patrząc jeden tam. 553 00:41:15,120 --> 00:41:19,070 To będzie bardzo ważne, jeśli faktycznie chcą zobaczyć, kto jest interakcja 554 00:41:19,070 --> 00:41:25,800 z aplikacji lub kto to jest, jak one oddziałują, et cetera. 555 00:41:25,800 --> 00:41:30,650 Google, domyślnie, mówi Ci wiele statystyk na temat, który zainstalował aplikację 556 00:41:30,650 --> 00:41:35,020 i jakie telefony mają, co wersje systemów operacyjnych mają. 557 00:41:35,020 --> 00:41:38,080 Ale jeśli chcesz zobaczyć, kto używa go na co dzień i jak z niego korzystać 558 00:41:38,080 --> 00:41:42,860 potem będziesz chciał to jakiś system śledzenia takiego. 559 00:41:42,860 --> 00:41:44,990 >> Kiedy będziesz gotowy do dystrybucji aplikacji 560 00:41:44,990 --> 00:41:46,930 Nie trzeba iść do, że w głębi za dużo. 561 00:41:46,930 --> 00:41:49,090 Kliknij na link tutaj, Google Odtwórz. 562 00:41:49,090 --> 00:41:51,080 Kiedyś na rynku Android. 563 00:41:51,080 --> 00:41:53,470 Oni przemianowane wszystko z Google Play, 564 00:41:53,470 --> 00:41:55,230 więc teraz przedstawić to. 565 00:41:55,230 --> 00:41:57,140 To bardzo proste. 566 00:41:57,140 --> 00:42:01,070 Musisz zawierać opis, kilka zrzutów ekranu. 567 00:42:01,070 --> 00:42:05,660 Tak jak mówiłem, nie ma proces zatwierdzania jak iOS. 568 00:42:05,660 --> 00:42:07,270 I gdzie dalej? 569 00:42:07,270 --> 00:42:09,450 Pokazałem ci bardzo prosty przykład. 570 00:42:09,450 --> 00:42:13,270 Mam nadzieję, że jeśli wydaje się to strasznie proste 571 00:42:13,270 --> 00:42:15,740 wtedy to chyba dobry znak. 572 00:42:15,740 --> 00:42:20,080 Jeśli w ogóle czułem się trochę zdezorientowany i pewien dokładnie to, co pisałem 573 00:42:20,080 --> 00:42:26,160 to też jest w porządku, ale od tego przejść do przewodników Google. 574 00:42:26,160 --> 00:42:28,330 Jest to idealne miejsce, aby rozpocząć. 575 00:42:28,330 --> 00:42:31,460 Będzie rozmawiać Cię przez to, czego się spodziewać w zakresie projektowania aplikacji, 576 00:42:31,460 --> 00:42:33,380 jak użytkownicy zwykle interakcja. 577 00:42:33,380 --> 00:42:36,450 To znacznie więcej niż iOS w postaci wolnego, powiedziałbym, 578 00:42:36,450 --> 00:42:41,330 którym wydaje się, że widoki tabeli są-nie wiem, to jest ich chleb i masło. 579 00:42:41,330 --> 00:42:44,690 Wszystko jest widok tabeli przesuwane w górę iw dół. 580 00:42:44,690 --> 00:42:48,160 Z Androida na pewno zachęcić ludzi, aby spojrzeć na to z 581 00:42:48,160 --> 00:42:51,720 cała masa różnych perspektyw. 582 00:42:51,720 --> 00:42:56,000 >> Kiedy obejmuje zestaw do tworzenia oprogramowania w tym ADT 583 00:42:56,000 --> 00:43:03,010 domyślnie masz całą masę przykładowych projektów w Androida. 584 00:43:03,010 --> 00:43:05,470 Właśnie tu, Android, Project Sample Android. 585 00:43:05,470 --> 00:43:11,870 Jeśli klikam na to, to mogę wybrać wersję dla których próbki projekty zastosowania. 586 00:43:11,870 --> 00:43:13,300 Jest cała masa różnych rzeczy tutaj. 587 00:43:13,300 --> 00:43:16,690 Zaczyna się z kompatybilnością pasku akcji, 588 00:43:16,690 --> 00:43:24,610 gry akcelerometr, tworzenia kopii zapasowych i przywracania, Bluetooth, budowniczy gest. 589 00:43:24,610 --> 00:43:28,930 JetBoy to gra sample dają ci, jak to LunarLander. 590 00:43:28,930 --> 00:43:31,250 Istnieje cała masa przykładowych aplikacji tutaj, 591 00:43:31,250 --> 00:43:35,290 i wszystkie są skierowane do różnych aspektów API Androida, 592 00:43:35,290 --> 00:43:41,520 i idea jest taka, że ​​jak sobie aplikację 593 00:43:41,520 --> 00:43:44,110 nie ma potrzeby, aby dowiedzieć się wszystkiego na temat Androida złożyć aplikację dla systemu Android. 594 00:43:44,110 --> 00:43:47,300 Trzeba tylko dowiedzieć się o części, że jesteś rzeczywiście będzie w użyciu. 595 00:43:47,300 --> 00:43:49,340 Spójrz na tych bibliotek próbek. 596 00:43:49,340 --> 00:43:51,510 Zapraszam skopiować i wkleić kod i ponownie go. 597 00:43:51,510 --> 00:43:53,850 To wielka rzecz, aby spojrzeć na trudniejszej kodu 598 00:43:53,850 --> 00:43:57,060 i starać się zrozumieć to, co jest, oczywiście, dlaczego w CS50 599 00:43:57,060 --> 00:44:01,510 często daje duże ilości kodu źródłowego. 600 00:44:01,510 --> 00:44:04,620 Spójrz na niektóre z nich, jeśli masz zamiar stosować podobne bibliotek 601 00:44:04,620 --> 00:44:08,630 a następnie zastosować go do własnego kodu. 602 00:44:08,630 --> 00:44:10,430 I oczywiście, są tutoriale. 603 00:44:10,430 --> 00:44:12,690 Szukaj samouczków. 604 00:44:12,690 --> 00:44:17,020 Znalazłem wiele dobrych Internecie, które mogą doprowadzić cię do prędkości 605 00:44:17,020 --> 00:44:20,080 z czego fragmenty naprawdę są i jak można z nich korzystać. 606 00:44:20,080 --> 00:44:22,240 >> Niektóre z tych nowych rzeczy, projektowych, jak fragmentów, 607 00:44:22,240 --> 00:44:26,840 Naprawdę nie trzeba się martwić o ile nie robisz 608 00:44:26,840 --> 00:44:30,560 dość duża w projekcie zakres. 609 00:44:30,560 --> 00:44:32,510 Są rzeczy, że Google stara się stopniowo w. 610 00:44:32,510 --> 00:44:35,570 Stackoverflow jest oczywiście twój przyjaciel. 611 00:44:35,570 --> 00:44:37,930 Mam nadzieję, że sprzedał ci trochę na Androida, 612 00:44:37,930 --> 00:44:41,640 zdając sobie sprawę, że o wiele łatwiej podejść w kategoriach tylko język kodowania. 613 00:44:41,640 --> 00:44:45,970 Java to powiedziałbym, że o wiele łatwiejsze do zrozumienia niż Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android rośnie Myślę, znacznie więcej niż iOS. 615 00:44:50,780 --> 00:44:54,890 To znaczy, dane są tam też, oprócz tego, co myślę. 616 00:44:54,890 --> 00:44:56,920 To będzie przez jakiś czas, 617 00:44:56,920 --> 00:45:00,880 i kilka lat w tyle pod względem ich cykli projektowych, 618 00:45:00,880 --> 00:45:04,690 więc jest to jakby zrozumiała, że ​​wciąż pracujemy przez niektóre z nich 619 00:45:04,690 --> 00:45:09,080 kwestie spójności, jak ten pasku akcji jest to nowa rzecz dla nich nadal, 620 00:45:09,080 --> 00:45:16,010 rodzaj tworzenia podobny interfejs użytkownika we wszystkich swoich aplikacji. 621 00:45:16,010 --> 00:45:20,650 Mam nadzieję, że można iść do przodu i teraz otwarcie Eclipse 622 00:45:20,650 --> 00:45:22,870 i tworzyć własne aplikacje Android. 623 00:45:22,870 --> 00:45:30,240 >> Czy ktoś ma jakieś pytania, zanim skończymy o niczym? 624 00:45:30,240 --> 00:45:34,410 Mogę powiedzieć, że odpowiedź jest 42. 625 00:45:34,410 --> 00:45:41,990 Cóż, szczęśliwy kodowanie wszystkich, i życzę powodzenia. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]