[Powered by Google Translate] [Семинар] [Андроид апликации (Сега со Желе Грав!)]
[Јордан Jozwiak] [Универзитетот Харвард]
[Ова е CS50.] [CS50.TV]
>> Здраво на сите, и добредојде на Андроид апликации (Сега со Желе Грав!) Семинар.
Таа се вика Сега со Желе Грав, се разбира, затоа што
најновата верзија на оперативниот систем се нарекува Желе Грав.
Кога ми зборуваше за Андроид минатата година и го направи ова во основа иста семинар
Бев презентирање на шеми на дизајн и стилски избор за Gingerbread,
иако Сладолед Сендвич излегоа во тоа време,
и ова е нешто што ние ќе зборуваме за одење напред малку.
Андроид, се разбира, има некои проблеми со фрагментација,
така најновите Google оперативен систем обично е
не навистина се случува да стане заеднички меѓу корисниците за потенцијално и до една година, за жал.
>> Но без разлика што, ние ќе разговараме за многу причини зошто
Андроид е многу подобро отколку iOS.
Океј, ние ќе зборуваме за Андроид наспроти iOS,
некои дизајн парадигми, како ќе се постави во само еден слајд,
и голема разлика помеѓу ова и минатата година е јас само сакам да
зум преку некои концептуални работи кои работат со
на оперативниот систем и потоа оди во навистина основен пример.
Всушност, само на пример, дека Google ја опишува за градење на вашиот прв стан,
и ние ќе одат преку него заедно и само се опише.
>> Знам дека многу од вас имаат само кодирани во C, па Јава е веќе нема да биде
поинаква перспектива, и на овој начин ќе Засукајте ги ракавите
и се чувствуваат малку повеќе удобно со него се надевам.
А брз преглед, Андроид наспроти iOS.
Во Андроид, тука е тоа едно време инвеститорот такса од $ 25,
Ништо од ова 100 $ годишно нешто.
Не постојат ограничувања, што значи дека ако сакам да поднесе стан,
Јас само го поднесе, и нема процесот на одобрување како таму е за iOS.
Можеш да се развие со Java користејќи Eclipse,
која е крстот платформа, па тоа не е важно ако имате Mac,
Прозорци, или некои Линукс машина.
Се разбира, со iOS мора да се користат Xcode на Mac,
и Android се користи од страна на многу повеќе луѓе,
па ако сакате вашиот стан да имаат некој вид на видливост или можеби
се направи малку пари од реклами,
ти си веројатно со поголема веројатност да имаат корист од Андроид.
>> И едно нешто што е отсекогаш бил познат за Андроид
е екстремен количина на прилагодување, додека iOS е многу фиксирани во нивните начини
така што тие може да се задржи безбедноста и контрола над секоја мала аспект
на дизајнот во рамките на нивните оперативен систем и поединечни апликации.
Андроид е многу слободна форма, и има толку многу повеќе можности.
Океј, некои дизајн парадигми.
Забележи само како iOS има таблети и iPhone и iPod допира
тие треба да се поддржи, да речеме, како дузина уреди, ако сакате да ја поддржите
историски работи, како и.
Со Android ќе имаат за поддршка на стотици на уреди,
па така постојат некои работи кои Google се обидува да се имплементираат
да се направи на корисникот искуство малку повеќе во согласност,
но ние исто така ќе зборуваме за тоа како тоа значи дека постојат прашања на фрагментација
кои што постојано треба да бидат свесни за поддршка.
Фрагментација значи дека постојат многу различни оперативни системи,
многу различни телефони со различни хардверски работи Андроид сите во исто време,
па овој графикон тука оди назад за околу 6 месеци.
Да, 6 месеци, а можете да видите како и на најмрачните бенд
на дното е Желе Грав, кој излезе во текот на летото,
и може да се види токму сега веројатно околу 2% од телефони го имаат.
>> Сладолед Сендвич излезе пред една година,
а една четвртина од телефони го имаат.
Постојат уште многу телефони кои се користат OS верзија од пред години.
Едно нешто што Google се обидува да направи да се направи на корисникот искуство
многу повеќе доследни низ апликации започнува со саќе,
кој е таблета верзија, тогаш Сладолед Сендвич и Желе Грав,
тие се навистина се обидува да се нагласи користењето на оваа акција бар,
што е она што може да се види во горниот тука,
Сè што токму овде, вклучувајќи го и овој малку поставувања копче.
Тоа е дизајн избор.
Сега, секогаш кога ќе видите на 3 точки тоа значи кликнете на ова,
и ќе има опаѓачкото мени, која има некој вид на поставувања.
Ова само покажува нагоре, бидејќи јас кликна на ова копче.
Ова е нешто што тие се обидуваат да го користите да се направи апликации малку повеќе во согласност
во одборот и така корисникот има подобро чувство на униформа искуство.
>> Океј, па во случај да не сте го направиле тоа веќе, или ако сте гледа дома
тогаш може да се следат овие чекори за да го поставите вашиот кодирање на животната средина.
Тој ќе вклучи случува да на веб тука.
Можете да ги Google инсталирање на Android SDK
и да ги следат некои описи таму.
Тие ви кажам сè.
Тие имаат да инсталирате пакети, да го преземете Eclipse Classic верзија,
иако, се разбира, ние сме кодирање во Јава.
Тие препорачуваат овој еден, а потоа оваа ADT, на Андроид развој на алатки,
е додаток кој ќе се инсталира во Eclipse која ви овозможува да
имаат многу повеќе рационализација искуство со Андроид во рамките на Eclipse.
Тој ќе ви даде некои графички кориснички интерфејси
за дизајнирање на ставови, и тоа ќе ви даде многу повеќе поддршка
и способноста да се започне со емулатор и сите тој вид на работа.
Апликација рамка.
>> Сакам да се зборува за тоа како проекти во рамките на Андроид се структурирани,
а потоа ќе одиме во брз пример, и се надевам
можете да поставувате прашања во кој било момент и се чувствуваат удобно до крајот на тоа.
Имаме некои жаргон во прв план.
Активност е како на екранот ќе видите кога ќе започне еден стан.
Целата искуство е самата активност,
па може да мислам на тоа како екран или во поглед на,
но тоа е всушност изворниот код страна од тоа.
Ние се уште се јавите на вистинските интерфејс дел од неа цел.
Тоа е вид на како тоа, како во pset 7 имавме контролер, а потоа погледот.
Оваа активност е повеќе или помалку на контролорот,
и на изглед е она што го правиме во однос на XML
кој е поврзан со таа активност.
Фрагменти се нешто што е имплементиран во Сладолед Сендвич оди напред.
Тоа е само идејата за преземање на делови од погледите или дејност
и поделувајќи ги во одделни области, така што можеме да
направи нашиот код покорисно за овие многу различни уреди
дека ние мора да го поддржи, а тоа е само начин се обидува да
исто така, фактор дознаете повеќе код.
Услуги се позадина работи како свири музика или навигација насоки потенцијално.
Содржината на услуги, овие се API-јата во рамките на оперативниот систем
кои ви дозволуваат да пристапите до споделени податоци, како што се информации за контакт,
а потоа намера е нешто што ќе се користи кога сакаме да започне
нова активност од нашите сегашни активност.
>> Здраво Андроид, ова се случува да биде проект што ќе се зборува.
Јас всушност ќе го направи тоа за вас, а потоа ние ќе направиме нешто каде што ќе кликнете на едно копче
со малку текст и да се започне нова активност.
Многу јасна, но сакам да поминат низ
она што ќе одат во еден ваков проект.
Кога ќе се направи нов проект ќе видите во рамките на Eclipse
има овој проект наречен Здраво Андроид.
Потоа, постојат еден куп на папки тука.
Оние што сте навистина се занимава со се извор папка,
ресурс папка, на ОИЕ, и до одреден степен на libs папка за библиотеките.
И само така ние сме на истата страница со кои
ако сте биле за да креирате нов проект,
можете да го направите ова право тука, па ако сакам да го наречеме HelloAndroid,
и тогаш тоа автоматски го прави целиот куп на информации за нас.
Името на пакетот би требало да биде единствен идентификатор
кои нормално ќе бидат поврзани со веб-сајт, ако сте имале еден.
>> На пример, јас ќе се јавам овој net.cs50.helloandroid.
И јас веќе го направија овој проект еднаш.
Во ред, извинете. Ајде да го наречеме HelloCS50.
И тогаш тоа ќе побара нешта како што вид на иконата сакаме да се направи.
Ова е за сите, бидејќи на Андроид Алатки за програмери интерфејс,
додатокот кој ние додаден во Eclipse, па ние може да избере нешта како
она иконата што го сакаме, а тоа би навлегувал во тоа длабочина ако сакаме.
Но, на крајот, само бидете на проектот,
и сè се појавува во право тука.
Како што покажа на други екран на допир,
имаме извор папка, а јас ќе зборува за она што сето ова значи наскоро,
но може да се види дека веднаш нè води до HelloCS50 екранот.
Постојат некои копчиња овде за додавање на текст и текст поле распоред.
Тоа е вид на како Xcode, но за жал не е толку рационализација.
Но клипови ќе ти биде пријател и ADT особено за тоа.
>> Океј, изворот папка е местото каде што
Јава датотеки се одржа, а тоа е, всушност, лансирањето на својата програма.
Тоа е во основа како контролори.
Ресурс папка или на ОИЕ е местото каде што ние ќе продолжиме екран распоред,
слики, звуци, текст, анимација и сè друго, libs, очигледно, библиотеки.
И Манифестот, тоа е начинот на кој систем Андроид знае
како да комуницирате со вашиот стан.
Тоа го кажува за дозволи и кои активности, всушност, ќе биде извршена.
Тоа е сите важни информации што е потребно да се кандидира на вашиот стан.
Извор папка е-ако ние го прошири како што можете да видите во право тука.
И пример дека кодот ќе изгледа-ова е стандардното код.
Како што го нарекува, MainActivity.
По дифолт, да добиеме OnCreate, која е функција која се вика кога оваа активност товари,
па сакате да се јавите OnCreate (savedInstanceState).
Ова ќе го направите било битови на информации
во случај на стан беше откажана.
>> Има цела активност животниот циклус шема која може да се погледне
кога ќе добие малку повеќе во-длабочина во неа,
но најважните линија код има оваа функција setContentView
кој ќе се вчита ресурс датотека за распоред.
Тогаш што OnCreate тука е во основа прави е тоа велејќи
кога ќе се создаде оваа активност сакам да се вчита овој распоред.
А ние ќе се зборува за она што распоред е во една секунда.
Ако ние требаше да започне дека тука изгледа токму вака,
и стандардно бидејќи имаме Eclipse тоа и ADT тоа го прават за нас
ова е за сите boilerplate код кој е создаден за нас,
и ние може да се движи и се променат работите како што ние сакаме.
Ресурс папка, како што реков, ова е местото каде што ние се одржи на сите распоред,
цртежи во однос на било кој вид на слики-
тие се наречени цртежи, а потоа и звучни датотеки, менија.
Тоа е начин на целиот куп на XML во еден убав подредени модата.
Како што можете да видите, постојат. Hdpi, ldpi, mdpi и xhdpi папки за цртежи.
Овие се различни екран густина, па со висока густина на пиксели по инч,
ниска густина, средна густина, екстра висока густина.
>> Ова е, пак, за да можеме да ги поддржи сите овие различни уреди,
и идеално, ќе имате различни слики за секој различен резолуција.
Распоред се таму каде што ги вклучува сите различни скици кои ќе се користат во различни активности.
Тие, исто така може да вклучува и распоред за фрагменти,
што значи делумна активности основа.
Ако сакате да направите нешто кул како секогаш кога ќе ротираат на телефонот
што сакате тоа да имаат различен распоред можете да направите распоред-сцена како друга папка,
и Андроид автоматски има цел куп на овие правила во рамките на ресурс папка,
така што ќе знаат да се погледне во различни директориуми врз основа на сегашните подесување на телефонот,
каков вид на хардвер кој го користите.
Слично на тоа, овие вредности-V11 тука и вредности-v14
и на стандардните вредности папката ова е за-
добро, вредности сама по себе, ова ќе биде стандардните вредности во сите верзии на оперативниот систем.
Од друга страна, V11 и v14 кореспондираат со саќе
и Ice Cream Sandwich, соодветно.
Повторно, ова се начини на кои-во рамките на овие директориуми се различни низи
и стилови, па можете да го прилагодите изгледот на вашиот стан
или потенцијално дури и неговата функционалност, иако тоа веројатно би било лоша идеја,
врз основа на верзија на оперативниот систем.
>> И јас разговаравме за сето ова тука.
Повторно, цртежот, суровини, распоред, вредности.
На стандардно, ако одиме во Здраво Андроид или Здраво CS50 во моментов
тоа ќе изгледа исто како и оваа.
Тоа ќе го кажам здраво светот.
Како што можете да видите овде со текстот Андроид
текстот за овој текст, кој е основа, само една етикета,
е она што ние би го нарекуваат во iOS.
Таа има оваа смешна нотација @ стринг / hello_world.
Ова е така што можеме-се обидуваме да ја извадиме сите на жиците,
сите на хард-кодирани жици во Андроид во посебна папка,
кој се случува да биде во values.strings.
Ако ги погледнеме тука, можеме да видиме дека имаме хард-кодирани низа снимени тука
за здраво светот, а тоа се вика Здраво светот, и ова е еден вид на
заеднички дизајн одлука низ многу платформи што ќе посакате да-
стрингови се вид на работи кои сакаме да ги потенцијално да биде во можност да се промени.
Ние не сакаме да го контролираат F во нашата изворниот код датотека во нашиот XML.
Ние сакаме да бидеме во можност да го промените ова секогаш кога ќе го добиеме шанса.
>> Овој XML датотеката, strings.xml, е начин на извлекување
хард-кодирани жици кои инаку би биле во нашиот распоред ресурси
или во нашиот изворен код.
Манифестот е местото каде што ние ја задржите оваа од суштинско значење информации за апликацијата.
Тоа вклучува името на пакетот. Тоа мора да биде единствен идентификатор.
За разлика од App Store за iOS имињата на апликации
не мора да биде уникатен, а ти всушност може да го промени името на вашата апликација
откако ќе го поднесе, па ако јас започне со Лути птици,
и тогаш јас се направи ажурирање и не сакам да издаде нова верзија
Претпоставувам дека би можеле да го наречеме Лути птици 2 додека јас сум на истата порака циклус.
Тоа само ќе се појавиш како надградба.
Единственото нешто што треба да биде уникатен е тоа името на пакетот,
што не многу луѓе ќе ја видите.
Па, ти само ќе се види дали сте биле во потрага на изворниот код или ако постои некој вид на грешка.
Компоненти вклучува активности, па ние мора да се декларираат
било кој вид на активност ние ги користиме.
Ова е дозвола вид на работа.
>> Бидејќи Андроид не ја имаат оваа ригорозна примена процес
за поднесување апликации наместо тоа, тие само стори сé што е базирана на дозволи
и прогласување работи во Манифестот.
Верзија SDK е исто така важно.
Може да се постави употреба како SDK минимум верзија нешто.
Очигледно, сакате да се создаде код
и дизајн за поновите оперативни системи.
Можеби не најновата, можеби не Желе Грав.
Можеби сакате да дизајн првенствено за Сладолед Сендвич,
иако тие се прилично многу исти во однос на дизајнот одлуки
и вистински библиотеки и API-јата.
Но, наместо да имаме луѓе
на оригиналниот Андроид верзија-како поничка на враќање, кога-
кои се уште се случи да биде со користење кои се обидуваат да ја преземете вашата апликација, а потоа се каже
тоа не функционира на мојот телефон можете да поставите минимален верзија
и таа да биде Gingerbread или Ice Cream Sandwich
или што и да се чувствувате удобно испраќаат.
И ова е пример на Манифестот. Ние можеме да се погледне на вистинските еден во малку.
>> Океј, ние само ќе одиме напред со демо сега.
Ова е демо, ако на Google Андроид се изгради својата прва стан или нешто слично.
Ќе одиме преку сето она што се случува таму,
и жал, само за референца кои овде знае Јава на било кој степен?
Океј, па Јава е ново кодирање јазик за доаѓање повеќето луѓе надвор од CS50.
Накратко кажано, да одиме одново она што го кажува тука,
она што сакаме да направите е да наместо коригира оваа Hello World апликација
дека сите тоа го прави е тоа започна и таа вели Здраво светот
а таа вели здраво CS50 на врвот затоа што тоа е активност името
ние ќе се обиде да направи полето за текст и копче
така што кога ќе притиснете на ова копче ќе потрае текстот
од полето за текст и да се започне нова активност, и тоа ќе се каже
што и текстот се вели во активноста, и ова е релативно едноставна.
Тоа не е многу интересно. Ти не би сакал да се ослободи секој стан вака.
Но, тоа покажува некои важни дизајн нешта.
>> Ние ќе мора да комуницирате со манифест, со изгледот датотеки,
со изворен код, и што можете да видите како да се започне една активност од друга.
Ние ќе започнеме со изгледот за нашиот прв активност,
што знам тоа е вид на мали,
но како што може да се види токму сега, сите, тоа е тоа има нашето лого дека ние направивме,
активноста име, а таа вели Здраво светот во центарот.
Наместо тоа, јас сум прв случува да се направи тоа во еден линеарен распоред,
роднина распоред, и овие се сите нешта
може да се погледне нагоре и се вреди да се оди над во одреден момент во однос на распоред.
Тоа е многу како HTML.
Рековме дека тоа не е навистина вреди да се знае во смисла на програмски смисла,
но постојат толку многу различни распоред може да се контролираат,
и тоа е само како CSS, во смисла на стилови.
>> Има многу случува само во однос на естетиката тука,
и да, тоа е во вредност од учење, но тоа е вид на нешто што треба да се погледне до
како да одиш и да се чувствувате како ти треба нешто ново.
Можам да ги искористат предностите на некои од ADT алатки тука барем да започнете со.
Ќе бидете полето за текст, и Јас ќе направам едно копче.
Ги стави веднаш до едни со други.
Тие веќе ја намалите големината соодветно.
Жал ми е, повторно, се враќаат на разликата помеѓу линеарна распоред и релативната распоред,
линеарен распоред дава малку повеќе функционалност
во однос на пополнување простор и што си сигурен
ние позиција нешта хоризонтално или вертикално.
На голема разлика помеѓу еден линеарен распоред и роднина распоред
е релативна распоред позиции што во однос на другите погледи,
и добра работа во врска со тоа е дека е потребно помалку време да се подготви
затоа што оперативниот систем изгледа на сите на кодот и вели дека ова оди
во однос на ова тука, тука.
Тоа значи тоа го прави помалку мерења од една цела група на вгнездените линеарен распоред,
што јас ќе треба да направите ако сакав работите да одат вертикално тука.
>> Јас веќе имам некои работи се случува хоризонтално, па јас ќе треба различни линеарна распоред
да гнездо ги вертикално, но ако јас се прави во однос распоред можев да кажам
задржи ова на лево, ова на правото и овие нешта подолу.
Туку затоа што сакаме од нив да се пополни токму сега ќе одам да се користи линеарна распоред,
и можете да видите дека веќе го прави многу од овие работи за нас.
Сите погледи треба да имаат сопственост на ширина и висина,
и ова се случува да имаат тежина од 1, и тоа има тежина од 1
така што го исполнува целиот простор.
Но ширина и висина се најважни.
Овој проект поле, токму тука не е важно во рамките на реалните распоред
Освен ако не сме со користење на роднина распоред и велејќи дека можеме да референца
еден поглед позиција во однос на друг.
Ако имавме однос распоред би можеле да кажеме позиција оваа подолу и оваа
или над овој проект, но овој проект ќе биде важно
кога ќе го користите во нашиот код, бидејќи ние да референца
овие индивидуални ставови на овој начин.
>> А потоа можете да го видите requestFocus ознака, која е нешто што веројатно гледаат во pset 7.
Имаше автоматски фокус таг или нешто заедно оние линии за една од областите.
И една работа, се разбира, ние може да направи исто како во HTML,
и известувањето една од убавите работи во врска со ADT е тоа што autocompletes тука.
Можеби не толку убаво како тоа го правеше во Xcode, но тоа не сеедно,
и ние може да се каже навестување а потоа го даде некој вид на низа
како напишете порака,
и ако јас го даде момент, исто така забележуваме дека ќе добијам малку грешка тука
велејќи дека ние треба да го користи низа ресурс за ова,
па ако јас нека си ја работи некои од напорна работа за мене
Јас можам да одберам овој стринг, дали рефрактор Андроид и екстракт Андроид стринг.
Јас може да го даде тоа име, напишете порака,
и она што го правеше сега е заменета дека хард-кодирани низа
со повикување на стринг. стрингот е XML датотека,
што значи сега ова е овде.
>> И знам дека се чини дека малку тривијални и како дополнителна работа во овој момент,
но кога имате целиот куп работи, цела група на стрингови,
тоа е навистина важно, а особено за локализација
бидејќи како што споменав порано, Андроид е многу глобално ниво користи на оперативниот систем
дека можете едноставно да го направите вредности-ен или вредности-СП
или нешто за англиски или шпански или други јазици.
И тогаш веројатно не сте имале тоа искуство уште
бидејќи ние не направи многу го вклучите Javascript во однос на веб програмирање,
но ние исто така може да го направите ова поле наречена onClick за копче,
и ова е начин на референцирање во рамките на нашиот распоред
дека сакаме одредена функција да се нарече во нашата изворниот код.
Одам да се јавите оваа SendMessage,
а со цел да се направи ова дело тоа значи дека во главна активност или дејност тука
Јас ќе треба да се создаде функција која е јавно
така што тоа може да се пристапи од страна на изгледот.
Тоа е неважечки, бидејќи вие едноставно не сакате тоа да се врати ништо.
Ние ќе го наречеме SendMessage, и е потребно во поглед на,
која е еден вид на контекст, кој може да се зацврсти овој метод
за таа личност поглед, кога сме го работи.
>> И јас не знам дали сте забележале-добро, вие не би се забележале,
но во овој момент, токму тука
ова гледиште е тип кој се уште не е вклучен,
и, се разбира, дека сите знаете од CS50 за да не вклучувајќи типови.
На убаво нешто за како Eclipse IDE е дека
ако сте заборавиле да го вклучите тип ќе подвлечам со малку црвена squiggly
а потоа ти даде опција за увоз на гледање.
А брз начин тоа е контрола промена О, и тоа ќе увоз
сите датотеки што таа треба да.
Сега кога имаме оваа функција SendMessage,
која се случува да се испрати порака од MainActivity на нов дејност,
ние ќе мора да ја користи намера да лансира нова активност од овој,
па веројатно ќе сакате да се креира глобален постојана или, исто така, особено на јавно постојана
кои ќе ви помогнат со нас како ние ќе треба да повикување на низа
затоа што кога ние создаваме намера ние не сме само повикувајќи нова дејност,
но ние исто така може да го даде пакет на информации.
А пакет е, всушност, поимот дека Андроид користи,
и тоа е начин на велејќи дека тоа даде дополнителни податоци, кој не може да биде на многу софистициран тип на податоци,
но ние дефинитивно може да вклучуваат booleans или жици или ints.
Тој вид на работа.
>> Се чувствуваат слободни да прашате за било кој од овие квалификациите тука,
јавноста, финалето, статични.
Јавноста е важно.
Тоа значи дека ние може да пристапите на оваа променлива од други изворниот код на датотеки
како на пример кога ќе се создаде нова активност.
Можеме да повикување на низа во рамките на оваа датотека.
Ако тоа е приватна, тоа значи дека е ограничен на оваа индивидуа датотека тука.
Но, ние ќе го наречеме ова нешто како дополнителна порака.
Сега сме го направиле оваа функција, и ако ние кликнете на копчето, оваа функција ќе бидат повикани.
Но не сме направиле ништо, очигледно, со функција.
Она што сакаме да направите сега е да се создаде нова дејност,
активност која, всушност, ќе биде лансирана.
Во Eclipse, можеме да кажеме нов, Андроид активност, празно активност.
Ние може да го даде името.
Ајде да го наречеме нашите резултат активност.
А потоа и оваа хиерархиска родител поле не е начин на одредување на
како активности се поврзани едни со други.
Бидејќи ова ќе биде лансирана од другата активност
ние треба да се каже дека тој ја има родител претежна дејност.
>> И можев да го кликнале на следното поле таму, кои би ни кажа
некои опционални полиња, кои се, исто така, вклучувајќи,
но убаво нешто за ADT, пак, е дека ако јас дојдете долу тука
во Манифестот се сеќавам дека сето ова навистина беше вклучен по дифолт
кога ние првично замислен проектот,
и сега, бидејќи ние се користи овој создаде нов дејност, а не само
додавање на нашите сопствени класа датотека, бидејќи ние тргнавме преку нивните GUI за тоа
тоа веќе е додаден сето ова да го Манифестот за нас,
кој едноставно значи дека сега оперативниот систем нема да се жалат
кога ние се обидуваме да започне оваа активност.
И тоа исто така, се разбира, го даде етикета, која, исто така, покажува во жици.
Тоа го прави многу работи на задниот крај за нас.
Како и да е, сега, кога имаме овој резултат активност, како и,
вистинските изворниот код датотека во изворниот фолдер,
и што можете да видите, во кратки црти да се допре на ова-
затоа што го кажа за оваа хиерархиска родител
го даде ова поле android.r.ide.home во овој onOption избраните работа.
>> Што е ова во основа велејќи дека е таму е мени копчето сега
кој во горниот лев агол на екранот
ако јас се вратиме на PowerPoint, каде што првпат зборуваше за акција бар
бидејќи на хиерархиска родител сега има малку стрелка повторно тука
и ова е кликање, па ние треба да бидат способни да-по ние всушност се кандидира овој стан-
врати, и тоа е начин од нас заштеда на малку на код таму.
Сега во рамките на овој-добро, тоа се чини дека се жалат дека за момент.
Ајде да коментираат дека надвор.
Сега, со цел да се всушност комуницирате со овие 2 работи,
ние мора да се создаде намера која ги вклучува сите на овие податоци.
Во SendMessage сега ќе одам да крстарење низ некои делови од кодот
и објасни дека како што оди.
Намера, како што реков, е начин да се започне една активност од друга.
Намерата е тип. Ние сме создавање променлива myIntent.
>> И ова е всушност објект, кој е зошто ние треба да распише нови.
Тоа е заедничка Јава употреба таму, што би можело да потрае малку се користи за добивање.
Ова значи дека ние сме со користење на активност или класа MainActivity,
и намерата на тој начин зема активност се случува од
и активноста се случува да, кој ние го нарекуваме ResultActivity,
а тоа е сопствената класа.
Вклучуваат тоа.
А потоа, како што веќе напоменав претходно, ние го даде тој проект во текстот уреди поле
и текст, па со цел да програмски фати
текстот што постои во editText
ние ги користиме оваа функција наречена findViewByID,
која е слична на нешто што ќе го користите кога се обидува да добие полиња од ДОМ.
Можеби Дејвид зборува за ова во предавање.
Но тоа е само начин на добивање на оние-тоа е причината зошто ние таг овие работи со тие области.
Id.editText1.
Тоа е веќе autocompleting за мене таму.
>> А потоа ние, исто така, ќе вклучува-ова editText сега, кога имаме на полето
во рамките на нашата програма, сето тоа findViewByID не беше во основа
можете да мислам на тоа како да ни даде референца на таа editText.
Сега ние сакаме да го добиете стринг или пораката
во рамките на тој editText кои можеме да направиме со помош на-
можете да мислам на editText како struct-
ние ја нарекуваме објект во Јава-со целиот куп на различни методи
или полиња и атрибути прикачени на него.
Кога велам editText. тоа ми дава можност да пристапите до
метод, како што се gettext, која ќе добие тековниот текст
во таа editText а потоа се конвертира дека експлицитно
во стринг, и ние го зачувале порака.
Сега ние всушност сакате да направите нешто со тоа намерата ние направивме пред малку се одигрувала.
Јас ќе се стави екстра како што се вика во намера,
кои, повторно, како што реков претходно, ова е начин на креирање на пакет
со цела група на податоци.
Дополнителни порака е нашиот таг па ние знаеме што си заштеда овој под,
и тогаш јас сум вклучувајќи пораката.
>> А потоа ние всушност може да започне активност од страна давајќи параметарот myIntent.
И ова всушност ќе започне на активност, па така сега откако ја надгради до Windows 8
може да има некои грешки кои се појавуваат кратко, но обидете се да ги игнорираат.
И ова е Андроид емулатор.
Се надевам дека го кодот всушност ќе pop-up во еден момент.
Повторно, игнорирајќи сите оние мали нешта.
Но емулатор Андроид може да се емулира било која верзија на оперативниот систем
од најраните оние, поничка, Gingerbread.
Ова е Желе Грав 4.1.
Но како што може да се види токму сега, ова е нешто што ние ги направивме.
Ова има MainActivity, на editText, копчето.
Јас да напишете нешто тука, но она што сме ние недостасува во овој момент?
Ние направивме на теренот во MainActivity што се случува да ја пратите пораката
на друга активност, но во овој момент
не сме направиле ништо во друга активност, па тоа не се случува да добиете ништо.
Ајде да завршам тој дел, пред да продолжат понатаму.
>> Овој резултат активност, она што ние ќе треба да направите е, дека ќе треба да направите е, дека ќе треба да се-
ние, исто така, може да повикување на намерата во рамките на оваа активност,
така што мораме да го фати на намера, што е навистина едноставно.
Тоа е функција вклучени во активност класа,
па ние само може да се каже "Земи ја пораката од намерата."
"Намери myIntent = getIntent."
И тоа ќе ни даде-сега myIntent е објект,
кој е повикување на намерата кои нè доведоа до оваа активност.
MainActivity повици и дава дополнителни информации за да резултира активност.
Резултат активност сега изгледа на намерата дека тоа доведе овде,
и ние може да пристапите до пораката дека ние направивме во другиот,
getStringExtra, и ова ќе Автоматско комплетирање за мене.
И тогаш се сеќавам, на начинот на кој ние означени дека малку на податоци
беше со него даваат оваа област токму тука, ова јавни стринг,
кој е таг за стринг ние всушност вклучени.
>> Ако кажам MainActivity.Extra_Message
тоа е во право, таму, и ова е вид на како параметар име
кога го поминавме кодот од контролорот на дефиниција,
кога ние би рекол наслов стрелката нешто.
Тоа е истиот вид на идеја таму.
Сега, се сеќава на ова.
Ние, исто така имаше ова автоматски креирани или авто генерираниот код
за резултат активност, која ги вклучува текст во средината
во која се вели Здраво светот.
Ние потенцијално би можеле да го направат тој поголем.
Ајде да го направите тоа во прв план.
Ние би можеле да ја направат 40 густина независна пиксели.
Ајде да видиме, тоа е супер огромна. Дека ќе биде во ред.
А потоа, со цел да повикување оваа индивидуа текст во рамките на нашиот код
ние ќе мора да го даде проект,
а со цел да го направат тоа ние велиме @ + ID, што значи дека ние го додели проект.
Ако ние едноставно се рече @ ид тоа би се претпостави ние сме референцирање на проект што веќе постои,
и ајде да ги наречеме овој нашата resultTextView.
И ќе забележите дека во XML нема потреба за Точки и запирки или ништо.
Сè е во рамките на овие тагови.
Тоа е многу сличен со HTML во многу сетила.
>> Таа ги зема малку се користи за добивање, но на крајот ќе се чувствувате прилично удобно со него.
Ајде да ажурирање на текстот за нашите резултат текст,
и како што го правеше кога бевме добивање дека текстот уреди поле во другите наши активности
во MainActivity тука ние исто така ќе исто така-
ќе најдеме поглед од страна на проект.
И Р во случај јас не се споменуваат тоа порано, е повикување на нашите ресурси папка,
а потоа проект е повикување на се што е во ресурси папка, сите ИД,
и resultTextView.
И како и порано, resultTextView е објект,
што значи дека ги има сите овие особини поврзани со неа.
Кога ние ги користиме gettext за текстот уреди за овој полето за текст или текст
ние, всушност, може да се користи setText,
а потоа ние веќе се најде на пораката од намерата,
па можам да кажам порака, и ова всушност ќе се постави пораката.
>> Го земе еден миг да се започне, а потоа може да се види дали е или не блокира,
но било какви прашања во врска со тој процес во право, таму, тој вид на интеракција?
На многу начини тоа е јасна.
Причина јас ќе одам преку нешто релативно едноставен
е, пак, затоа што можеш да видиш на интеракцијата помеѓу изгледот,
на изворниот код, како вас референца работи
а можеби и да се добие малку изложеност на тоа како Јава работи таму.
Ако јас всушност напишеш нешто овде, како ohai, а потоа кликнете на копчето,
тоа лансира нов дејност, и дека текст вели ohai.
Тоа е многу едноставна, но се надевам дека после тоа пример
на некој начин се види како оваа интеракција функционира, а сега дека неред на датотеки
на левата страна за сите овие проекти папки, се надевам дека знаеш каде да се погледне сега.
Ова е вашиот изворен код област.
>> Распоред е навистина само нешто што ќе се справи со се додека не вклучуваат слики
и цртежи или што, и вредности, кои ќе вклучуваат жици,
како што рековме, а потоа стилови е нешто што е еден вид на како CSS.
Решавање на тоа кога сакате, но додека не се чувствуваат удобно со додавање на екстра талент
на вашата апликација нема потреба да се грижите за тоа премногу.
Само за да заврши една друга работа што дефинитивно ќе сакаат да се вклучат-
претпоставувајќи дека сакате да го интегрираат кул карактеристики и се зачуваат некои дополнителни кодирање-
ќе биде да се вклучуваат 3-ти библиотеки.
Тука е малку Андроид момчето со Шерлок Холмс капа.
Ова е акција бар Шерлок библиотека,
што во основа значи дека акција бар те видов порано,
кој сега е стандард во Сладолед Сендвич и Желе Грав,
ако сакате да се донесе тој вид на корисничкото искуство за корисниците на постарите верзии
и се спаси од грижиш за тоа како корисникот ќе се движите
на постари верзии, кога тоа нешто не е таму можете да го вклучите оваа библиотека
и тогаш едноставно мора да се референтен наместо стандардната Андроид
библиотеки за акција бар, можете референца оваа поддршка библиотека.
>> Работи како Scoreloop, тоа е одлично ако си оди за да се вклучат во играта.
Тоа ви овозможува да додадете лидер одбори и постигнувања на игри.
Admob е начин на ставање реклами во вашите апликации
во случај да сакате да се направи малку пари надвор од неа.
Се разбира, постои Фејсбук и Твитер за интегрирање таму
ако сакате да ги споделат нешта лесно, и така натаму.
Dropbox, исто така, и Google Analytics е дека шема бара еден таму.
Тоа ќе биде многу важно, ако навистина сакате да се види кој е во интеракција
со вашиот стан или кој е, како тие комуницираат, и така натаму.
Гугл, по дифолт, што кажува многу на статистиката за тоа кој има инсталирано вашиот стан
и она телефони имаат, што оперативен систем верзии имаат.
Но, ако сакате да се види кој го користи на дневна основа и како тие го користат
тогаш ќе сакате да го вклучите некој вид на систем за следење како тоа.
>> Кога ќе бидете подготвени да го дистрибуирате вашето стан
Јас не треба да одат во која во премногу длабочина.
Кликнете на линкот тука, Google Play.
Се користи за да биде на пазарот Андроид.
Тие ребрендиран сè со Google игра,
па сега ќе ги достават до тоа.
Тоа е многу јасна.
Мора да содржи опис, некои слики од екранот.
Како што реков, нема процес на одобрување, како iOS.
И каде да одиме од тука?
Јас ви покажа навистина едноставен пример.
Се надевам дека ако се чини страшно едноставна
тогаш тоа е веројатно е добар знак.
Ако воопшто чувствував малку збунети или несигурни за токму она што го пишувате
тоа е, исто така, во ред, но од тука отидете на Google водичи.
Ова е одлично место за почеток.
Тоа ќе ти зборува преку она што тие го очекуваат во поглед на примената дизајн,
како корисниците нормално комуницирате со неа.
Тоа е многу повеќе слободна форма од iOS, би рекол,
кој се чини како маса ставови се-Не знам, тоа е нивниот леб и путер.
Сè што е табеларен преглед лизгање нагоре и надолу.
Со Андроид тие дефинитивно ги охрабри луѓето да се погледне во него од
цела група на различни перспективи.
>> Кога ќе вклучуваат развој на софтвер комплет во овој ADT
од стандардните имате целиот куп на примерок проекти во Андроид.
Токму тука, Андроид, Андроид примерок на проект.
Ако јас кликнете на тоа, тогаш можам да изберете една верзија за која на примерок проекти се применуваат.
Постојат еден куп на различни нешта тука.
Тоа почнува со акција бар компатибилност,
акцелерометар игра, бекап и обновување, Bluetooth, гест градител.
JetBoy е примерок игра тие ви даде, како што е LunarLander.
Постојат еден куп на примерок апликации тука,
и тие се сите наменети за различните аспекти на API Андроид,
а идејата е дека како што го направи вашето барање
не треба да дознаете сè за Андроид да се направи еден стан Андроид.
Вие само треба да се запознаат со делови кои сте всушност се случува да го користите.
Изгледа на овие примерок библиотеките.
Слободно можете да копирате и залепите кодот и Додадете неа.
Тоа е голема работа да се погледне во повеќе тешко код
и обидете се да го разбереш, која е, се разбира зошто во CS50
ние често ви даде големи количини на изворниот код.
Погледнеме некои од овие ако си оди за да се користи слични библиотеки
а потоа се применува до свој код.
И, се разбира, постојат упатства.
Пребарај за вежби.
Најдов многу добри онлајн, кој може да ви донесе до брзина
со она што фрагменти навистина се и како можете да ги користите.
>> Некои од овие нови дизајн работи, како и фрагменти,
што навистина не треба да бидат загрижени за освен ако не сте правење на
прилично голем во обем проект.
Тие се нешта што Google се обидува да фаза внатре
Stackoverflow е, се разбира вашиот пријател.
Се надевам дека ќе се продаваат малку на Андроид,
реализација на тоа е многу повеќе лесно да се пријде во смисла на само кодирање јазик.
Јава е јас би рекол многу полесно да се разбере отколку Objective-C.
Андроид расте мислам многу повеќе отколку iOS.
Мислам, податоците е таму, настрана од она што мислам.
Тоа се случува да биде околу некое време,
и тие се неколку години зад себе во однос на нивниот дизајн циклуси,
па тоа е вид на разбирливо дека тие се уште работат преку некои од овие
конзистентност прашања, како оваа акција бар е нова работа за нив, сепак,
вид на создавање на слични корисничко искуство низ сите на нивните апликации.
Се надевам дека ќе може да оди напред сега и ќе отвори Затемнувањето
и направи свој Андроид апликации.
>> Дали некој има било какви прашања, пред да заврши за ништо?
Можам да ви кажам дека одговорот е 42.
Па, среќен кодирање секого, и со среќа.
[CS50.TV]