[Powered by Google Translate] [Seminario] [Apps Android (agora con jujuba!)]
[Jordan Jozwiak] [Harvard University]
[É dicir CS50.] [CS50.TV]
>> Hola a todos, e ben benvida ao Apps Android (agora con jujuba!) Seminario.
Chama-se agora con Jelly Beans, claro, porque
a última versión do sistema operativo chámase Jelly Bean.
Cando eu falei sobre Android o ano pasado e fixo iso basicamente mesmo seminario
Estaba presentando os patróns de deseño e opcións estilísticas a Gingerbread,
a pesar de Ice Cream Sandwich saíra na época,
e iso é algo que imos falar de ir para adiante un pouco.
Android, por suposto, ten algúns problemas coa fragmentación,
ao último sistema operativo de Google é normalmente
realmente non vai facer común entre os usuarios para potencialmente ata un ano, por desgraza.
>> Pero desconsiderando iso, imos falar de moitas razóns polas que
Android é moito mellor que o IOS.
Ok, imos falar de Android vs IOS,
algúns paradigmas de deseño, como vai definir en só unha foto,
ea gran diferenza entre este eo ano pasado é que eu só quero
zoom a través de algunhas cousas conceptuais que traballan con
o sistema operativo e, a continuación, poñerse en un exemplo moi básico.
De feito, só o exemplo que Google describe para a construción da súa primeira aplicación,
e nós imos pasar por iso xuntos e só describir.
>> Sei que moitos de vostedes teñen só codificado en C, Java xa será
unha perspectiva diferente, e deste xeito vai obter os seus pés húmidos
e sentirse un pouco máis cómodo con el, esperanzas.
Un resumo rápido, Android vs IOS.
En Android non hai esa taxa creador único de US $ 25,
nada desa cousa de $ 100 por ano.
Non hai restricións, o que significa que se eu queira enviar unha aplicación,
Acaba de envialo, e non hai ningún proceso de aprobación como existe para IOS.
Comeza a desenvolverse con Java usando Eclipse,
que é multiplataforma, polo que non importa se ten un Mac,
Windows ou unha máquina Linux.
Claro que, con IOS tes que usar o Xcode nun Mac,
e Android é usado por moitas máis persoas,
por iso, se quere que a súa aplicación para ter algún tipo de visibilidade, ou que
facer un pouco de diñeiro a partir de anuncios
vostede pode ser máis susceptibles de beneficiarse de Android.
>> E unha cousa que sempre foi coñecido sobre Android
é a cantidade extrema de personalización, mentres que o IOS é moi fixo nos seus camiños
para que se poidan manter a seguridade eo control sobre todos os aspectos pouco
do proxecto dentro do seu sistema operativo e as aplicacións individuais.
Android é a forma moi libre, e non hai tantas posibilidades máis.
Ok, algúns paradigmas de proxecto.
Teña en conta aquí como iOS ten tabletas e iPhones e iPod Touches
eles teñen que soportar, por exemplo, como unha ducia de dispositivos, se quere apoiar
cousas históricas tamén.
Con Android ten que soportar centos de dispositivos,
polo que hai algunhas cousas que Google vén tentando aplicar
para facer o usuario probar un pouco máis consistente,
pero nós tamén imos falar sobre como isto significa que hai cuestións de fragmentación
que sempre ten que ser consciente de apoio.
Fragmentación significa que hai moitos sistemas operativos distintos,
moitos teléfonos diferentes con hardware diferente rodando Android, todo ao mesmo tempo,
de xeito que este gráfico aquí remonta hai preto de 6 meses.
Si, 6 meses, e podes ver como a banda máis escura
no fondo é Jelly Bean, que saíu durante o verán,
e podes ver agora, probablemente, preto de 2% dos teléfonos telo.
>> Ice Cream Sandwich foi lanzado máis de un ano,
e un cuarto dos teléfonos telo.
Hai aínda unha grande cantidade de teléfonos que están a usar a versión do SO de anos.
Algo que Google intentou facer para facer a experiencia do usuario
moito máis coherente entre aplicacións comeza con Honeycomb,
que é a versión tablet, entón Ice Cream Sandwich e Jelly Bean,
eles están realmente tentando salientar o uso desta barra de acción,
que é o que se pode ver aquí enriba,
todo aquí, incluíndo este botón opcións pouco.
É a opción de deseño.
Agora, cada vez que ve os tres puntos significa premer neste,
e haberá un menú desplegable, que ten algún tipo de configuración.
Isto só aparece porque prema no botón ao final.
Isto é algo que eles están tentando usar para facer aplicacións algo máis consistente
a través da tarxeta e así o usuario ten un mellor sentido de experiencia uniforme.
>> Ok, entón no caso de non ter feito isto xa, ou se está a asistir na casa
entón podes seguir estes pasos para configurar o ambiente de codificación.
Vai implicar indo ao sitio.
Pode instalar Google Android SDK
e seguir algunhas descricións alí.
Dinlle todo.
Teñen de instalar o SDK, descarga de Eclipse versión Classic,
aínda que, por suposto, que está programando en Java.
Eles recomendan un presente, e entón este ADT, as ferramentas de desenvolvemento de Android,
é un plugin que se instala en Eclipse que permite
ter unha experiencia moito máis sinxelo con Android dentro do Eclipse.
El lle vai dar algunhas interfaces gráficas de usuario
para proxectar os puntos de vista, e el vai che dar máis apoio
ea capacidade de lanzar co emulador e todo este tipo de cousas.
Framework de aplicación.
>> Quero falar de como os proxectos dentro Android son estruturados,
e despois imos entrar nun exemplo rápido, e espera que
podes facer preguntas en calquera momento e sentirse cómodo ata o final da mesma.
Temos algún xerga primeiro.
Unha actividade é como a pantalla que se ve cando se inicia unha aplicación.
Toda a experiencia é a actividade en si,
así que podería pensar niso como unha pantalla ou un punto de vista,
pero en realidade é xunto a el o código fonte.
Nós aínda chamar a parte de interfaz real do que un punto de vista.
É unha especie de como como en pset 7 tivemos o controlador e, a continuación, a vista.
A actividade é máis ou menos o controlador
ea vista é o que estamos facendo en termos de XML
que está asociada coa dita actividade.
Rochas son algo que é aplicado en Ice Cream Sandwich vai para adiante.
É só unha idea de tomar partes de vista ou a actividade
e dividíndose os en áreas separadas, para que poidamos
facer o código máis útil para estes moitos dispositivos diferentes
que temos que apoiar, e é só unha forma de tratar
tamén o factor máis código.
Servizos son cousas de fondo como a reprodución de música ou direccións de navegación potencialmente.
Os provedores de contido, estes son APIs dentro do sistema operativo
que permiten acceder a datos compartidos, tales como información de contacto,
e logo, a intención é algo que vai empregar cando queremos lanzar
unha nova actividade da nosa actividade actual.
>> Ola Android, este vai ser un proxecto que imos falar.
Vou realmente facelo por vostede, e entón nós imos facer unha cousa en que premer no botón
con algún texto e iniciar unha nova actividade.
Moi sinxelo, pero quero pasar
que vai entrar nun proxecto como este.
Cando fai o novo proxecto verá dentro Eclipse
hai este proxecto chamado Ola Android.
Despois, hai unha morea de carpetas aquí.
O que está realmente preocupado son o cartafol de orixe,
o cartafol de recursos, os res, e en certa medida o cartafol libs para as bibliotecas.
E só por iso estamos na mesma páxina co
Se fose crear un novo proxecto,
pode facelo aquí, entón se eu queira chamalo HelloAndroid,
e logo, el automaticamente fai unha morea de información para nós.
O nome do paquete é suposta ser un identificador único
que normalmente sería asociado co sitio web, se tivese un.
>> Por exemplo, eu vou chamar este net.cs50.helloandroid.
E eu xa fixen este proxecto unha vez.
Ok, me desculpe. Imos chamalo HelloCS50.
E entón el vai preguntar cousas como o tipo de icona que queremos facer.
Isto todo é debido á interface de Android Developer Tools,
o plugin que nós engadimos a Eclipse, para que poidamos escoller cousas como
a icona que queremos, e que entraría en que profundidade se quere.
Pero ao final, só tes que facer o proxecto,
e todo o que aparece aquí.
Como mostre na outra pantalla,
temos o cartafol de orixe, e eu vou falar sobre o que todo isto significa que en breve,
pero podes ver que inmediatamente nos leva á pantalla HelloCS50.
Hai algúns botóns máis aquí para engadir texto e texto esquemas de campo.
É unha especie de como Xcode, pero por desgraza non é tan aerodinámico.
Pero os clips será o seu amigo e ADT en particular para facelo.
>> Vale, o cartafol de orixe é o lugar onde
os ficheiros Java son realizadas, e iso é realmente o lanzamento do seu programa.
É basicamente como os controladores.
O cartafol de recursos ou a res é o lugar onde nós imos manter esquemas de pantalla,
imaxes, sons, texto, animación e todo máis, libs obviamente bibliotecas.
E o manifesto, é a forma que o sistema Android sabe
como interactuar co seu programa.
Di el sobre permisos e que actividades serán realmente executados.
É toda a información esencial que é necesario para executar a aplicación.
O cartafol de orixe é a expandir-lo como se pode ver aquí.
E un exemplo de que un código ficaría, este é o código por defecto.
Como nós o chamamos, MainActivity.
Por defecto, temos onCreate, que é unha función que se chama cando as cargas esta actividade,
así que quere chamar onCreate (savedInstanceState).
Isto pode restaurar os bits de información
no caso de que a aplicación foi detido.
>> Hai unha actividade gráfico ciclo de vida que se pode ollar
cando comeza un pouco máis en profundidade nel,
pero o máis importante liña de código existe esta función setContentView
que pode cargar o arquivo de recurso para o esquema.
Entón, o que onCreate aquí é basicamente facer é que está dicindo
cando crear esta actividade quero cargar este esquema.
E imos falar sobre o que este esquema é nun segundo.
Se tivésemos que lanzar iso aquí parece exactamente como este,
e, por defecto, porque temos Eclipse ADT a facer iso e facelo por nós
iso é todo código cliché que é creado por nós,
e podemos seguir adiante e cambiar as cousas que nos gusta.
O cartafol de recursos, como dixen, este é o lugar onde temos todo esquemas,
drawables en termos de calquera tipo de imaxes-
son chamados Drawables-e logo, arquivos de son, menús.
É un xeito de unha chea de XML nun bo fashion clasificados.
Como verás, hai. Hdpi, LDPI, MDPI e carpetas xhdpi aos drawables.
Estes son diferentes densidades de pantalla, tan alta densidad de píxeles por polgada,
baixa densidade, de media densidade, densidade moi alta.
>> É dicir, unha vez máis, para que poidamos soportar todos eses distintos dispositivos,
e, idealmente, terá imaxes diferentes para cada resolución diferente.
Esquemas son onde se inclúen as diferentes esquemas que serán utilizados en actividades diferentes.
Tamén figurarán esquemas para fragmentos,
o que significa, basicamente, actividades parciais.
Se queres facer algo legal como sempre que xira o teléfono
quere ter un esquema diferente, pode facer esquema paisaxe como un cartafol diferente,
Android e automaticamente ten unha morea desas regras dentro do cartafol de recursos,
así que vai saber de ollar para carpetas diferentes con base na configuración actual do teléfono,
que tipo de hardware que está a usar.
Igualmente, este valores v11 aquí e os valores-v14
e os valores por defecto esta carpeta e para-
así, os valores de, por si só, este será os valores por defecto en todas as versións do sistema operativo.
Por outra banda, e v11 v14 coincide con Honeycomb
e Ice Cream Sandwich, respectivamente.
De novo, estas son formas que, dentro desas carpetas son diferentes cadeas
e estilos, para que poida personalizar o aspecto do seu programa
ou potencialmente, incluso a súa funcionalidade, a pesar de que probablemente sería unha mala idea,
dependendo da versión do sistema operativo.
>> E eu falamos sobre todo isto aquí.
De novo, resgatáveis, materias, esquema, valores.
Os estándares, si entramos en Ola Android ou Ola CS50 agora
se ve así.
El vai dicir Ola mundo.
Como podes ver aquí co texto Android
o texto para este punto de vista do texto, que é basicamente só unha etiqueta,
é o que chamamos en iOS.
Ten esa notación divertido @ string / hello_world.
Isto é así que podemos, imos tratar de extraer todas as cordas,
todas as cadeas codificadas en Android nunha carpeta separada,
que pasa a ser en values.strings.
Mira aquí, podemos ver que temos unha serie hard-Coded gardado aquí
en Ola mundo, e chámase Ola mundo, e iso é unha especie de
decisión de proxecto común en varias plataformas que desexa-
cordas son o tipo de cousas que queremos ser potencialmente capaz de cambiar.
Non queremos controlar F no noso ficheiro de código fonte no noso XML.
Queremos ser capaces de cambiar isto sempre que temos a oportunidade.
>> Este ficheiro XML, strings.xml, é un xeito de extraer
cadeas codificadas que serían dos nosos recursos de deseño
ou no noso código fonte.
O manifesto é onde gardamos a información esencial sobre a aplicación.
Inclúe o nome do paquete. Isto ten que ser un identificador único.
A diferenza da App Store para iOS os nomes das aplicacións
Non ten que ser único, e pode de feito cambiar o nome do seu programa
tras envialo, entón se eu comezar con Angry Birds,
e entón eu facer unha actualización, e eu non quero lanzar unha nova versión
Creo que eu podería chamalo de Angry Birds 2, mentres eu estou no mesmo ciclo de lanzamento.
Sería só mostrar-se como unha actualización.
O único que ten que ser único é este o nome do paquete,
que moita xente non van ver.
Ben, só vería se está mirando para o código fonte ou se existe algún tipo de erro.
Os compoñentes inclúen actividades, polo que temos de declarar
calquera tipo de actividade que usan.
Este é un permiso tipo de cousas.
>> Como Android non ten ese proceso de aplicación rigorosa
para a presentación de aplicacións en vez diso, simplemente todo baseado fóra de permisos
e declarando cousas no manifesto.
A versión SDK tamén é importante.
Podemos definir uso como SDK versión mínima cousa.
Obviamente, quere crear un código
e proxecto para os sistemas operativos máis recentes.
Quizais non sexa o máis novo, quizais non Jelly Bean.
Quizais queira proxectar sobre todo para Ice Cream Sandwich,
aínda que sexan practicamente a mesma en canto a decisións de proxecto
e as bibliotecas e APIs reais.
Pero en vez de ter persoas
do orixinal Android versión Donut como camiño de volta cando,
que aínda acontecen estar a usar que tentar facer a descarga da aplicación e, a continuación, dicir
non funciona no meu teléfono, pode definir a versión mínima
e que sexa Gingerbread ou Ice Cream Sandwich
ou o que sente Enviando cómodo.
E este é un exemplo do Manifesto. Podemos ollar para o real nun bit.
>> Ok, imos seguir adiante co demo agora.
Este é o demo, se Google Android construír a súa primeira aplicación ou algo parecido.
Nós imos pasar por todo o que está a suceder alí dentro,
e moito, só para unha referencia que aquí sabe Java en calquera medida?
Ok, entón Java é unha nova linguaxe de codificación para a maioría das persoas saíndo do CS50.
Resumidamente, para ir unha vez máis o que di aquí,
o que queremos facer é, en vez de axustar esta aplicación Ola Mundo
que todo o que fai é se lanza e di Ola mundo
e el di Ola CS50 na parte superior, porque ese é o nome da actividade
imos tratar de facer un campo de texto e un botón
para que, cando premer este botón levará o texto
do campo de texto e comezar unha nova actividade, e só pode dicir
Sexa o que sexa que o texto di na actividade, e iso é relativamente simple.
Non é moi interesante. Non quere liberar calquera aplicación como esta.
Pero demostra algunhas cousas importantes do proxecto.
>> Nós imos ter que interactuar co manifesto, cos ficheiros de esquema,
co código fonte, e podes ver como iniciar unha actividade da outra.
Imos comezar co esquema para a nosa primeira actividade,
que sei que é unha especie de pequeno,
pero como podes ver, agora, todo isto é que ten o noso logotipo que creamos,
o nome da actividade, e el di Ola mundo no centro.
Pola contra, eu estou indo primeiro para facelo en un esquema lineal,
un esquema familiar, e estas son todas as cousas
pode mirar para arriba e paga a pena ir máis nalgún momento, en termos dos esquemas.
É moi parecido a HTML.
Dixemos que non é realmente paga a pena coñecer en termos dun sentido programático,
pero hai tantos esquemas diferentes que pode controlar,
e é como CSS en termos de estilos.
>> Hai moita cousa a suceder só en termos de estética aquí,
E si, paga a pena aprender, pero é o tipo de cousas que ten que mirar para arriba
como vai e sente que precisa de algo novo.
Podo sacar proveito dalgunhas das ferramentas ADT aquí, polo menos para comezar con.
Vou facer un campo de texto, e eu vou facer un botón.
Pon-os un ao lado do outro.
Xa redimensionar adecuadamente.
Sentímolo, unha vez máis, volvendo á diferenza entre o esquema lineal e disposición relativa,
un esquema lineal dá un pouco máis de funcionalidade
en termos de recheo de espazo e asegurarse
Posicionamo cousas horizontal ou verticalmente.
A gran diferenza entre un esquema lineal e un esquema respecto
é a relativa disposición posicións todo en relación a outros puntos de vista,
eo único bo disto é que leva menos tempo para deseñar
xa que o sistema operativo mira a todo o código e di que iso vai
en relación a este aquí, aquí.
Isto significa que fai menos medidas do que unha morea de esquemas lineais noutras citas,
que eu tería que facer se eu quería que as cousas van vertical aquí.
>> Eu xa teño algunhas cousas suceder na horizontal, así que necesitará de un esquema lineal diferente
para inserir-las en vertical, pero se eu estivese facendo un esquema parente eu podería dicir
manter esta á dereita, é dicir cara á dereita e estas cousas continuación.
Pero por que eu quero que enchen agora eu vou usar un esquema lineal,
e pode velo xa fai unha morea desas cousas para nós.
Todas as vistas que ter unha propiedade de ancho e alto,
e iso pasa a ter un peso de 1, e esta ten un peso de 1
de xeito que enche a totalidade do espazo.
Pero o ancho ea altura son as máis importantes.
Este campo ID aquí non é importante no esquema real
a non ser que estamos usando un esquema relativo e dicir que podemos referenciar
unha vista en posición de referencia para o outro.
Se tivésemos un esquema respecto poderiamos dicir esta posición por baixo deste
ou por riba deste ID, pero este ID será importante
cando estamos a usalo no noso código, porque podemos referenciar
estes puntos de vista individuais deste xeito.
>> E entón podes ver o requestFocus etiqueta, que é algo que probablemente viu en pset 7.
Houbo unha etiqueta enfoque automático ou algo nese sentido a un dos campos.
E unha cousa, por suposto, non podemos facer como HTML,
e teña en conta unha das cousas agradables sobre ADT é que autocompletes aquí.
Quizais non tan ben como o fixo no Xcode, pero el fai, con todo,
e poderiamos dicir información e, a continuación, darlle unha especie de corda
como escribir unha mensaxe,
e se eu darlle un momento, tamén en conta que eu teño un pequeno erro aquí
dicindo que debemos usar un recurso de cadea para iso,
entón se eu deixar lo facer un do traballo duro para min
Podo seleccionar esa cadea, facer refrator Android e extracto de corda Android.
Podo darlle ese nome, escriba unha mensaxe,
eo que fixo agora é substituído esa secuencia hard-Coded
cunha referencia á secuencia o ficheiro xml de cadea.,
o que significa que agora é aquí.
>> E sei que parece un pouco máis de traballo trivial e como, neste punto,
pero cando tes unha morea de cousas, unha morea de cordas,
que é realmente importante, especialmente para a localización
porque, como mencionei anteriormente, Android é un sistema operativo moi utilizado no mundo
que pode simplemente facer-en valores ou valores sp
ou algo para o inglés ou español ou outras linguas.
E entón probablemente non ter esta experiencia aínda
xa que non fixo moito JavaScript en termos de programación web,
pero tamén podemos facer neste campo chamado onclick do botón,
e esta é unha forma de facer referencia dentro do noso esquema
que queremos que unha determinada función a ser chamado no noso código fonte.
Vou chamar esa sendMessage,
e, a fin de facer este traballo o que significa na actividade principal aquí
Vou ter que crear unha función que é público
de xeito que se pode acceder polo esquema.
É branco porque simplemente non quere que volte nada.
Imos chamar-lle sendMessage, e ten unha visión,
, Que é un tipo de contexto que pode ancorar a rede
este punto de vista individual cando estamos executando-o.
>> E eu non sei se notou, ben, non teña notado,
pero neste momento aquí
este punto de vista é un tipo que aínda non foi incluído,
e claro, todo o mundo sabe do CS50 sobre non incluíndo os tipos.
A cousa agradable sobre como Eclipse IDE é que
se esquecer de incluír un tipo que vai subliñar cun pouco de vermello rabiscada
e logo, darlle a posibilidade de importar a vista.
Unha forma rápida de facelo é control de cambio O, e vai importar
todos os ficheiros que necesita.
Agora que temos esa función sendMessage,
que enviará mensaxe do MainActivity para unha nova actividade,
teremos que usar a intención de lanzar a nova actividade desde un presente,
entón probablemente imos querer crear unha constante global ou tamén especialmente unha constante pública
que vai axudarnos a saber como imos facer referencia a cadea
porque cando creamos unha intención que non estamos só chamando unha nova actividade,
pero tamén podemos darlle un conxunto de información.
Un paquete é en realidade o termo que usa Android,
e é unha forma de dicir darlle datos adicionais, que non pode ser de un tipo de datos moi sofisticado,
pero podemos definitivamente incluír booleanos ou cordas ou ints.
Este tipo de cousas.
>> Sinto-se libre para preguntar sobre calquera destas eliminatorias aquí,
pública final, estático.
Público é o importante.
Isto significa que podemos acceder a esta variable doutros ficheiros de código fonte
por exemplo, cando creamos unha nova actividade.
Podemos referenciar a cadea dentro deste ficheiro.
Se é privado, isto significa que está limitado a este ficheiro individual aquí.
Pero nós imos chamar iso de algo así como mensaxe extra.
Agora nós fixemos esta función e, se é premer o botón, esta función será chamada.
Pero nós non fixemos nada, obviamente, coa función.
O que queremos facer agora é crear unha nova actividade,
a actividade que vai ser realmente lanzado.
En Eclipse, podemos dicir, a actividade Android novo, actividade en branco.
Podemos darlle un nome.
Imos chamalo de nosa actividade resultado.
E entón este campo pai xerárquico é unha forma de especificar
forma as actividades están relacionados uns cos outros.
Porque este iniciarase a partir da outra actividade
debemos indicar que el ten a principal actividade pai.
>> E eu podería premendo no seguinte campo alí, o que nos diría
algúns campos opcionais que tamén se inclúen,
pero a cousa agradable sobre ADT, unha vez máis, é que se eu rodar aquí
o Manifesto lembre que todo iso realmente foi incluído por defecto
cando creou o proxecto,
e agora xa usan este crear unha nova actividade en lugar de só
engadindo noso propio ficheiro de clase porque nós fomos a través da súa interface gráfica para facelo
xa engadido todo isto ao manifesto para nós,
o que só significa que agora o sistema operativo non vai reclamar
cando intentamos publicar esta actividade.
E tamén, claro, deulle unha etiqueta, que tamén aparece en cadeas.
El fai unha morea de cousas no back-end para nós.
En calquera caso, agora que temos esta actividade resultado, así como,
o ficheiro de código fonte real no cartafol de orixe,
e pode ver a abordar brevemente esta-
porque dixo iso sobre a nai xerárquica
deu ese android.r.ide.home campo neste onOption cousa seleccionado.
>> O que isto está basicamente dicindo é que hai un botón de menú agora
que na parte superior esquerda da pantalla
se eu atrás para o PowerPoint na que falou por primeira vez sobre a barra de acción
por mor do pai xerárquica agora hai unha pequena frecha de volta aquí
e iso é previsión por iso, debemos ser capaces de, despois de executar esta app-
atrás, e é un xeito de gardar-nos un pouco de código alí.
Agora, dentro deste, así, parece estar reclamando sobre iso por un momento.
Imos comentar isto.
Agora, a fin de que realmente interactuar con estas dúas actividades,
temos que crear unha intención que inclúe todos estes datos.
En sendMessage agora vou cruzar con algúns anacos de código
e explicar que como eu ir.
Unha intención, como dixen, é un xeito de publicar unha actividade doutro.
Intención é o tipo. Estamos creando un minhaIntencao variable.
>> E iso é realmente un obxecto, é por iso que temos que chamar de novo.
É común o uso de Java alí, o que pode levar un pouco de tempo para se acostumar.
Isto significa que estamos usando a actividade ou o MainActivity clase,
ea intención dese xeito ten a actividade que vai de
ea actividade que vai, que chamamos ResultActivity,
e que é a súa propia clase.
Incluír iso.
E entón, como eu mencionen antes, nós demos ese ID ao campo de texto de edición
ea visualización de texto, polo que, a fin de capturar programaticamente
o texto que hai no EDITTEXT
usan esta función chamada findViewById,
que é semellante a algo que vai usar ao tentar obter os campos do DOM.
Quizais David fala sobre iso na charla.
Pero é só unha forma de obter os-é por iso que marcar esas cousas con estes campos.
Id.editText1.
Xa está autocompleting para min alí.
>> E entón imos tamén incluírse este EDITTEXT agora que temos o campo
dentro do noso programa, o único que fixo foi basicamente findViewById
Podes pensar niso como dar unha referencia a este EDITTEXT.
Agora queremos obter a secuencia ou a mensaxe
dentro dese EDITTEXT que podemos facer mediante o
podería pensar EDITTEXT como un struct-
chamamos iso dun obxecto en Java con unha morea de diferentes métodos
ou campos e atributos vinculados a el.
Cando digo EDITTEXT. dáme a oportunidade de acceso a
un método como gettext, que recibirá o texto actual
en que EDITTEXT e logo converter ese explicitamente
a unha corda, e nós gardadas a mensaxe.
Agora nós realmente queremos facer algo con esa intención que creamos hai uns momentos.
Vou poñer extras, como se chama en intención,
que, unha vez máis, como dixen antes, esta é unha forma de crear o paquete
con unha morea de datos.
Mensaxe adicional é a nosa marca, de xeito que sabemos o que estamos a aforrar este abaixo,
e entón eu estou incluíndo a mensaxe.
>> E entón podemos realmente comezar a actividade, dándolle o minhaIntencao parámetro.
E iso vai realmente comezar a actividade, por iso dende que eu actualizado para o Windows 8
pode haber algúns erros que aparecen momentáneamente, pero tentao ignore them.
E este é o emulador Android.
Esperemos que o código vai realmente aparecer nun momento.
Unha vez máis, ignorando todas esas pequenas cousas.
Pero o emulador Android podes emular calquera versión do sistema operativo
desde os primeiros queridos, Donut, Gingerbread.
Este é Jelly Bean 4.1.
Pero como se pode ver agora, iso é algo que fixemos.
Isto ten a MainActivity, o EDITTEXT, o botón.
Podo escribir algo aquí, pero o que estamos perdendo neste momento?
Fixemos a campo no MainActivity que enviará a mensaxe
a outra actividade, pero neste momento
non ter feito nada na outra actividade, de xeito que non vai recibir nada.
Imos rematar esta parte antes de seguir adiante.
>> Esta actividade de resultado, o que cómpre facer é o que precisa facer é precisaremos-
Tamén podemos referenciar intención nesta actividade,
polo que temos de captar a intención, que é moi sinxelo.
É unha función incluída na clase de actividade,
para que poidamos dicir "Get a mensaxe da intención".
"Intención minhaIntencao = getIntent".
E iso vai darnos-agora minhaIntencao é un obxecto,
que é unha referencia á intención que nos levou a esta actividade.
MainActivity chama e dá a información adicional para producir actividade.
Actividade resultado agora mira para a intención que levou aquí,
e podemos acceder a mensaxe de que creamos no outro,
getStringExtra, e iso vai autocomplete para min.
E entón lembre, do xeito que marcou aquel anaco de datos
era, dándolle este campo aquí, esta cadea pública,
que é a etiqueta para a cadea que realmente incluídos.
>> Se eu digo MainActivity.Extra_Message
é logo alí, e isto é máis ou menos como o nome do parámetro
cando pasamos código do controlador para o modelo,
cando nós diriamos Título frecha algo.
É o mesmo tipo de idea alí.
Agora, lembre-se diso.
Tivemos tamén esta auto creado ou auto código xerado
para a actividade resultado, que inclúe o punto de vista de texto no medio
que di: Ola mundo.
Que podería facer que maior.
Imos facelo primeiro.
Poderiamos facelo 40 densidade píxeles independentes.
A ver, iso é super enorme. Isto vai estar ben.
E, a continuación, a fin de referenciar este punto de vista de texto individuais dentro do noso código
teremos que dar a el unha identificación,
e, a fin de facer o que dicimos @ + id, o que significa que atribuílo la ID.
Se nós só dixemos @ id sería asumir que estamos facendo referencia a un ID que xa existe,
e imos chamar esa nosa resultTextView.
E noten que, en XML, non hai necesidade de punto e coma ou algo.
Todo está dentro desas etiquetas.
É moi semellante ao HTML nunha serie de sentidos.
>> Leva un pouco de tempo para acostumar, pero finalmente vai se sentir moi cómodo con el.
Imos actualizar o texto para a nosa visión de texto resultado,
e como fixemos cando estabamos a recibir ese campo de edición de texto na nosa outra actividade
en MainActivity Aquí imos tamén do mesmo xeito-
imos atopar o punto de vista polo ID.
E N, en caso de que non mencionen iso antes, é a referencia para a nosa carpeta de recursos,
e logo, ID é unha referencia para todo na carpeta de recursos, as IDs,
e resultTextView.
E así como antes, resultTextView é un obxecto,
o que significa que ten todas estas propiedades asociados.
Cando usamos gettext para a edición de texto para este campo de texto ou a visualización de texto
podemos realmente usar setText,
e entón xa atopou a mensaxe da intención,
para que eu poida dicir a mensaxe, e iso vai realmente facer que a mensaxe.
>> É un momento para lanzar, a continuación, podemos ver se é ou non cae,
pero calquera dúbida sobre este proceso alí mesmo, este tipo de interacción?
De moitas formas, é simple.
A razón pola que eu estou pasando por algo relativamente sinxelo
é, de novo, xa que comeza a ver a interacción entre o deseño,
o código fonte, como é que as cousas referencia
e quizais ter un pouco de exposición á forma como Java traballa alí.
Se realmente escribir algo aquí, como ohai, e entón prema o botón,
lanza unha nova actividade, e que a visión texto di ohai.
Isto é moi sinxelo, pero espero que despois diso exemplo
vostede medio que ver como esta interacción funciona, e agora que a desorde de arquivos
na parte esquerda de todas esas carpetas do proxecto, esperamos que vostede sabe onde mirar agora.
Esta é a súa área de código fonte.
>> Esquema é realmente o único que enfrontará ata incluír imaxes
e os drawables ou calquera outra cousa, e os valores, que inclúen cordas,
como xa mencionamos, e logo, estilos é algo que é unha especie de como CSS.
Aborda-la en calquera momento, pero ata que se sinta cómodo coa adición de toque extra
para a súa aplicación, non hai necesidade de se preocupar moito con iso.
Só pechar outra cousa que certamente vai querer incluír-
supoñendo que quere integrar recursos legais e aforrar algúns extras codificación-
sería incluír bibliotecas terceiro partido.
Aquí é a cara Android pouco co sombreiro de Sherlock Holmes.
Esta é unha barra de acción Sherlock biblioteca,
o que significa, basicamente, que barra de acción que vimos,
que agora é estándar en Ice Cream Sandwich e Jelly Bean,
Se quere traer este tipo de experiencia do usuario para os usuarios en versións antigas
e salvar-se de se preocupar coa forma na que o usuario vai navegar
en versións máis antigas cando a cousa non queda aí pode incluír esta biblioteca
e entón só ten que referencia no canto de Android por defecto
bibliotecas á barra de acción, fai referencia a esta biblioteca de apoio.
>> Cousas como Scoreloop, é óptimo se está indo a incluír un xogo.
Permite que engade cadros de líderes e conquistas para videoxogos.
A AdMob é un xeito de poñer anuncios en súas aplicacións
no caso de querer facer un pouco de diñeiro con iso.
Por suposto, existe Facebook e Twitter para integrar alí
se quere compartir as cousas con facilidade, etcétera.
Dropbox, do mesmo xeito, e Google Analytics é que a gráfica ollar alí.
Isto vai ser moi importante se realmente quere ver quen está interactuando
coa súa aplicación ou quen é, como interactúan, etcétera.
Google, por defecto, dille unha morea de estatísticas que teña instalado o programa
e que os teléfonos que teñen, as versións de sistemas operativos que eles teñen.
Pero se quere ver quen está a usar-o nunha base diaria e como usalo
entón vai querer incluír algún tipo de sistema de seguimento así.
>> Cando estea listo para distribuír a súa aplicación
Eu non teño de ir a que en moita profundidade.
Prema na ligazón aquí, Google Play.
Ela adoitaba ser o mercado Android.
Eles rebatizada todo con Google Play,
entón agora se somete a iso.
É moi sinxelo.
Ten que incluír unha descrición, algunhas capturas de pantalla.
Como dixen, non hai ningún proceso de aprobación como iOS.
E onde ir dende aquí?
Eu mostre-lle un exemplo moi sinxelo.
Esperemos que se parece terriblemente simple
entón isto pode ser un bo sinal.
Se en todo me sentín un pouco confuso ou inseguro sobre exactamente o que eu estaba escribindo
que tamén é bo, pero a partir de aquí ir a Google Guide.
Este é un gran lugar para comezar.
El vai falar con vostede a través do que esperan en termos de deseño da aplicación,
como os usuarios normalmente interactúan con ela.
É moito máis de forma libre que IOS, eu diría,
parecer vistas da táboa son-Non sei, iso é o seu pan e manteiga.
Todo é unha exhibición de táboa deslizando cara arriba e para abaixo.
Con Android eles definitivamente incentivar a xente a ollar para el dende
unha morea de diferentes perspectivas.
>> Cando inclúe o Kit de desenvolvemento de software neste ADT
Por defecto, ten unha morea de exemplos de proxectos en Android.
Aquí, Android, Android Sample Project.
Se eu premer sobre iso, entón podo escoller a versión para a que a mostra de proxectos de aplicar.
Hai unha morea de cousas distintas aquí.
Ela comeza con compatibilidade barra de acción,
xogo acelerómetro, copia de seguridade e restauración, Bluetooth, constructor xesto.
Jetboy é un xogo de mostra que lle dan, como é LunarLander.
Hai unha morea de programas de exemplo aquí,
e todos eles están destinados a distintos aspectos da API de Android,
ea idea é que, como fai a súa solicitude
non necesita saber todo sobre Android para facer un app Android.
Só ten que aprender sobre as partes que está realmente vai utilizar.
Olle para estas bibliotecas de samples.
Sinto-se a liberdade de copiar e pegar o código e reaplicá lo.
É unha gran cousa para ollar o código máis difícil
e tratar de comprende-lo, o que é, por suposto, xa que en CS50
que moitas veces danlle grandes cantidades de código fonte.
Véxanse algúns destes se está indo a usar bibliotecas semellantes
e, a continuación, aplicala lo no seu propio código.
E, por suposto, hai tutoriais.
Buscar tutoriais.
Eu atopei unha morea de bos en liña que pode leva-lo até a velocidade
que fragmentos realmente son e como pode usalos.
>> Algunhas destas novas cousas de deseño, como fragmentos,
realmente non ten que estar preocupado a menos que está facendo unha
moi grande no ámbito do proxecto.
Son cousas que Google está intentando borrar dentro
Stackoverflow é, por suposto, o seu amigo.
Espero que eu vendi-lle un pouco sobre Android,
entendendo que é moito máis fácil de achegarse en termos de só a linguaxe de codificación.
Java é que eu diría moito máis doado de entender que Objective-C.
Android está crecendo Penso que moito máis do que o IOS.
É dicir, os datos están aí tamén, alén do que eu penso.
Será en torno a un tempo,
e son poucos anos en termos de seus ciclos de proxecto,
polo que é unha especie de comprensible que eles aínda están a traballar a través de algúns destes
cuestións de consistencia, como esta barra de acción é unha cousa nova para eles, aínda así,
tipo de creación de experiencia de usuario similar en todos os seus apps.
Espero que pode ir adiante agora e abrir Eclipse
e facer as súas propias aplicacións Android.
>> Alguén ten algunha pregunta antes de pechar con algo?
Podo dicir que a resposta é 42.
Ben, todo o mundo feliz, e boa sorte codificación.
[CS50.TV]