1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Séminaire] [Applications Android (maintenant avec Jelly Beans!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jozwiak] [Université de Harvard] 3 00:00:04,210 --> 00:00:06,780 [C'est CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Bonjour à tous, et bienvenue à la Applications Android (maintenant avec Jelly Beans!) __gVirt_NP_NN_NNPS<__ Séminaire. 5 00:00:11,600 --> 00:00:14,530 C'est ce qu'on appelle maintenant avec Jelly Beans, bien sûr, parce que 6 00:00:14,530 --> 00:00:17,310 la dernière version de l'OS est appelé Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Quand j'ai parlé Android l'an dernier et j'ai fait ce essentiellement ce même séminaire 8 00:00:22,950 --> 00:00:29,150 Je présentais les modèles de conception et les choix stylistiques de pain d'épice, 9 00:00:29,150 --> 00:00:31,250 même si Ice Cream Sandwich était sorti à l'époque, 10 00:00:31,250 --> 00:00:33,680 et c'est quelque chose que nous allons parler de l'avenir un peu. 11 00:00:33,680 --> 00:00:35,720 Android, bien sûr, a quelques problèmes avec la fragmentation, 12 00:00:35,720 --> 00:00:40,240 de sorte que le dernier système d'exploitation de Google est généralement 13 00:00:40,240 --> 00:00:44,710 pas vraiment à devenir fréquent chez les utilisateurs pour potentiellement jusqu'à une année, malheureusement. 14 00:00:44,710 --> 00:00:49,960 >> Mais abstraction, nous parlerons beaucoup de raisons pour lesquelles 15 00:00:49,960 --> 00:00:53,000 Android est beaucoup mieux que iOS. 16 00:00:53,000 --> 00:00:56,410 D'accord, nous allons parler de Android par rapport à iOS, 17 00:00:56,410 --> 00:00:59,770 certains paradigmes de conception, comment vous allez obtenir mis en place en une seule diapositive, 18 00:00:59,770 --> 00:01:03,410 et la grande différence entre ce dernier et l'année dernière, c'est que je veux juste 19 00:01:03,410 --> 00:01:06,860 zoom par certaines choses conceptuels travaillant avec 20 00:01:06,860 --> 00:01:09,950 le système d'exploitation et ensuite aller dans un exemple très basique. 21 00:01:09,950 --> 00:01:13,730 En fait, juste l'exemple que Google décrit pour construire votre première application, 22 00:01:13,730 --> 00:01:17,070 et nous allons passer en revue ensemble et juste décrivons. 23 00:01:17,070 --> 00:01:22,100 >> Je sais que beaucoup d'entre vous ont seulement codé en C, si Java est déjà vais être 24 00:01:22,100 --> 00:01:27,220 une perspective différente, et de cette façon vous vous mouiller les pieds 25 00:01:27,220 --> 00:01:31,540 et se sentir un peu plus à l'aise avec elle l'espère. 26 00:01:31,540 --> 00:01:35,330 Un résumé rapide, Android par rapport à iOS. 27 00:01:35,330 --> 00:01:39,200 Dans Android, il ya cette taxe développeur unique de 25 $, 28 00:01:39,200 --> 00:01:42,390 Rien de tout cela chose de 100 $ par année. 29 00:01:42,390 --> 00:01:45,440 Il n'y a aucune restriction, ce qui signifie que si je veux soumettre une application, 30 00:01:45,440 --> 00:01:51,560 Je viens de le soumettre, et il n'y a pas de processus d'approbation, comme il en existe pour iOS. 31 00:01:51,560 --> 00:01:53,890 Vous aurez à développer avec Java avec Eclipse, 32 00:01:53,890 --> 00:01:57,090 qui est multiplateforme, donc ce n'est pas grave si vous avez un Mac, 33 00:01:57,090 --> 00:01:59,600 Windows, ou une machine Linux. 34 00:01:59,600 --> 00:02:03,730 Bien sûr, avec iOS, vous devez utiliser XCode sur Mac, 35 00:02:03,730 --> 00:02:06,930 Android est utilisé par beaucoup plus de gens, 36 00:02:06,930 --> 00:02:11,580 donc si vous voulez que votre application pour avoir une sorte de visibilité ou peut-être 37 00:02:11,580 --> 00:02:14,110 faire un peu d'argent de la publicité 38 00:02:14,110 --> 00:02:17,450 vous êtes probablement plus susceptibles de bénéficier d'Android. 39 00:02:17,450 --> 00:02:20,630 >> Et une chose qui a toujours été connue sur Android 40 00:02:20,630 --> 00:02:25,100 est le montant extrême de la personnalisation, tandis que iOS est très fixé dans leurs façons 41 00:02:25,100 --> 00:02:29,380 afin qu'ils puissent maintenir la sécurité et le contrôle de chaque aspect peu 42 00:02:29,380 --> 00:02:34,180 de la conception au sein de leur système d'exploitation et les applications individuelles. 43 00:02:34,180 --> 00:02:40,180 Android est une forme très libre, et il ya tellement beaucoup plus de possibilités. 44 00:02:40,180 --> 00:02:42,530 Bon, certains paradigmes de conception. 45 00:02:42,530 --> 00:02:49,600 Remarquez ici comme iOS a tablettes et iPhones et iPod 46 00:02:49,600 --> 00:02:53,840 ils doivent prendre en charge, par exemple, comme une douzaine d'appareils si vous voulez soutenir 47 00:02:53,840 --> 00:02:55,450 choses historiques ainsi. 48 00:02:55,450 --> 00:02:58,410 Avec Android, vous devez appuyer sur des centaines de dispositifs, 49 00:02:58,410 --> 00:03:01,240 donc il ya certaines choses que Google a essayé de mettre en œuvre 50 00:03:01,240 --> 00:03:04,970 de faire l'expérience de l'utilisateur un peu plus cohérente, 51 00:03:04,970 --> 00:03:08,560 mais nous allons aussi parler de la façon dont cela signifie qu'il ya des problèmes de fragmentation 52 00:03:08,560 --> 00:03:11,700 que vous devez constamment être conscient de l'appui. 53 00:03:11,700 --> 00:03:16,140 La fragmentation signifie qu'il ya beaucoup de systèmes d'exploitation différents, 54 00:03:16,140 --> 00:03:20,330 plusieurs téléphones avec un matériel différent fonctionnant sous Android tout en même temps, 55 00:03:20,330 --> 00:03:29,680 si ce graphique ici remonte pendant environ 6 mois. 56 00:03:29,680 --> 00:03:36,460 Ouais, 6 mois, et vous pouvez voir comment la bande sombre 57 00:03:36,460 --> 00:03:39,330 sur le fond est Jelly Bean, qui est sorti durant l'été, 58 00:03:39,330 --> 00:03:42,970 et vous pouvez voir tout de suite probablement d'environ 2% des téléphones ont. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich est sorti il ​​ya plus d'un an, 60 00:03:45,520 --> 00:03:47,770 et un quart des téléphones avoir. 61 00:03:47,770 --> 00:03:53,910 Il ya encore beaucoup de téléphones qui utilisent la version OS il ya des années. 62 00:03:53,910 --> 00:03:57,820 Une chose que Google a essayé de faire pour rendre l'expérience utilisateur 63 00:03:57,820 --> 00:04:01,400 beaucoup plus cohérente à travers apps commence avec Honeycomb, 64 00:04:01,400 --> 00:04:04,320 qui est la version de la tablette, puis Ice Cream Sandwich et Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 ils sont vraiment essayer de mettre l'accent sur l'utilisation de cette barre d'action, 66 00:04:06,750 --> 00:04:10,430 qui est ce que vous pouvez voir en haut ici, 67 00:04:10,430 --> 00:04:14,730 tout ici, y compris sur ce bouton Paramètres peu. 68 00:04:14,730 --> 00:04:16,079 C'est le choix de la conception. 69 00:04:16,079 --> 00:04:18,000 Maintenant, quand vous voyez les 3 points, cela signifie cliquez sur ce point, 70 00:04:18,000 --> 00:04:21,880 et il y aura un menu déroulant, qui a une sorte de paramètres. 71 00:04:21,880 --> 00:04:28,900 Cela ne se présente parce que j'ai cliqué sur ce bouton. 72 00:04:28,900 --> 00:04:32,040 C'est quelque chose qu'ils essaient d'utiliser pour faire des applications un peu plus cohérente 73 00:04:32,040 --> 00:04:39,210 dans tous les domaines et que l'utilisateur dispose d'un meilleur sens de l'expérience uniforme. 74 00:04:39,210 --> 00:04:42,640 >> Ok, donc si vous ne l'avez pas déjà fait cela ou si vous regardez à la maison 75 00:04:42,640 --> 00:04:50,210 alors vous pouvez suivre ces étapes pour configurer votre environnement de codage. 76 00:04:50,210 --> 00:04:52,630 Il s'agira d'aller sur le site ici. 77 00:04:52,630 --> 00:04:56,260 Vous pouvez Google installation du SDK Android 78 00:04:56,260 --> 00:04:59,130 et de suivre quelques descriptions là. 79 00:04:59,130 --> 00:05:01,310 Ils vous disent tout. 80 00:05:01,310 --> 00:05:05,160 Ils ont vous installez le, téléchargez la version d'Eclipse SDK classique, 81 00:05:05,160 --> 00:05:07,450 même si, bien sûr, nous allons coder en Java. 82 00:05:07,450 --> 00:05:12,190 Ils recommandent celui-ci, et puis cette ADT, les outils de développement Android, 83 00:05:12,190 --> 00:05:17,300 est un plug-in que vous installez dans Eclipse qui vous permet de 84 00:05:17,300 --> 00:05:20,550 avoir une expérience beaucoup plus simple avec Android au sein d'Eclipse. 85 00:05:20,550 --> 00:05:24,070 Il vous donnera quelques interfaces graphiques 86 00:05:24,070 --> 00:05:29,610 pour la conception des points de vue, et il vous donnera beaucoup plus de soutien 87 00:05:29,610 --> 00:05:34,840 et la capacité de lancer avec l'émulateur et tout ce genre de chose. 88 00:05:34,840 --> 00:05:36,090 Application Framework. 89 00:05:36,090 --> 00:05:41,590 >> Je veux parler de la façon dont les projets dans Android sont structurés, 90 00:05:41,590 --> 00:05:44,830 et puis nous irons dans un petit exemple, et j'espère 91 00:05:44,830 --> 00:05:48,820 vous pouvez poser des questions à tout moment et à l'aise à la fin de celui-ci. 92 00:05:48,820 --> 00:05:50,090 Nous avons d'abord un peu de jargon. 93 00:05:50,090 --> 00:05:55,330 Une activité est similaire à l'écran que vous voyez lorsque vous lancez une application. 94 00:05:55,330 --> 00:05:57,840 L'expérience entière est l'activité elle-même, 95 00:05:57,840 --> 00:06:00,790 de sorte que vous pourriez penser qu'il s'agit d'un écran ou d'une vue, 96 00:06:00,790 --> 00:06:04,540 mais c'est en fait la partie du code source de celui-ci. 97 00:06:04,540 --> 00:06:12,680 Nous appelons encore la partie interface réelle de celui-ci en vue. 98 00:06:12,680 --> 00:06:17,230 C'est un peu comme la façon de pset 7 nous avions le contrôleur, puis la vue. 99 00:06:17,230 --> 00:06:20,690 L'activité est plus ou moins le dispositif de commande, 100 00:06:20,690 --> 00:06:23,360 et la vue est ce que nous faisons en termes de XML 101 00:06:23,360 --> 00:06:25,260 qui est associé à cette activité. 102 00:06:25,260 --> 00:06:29,340 Les fragments sont quelque chose qui est mis en œuvre dans Ice Cream Sandwich aller de l'avant. 103 00:06:29,340 --> 00:06:36,380 C'est juste une idée de prendre des parties de la vue ou de l'activité 104 00:06:36,380 --> 00:06:39,990 et en les divisant en zones distinctes afin que nous puissions 105 00:06:39,990 --> 00:06:45,030 rendre notre code plus facile à utiliser pour ces nombreux appareils différents 106 00:06:45,030 --> 00:06:51,890 que nous devons soutenir, et c'est juste une façon d'essayer de 107 00:06:51,890 --> 00:06:54,290 également factoriser plus de code. 108 00:06:54,290 --> 00:07:01,090 Les services sont fond des choses comme jouer de la musique ou des instructions de navigation potentiellement. 109 00:07:01,090 --> 00:07:05,640 Les fournisseurs de contenu, ce sont les API du système d'exploitation 110 00:07:05,640 --> 00:07:09,070 qui vous permettent d'accéder aux données partagées telles que les informations de contact, 111 00:07:09,070 --> 00:07:12,790 puis un but est quelque chose que nous allons utiliser quand nous voulons lancer 112 00:07:12,790 --> 00:07:17,210 une nouvelle activité de notre activité actuelle. 113 00:07:17,210 --> 00:07:20,980 >> Bonjour Android, cela va être un projet que nous allons parler. 114 00:07:20,980 --> 00:07:25,410 Je vais vraiment le faire pour vous, et puis nous allons faire quelque chose où l'on clique sur un bouton 115 00:07:25,410 --> 00:07:27,650 avec un peu de texte et de lancer une nouvelle activité. 116 00:07:27,650 --> 00:07:30,110 Très simple, mais je veux passer par 117 00:07:30,110 --> 00:07:34,480 ce qui ira dans un projet comme celui-ci. 118 00:07:34,480 --> 00:07:39,260 Lorsque vous faites le nouveau projet que vous verrez au sein d'Eclipse 119 00:07:39,260 --> 00:07:41,900 il ya ce projet intitulé Bonjour Android. 120 00:07:41,900 --> 00:07:43,470 Ensuite, il ya tout un tas de dossiers ici. 121 00:07:43,470 --> 00:07:46,760 Ceux que vous êtes vraiment concernés par le dossier sont à la source, 122 00:07:46,760 --> 00:07:54,540 le dossier des ressources, le RES, et dans une certaine mesure, le dossier libs pour les bibliothèques. 123 00:07:54,540 --> 00:08:00,070 Et si nous sommes sur la même page avec ce 124 00:08:00,070 --> 00:08:03,240 Si vous aviez à créer un nouveau projet, 125 00:08:03,240 --> 00:08:08,270 vous pouvez le faire ici, donc si je veux appeler HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 puis il le fait automatiquement tout un tas d'informations pour nous. 127 00:08:11,100 --> 00:08:14,110 Le nom du paquet est censé être un identifiant unique 128 00:08:14,110 --> 00:08:16,710 qui seraient normalement associés avec le site, si vous en aviez un. 129 00:08:16,710 --> 00:08:24,430 >> Par exemple, je vais appeler cette net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 Et j'ai déjà fait de ce projet une fois. 131 00:08:30,070 --> 00:08:40,059 Bon, désolé. Appelons cela HelloCS50. 132 00:08:40,059 --> 00:08:42,929 Et puis il vous demandera des choses comme ce genre d'icône voulons-nous faire. 133 00:08:42,929 --> 00:08:48,840 Ceci est tout à cause de l'interface Android Developer Tools, 134 00:08:48,840 --> 00:08:53,350 le plug-in que nous avons ajouté à Eclipse, ainsi nous pouvons choisir des choses comme 135 00:08:53,350 --> 00:08:58,320 quelle icône que nous voulons, et ce serait aller dans cette profondeur si nous voulons. 136 00:08:58,320 --> 00:09:04,360 Mais à la fin, juste faire le projet, 137 00:09:04,360 --> 00:09:07,040 et tout ce qui se présente ici. 138 00:09:07,040 --> 00:09:10,030 Comme je l'ai montré sur l'autre écran, 139 00:09:10,030 --> 00:09:14,070 nous avons le dossier source, et je vais parler de ce que tout cela veut dire bientôt, 140 00:09:14,070 --> 00:09:19,090 mais vous pouvez voir que tout de suite il nous emmène à l'écran HelloCS50. 141 00:09:19,090 --> 00:09:24,690 Il ya quelques touches plus ici pour ajouter des mises en champ de texte et le texte. 142 00:09:24,690 --> 00:09:28,910 C'est un peu comme XCode, mais malheureusement pas tout à fait aussi simple. 143 00:09:28,910 --> 00:09:37,790 Mais les clips seront vos amis et ADT en particulier pour ce faire. 144 00:09:37,790 --> 00:09:40,920 >> D'accord, le dossier source est l'endroit où 145 00:09:40,920 --> 00:09:43,820 les fichiers Java sont organisées, et c'est en fait le lancement de votre programme. 146 00:09:43,820 --> 00:09:45,990 C'est fondamentalement comme les contrôleurs. 147 00:09:45,990 --> 00:09:49,020 Le dossier de ressources ou la chose est l'endroit où nous allons garder configurations d'écran, 148 00:09:49,020 --> 00:09:54,110 images, sons, textes, animations et tout le reste, libs, évidemment, bibliothèques. 149 00:09:54,110 --> 00:10:01,700 Et le manifeste, c'est la façon dont le système Android sait 150 00:10:01,700 --> 00:10:03,130 comment interagir avec votre application. 151 00:10:03,130 --> 00:10:07,980 Il dit que sur les autorisations et les activités qui sera effectivement exécuté. 152 00:10:07,980 --> 00:10:12,350 C'est toute l'information essentielle qui est nécessaire pour exécuter votre application. 153 00:10:12,350 --> 00:10:17,990 Le dossier source est-il si nous élargissons comme vous pouvez le voir ici. 154 00:10:17,990 --> 00:10:23,920 Et un exemple d'un code ressemblerait-il s'agit du code par défaut. 155 00:10:23,920 --> 00:10:27,930 Comme nous l'appelions, MainActivity. 156 00:10:27,930 --> 00:10:33,230 Par défaut, nous obtenons onCreate, qui est une fonction qui est appelée lorsque la charge cette activité, 157 00:10:33,230 --> 00:10:37,150 si vous voulez appeler onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Cela permettra de restaurer tous les éléments d'information 159 00:10:40,440 --> 00:10:44,910 dans le cas où l'application a été suspendue. 160 00:10:44,910 --> 00:10:48,790 >> Il ya une activité ensemble graphique du cycle de vie que vous pouvez regarder 161 00:10:48,790 --> 00:10:50,380 quand vous obtenez un peu plus en profondeur en elle, 162 00:10:50,380 --> 00:10:56,210 mais la ligne la plus importante du Code, il ya cette fonction setContentView 163 00:10:56,210 --> 00:11:00,290 qui va charger le fichier de ressources pour la mise en page. 164 00:11:00,290 --> 00:11:03,590 Alors qu'est-ce onCreate ici est essentiellement fait est qu'il est dit 165 00:11:03,590 --> 00:11:07,010 quand je crée cette activité, je veux charger cette disposition. 166 00:11:07,010 --> 00:11:12,030 Et nous allons parler de ce que la disposition est en une seconde. 167 00:11:12,030 --> 00:11:16,230 Si nous devions lancer qu'ici il ressemble exactement à cela, 168 00:11:16,230 --> 00:11:22,880 et par défaut, parce que nous avons Eclipse faisant cela et ADT faire pour nous 169 00:11:22,880 --> 00:11:28,210 c'est tout ce code réutilisable qui est créé pour nous, 170 00:11:28,210 --> 00:11:34,630 et nous pouvons avancer et changer les choses que nous aimons. 171 00:11:34,630 --> 00:11:38,190 Le dossier de ressources, comme je l'ai dit, c'est là que nous détenons toutes les configurations, 172 00:11:38,190 --> 00:11:41,150 drawables en termes de toute sorte d'images- 173 00:11:41,150 --> 00:11:46,360 ils sont appelés dessinables, et puis les fichiers audio, les menus. 174 00:11:46,360 --> 00:11:51,170 C'est une façon de tout un tas de XML dans un joli mode triés. 175 00:11:51,170 --> 00:11:58,030 Comme vous pouvez le voir, il ya. Hdpi, LDPI, MDPI et dossiers xhdpi pour les drawables. 176 00:11:58,030 --> 00:12:02,220 Ceux-ci sont différentes densités d'écran, pixel afin de haute densité par pouce, 177 00:12:02,220 --> 00:12:05,710 faible densité, densité moyenne, très haute densité. 178 00:12:05,710 --> 00:12:08,900 >> C'est, encore une fois, si nous pouvons soutenir tous ces différents dispositifs, 179 00:12:08,900 --> 00:12:15,100 et idéalement, vous aurez des images différentes pour chaque résolution différente. 180 00:12:15,100 --> 00:12:20,740 Mises sommes là où nous incluons toutes les différentes configurations qui seront utilisées dans différentes activités. 181 00:12:20,740 --> 00:12:24,150 Ils pourraient également inclure des dispositions pour les fragments, 182 00:12:24,150 --> 00:12:26,670 ce qui signifie essentiellement des activités partielles. 183 00:12:26,670 --> 00:12:29,610 Si vous voulez faire quelque chose de cool comme lorsque vous faites pivoter le téléphone 184 00:12:29,610 --> 00:12:33,900 vous voulez qu'il ait une disposition différente que vous pouvez faire layout-paysage comme un dossier différent, 185 00:12:33,900 --> 00:12:39,000 Android a automatiquement tout un tas de ces règles dans le dossier des ressources, 186 00:12:39,000 --> 00:12:44,690 il saura regarder différents dossiers en fonction de la configuration actuelle du téléphone, 187 00:12:44,690 --> 00:12:46,740 ce type de matériel que vous utilisez. 188 00:12:46,740 --> 00:12:52,350 De même, cette valeur-là v11 et v14 valeurs 189 00:12:52,350 --> 00:12:55,460 et les valeurs par défaut dossier c'est pour- 190 00:12:55,460 --> 00:13:01,730 ainsi, les valeurs par lui-même, ce seront les valeurs par défaut dans toutes les versions du système d'exploitation. 191 00:13:01,730 --> 00:13:06,390 D'autre part, v11 et v14 correspondre avec Honeycomb 192 00:13:06,390 --> 00:13:08,780 et Ice Cream Sandwich, respectivement. 193 00:13:08,780 --> 00:13:12,800 Encore une fois, ce sont des moyens qui, au sein de ces dossiers sont différentes chaînes 194 00:13:12,800 --> 00:13:17,550 et les styles, de sorte que vous pouvez personnaliser l'apparence de votre application 195 00:13:17,550 --> 00:13:22,660 ou peut-être même sa fonctionnalité, bien que ce serait probablement une mauvaise idée, 196 00:13:22,660 --> 00:13:25,890 sur la base de la version du système d'exploitation. 197 00:13:25,890 --> 00:13:28,760 >> Et j'ai parlé de tout cela ici. 198 00:13:28,760 --> 00:13:35,870 Encore une fois, étirables, cru, mise en page, des valeurs. 199 00:13:35,870 --> 00:13:41,380 Les valeurs par défaut, si nous entrons dans Bonjour Android ou Bonjour CS50 dès maintenant 200 00:13:41,380 --> 00:13:43,310 il va chercher comme ça. 201 00:13:43,310 --> 00:13:45,800 Il dira bonjour tout le monde. 202 00:13:45,800 --> 00:13:58,430 Comme vous pouvez le voir ici avec le texte Android 203 00:13:58,430 --> 00:14:04,420 le texte de ce point de vue du texte, qui est fondamentalement juste un label, 204 00:14:04,420 --> 00:14:06,900 c'est ce que nous appellerions dans iOS. 205 00:14:06,900 --> 00:14:11,580 Il a cette drôle notation @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 C'est ainsi que nous pouvons-nous tenter d'extraire toutes les chaînes, 207 00:14:16,200 --> 00:14:19,740 toutes les chaînes codées en dur dans Android dans un dossier distinct, 208 00:14:19,740 --> 00:14:23,610 qui se trouve être dans values.strings. 209 00:14:23,610 --> 00:14:29,300 Si nous regardons ici, nous pouvons voir que nous avons une chaîne codée en dur enregistrée ici 210 00:14:29,300 --> 00:14:33,910 pour bonjour le monde, et il est appelé Bonjour tout le monde, et c'est une sorte de 211 00:14:33,910 --> 00:14:39,230 décision de conception commune dans de nombreuses plates-formes que vous voulez- 212 00:14:39,230 --> 00:14:41,780 cordes sont le genre de choses que nous voulons être potentiellement en mesure de changer. 213 00:14:41,780 --> 00:14:48,050 Nous ne voulons pas contrôler F dans notre fichier de code source dans notre XML. 214 00:14:48,050 --> 00:14:50,760 Nous voulons être en mesure de changer cela quand nous avons la chance. 215 00:14:50,760 --> 00:14:53,640 >> Ce fichier XML, strings.xml, est une façon d'extraire 216 00:14:53,640 --> 00:14:56,710 chaînes codées en dur qui seraient autrement dans nos ressources de mise en page 217 00:14:56,710 --> 00:15:03,530 ou dans notre code source. 218 00:15:03,530 --> 00:15:08,190 Le manifeste est l'endroit où nous gardons cette information essentielle sur l'application. 219 00:15:08,190 --> 00:15:11,050 Il comprend le nom du package. Cela doit être un identifiant unique. 220 00:15:11,050 --> 00:15:16,020 Contrairement à l'App Store pour iOS les noms des applications 221 00:15:16,020 --> 00:15:19,980 n'ont pas à être unique, et vous pouvez en effet changer le nom de votre application 222 00:15:19,980 --> 00:15:23,570 Une fois que vous soumettez, donc si je commence avec Angry Birds, 223 00:15:23,570 --> 00:15:26,840 et puis je fais une mise à jour, et je ne veux pas sortir une nouvelle version 224 00:15:26,840 --> 00:15:34,230 Je suppose que je pourrais appeler Angry Birds 2 alors que je suis sur le même cycle de sortie. 225 00:15:34,230 --> 00:15:36,780 Il suffit de se présenter comme une mise à jour. 226 00:15:36,780 --> 00:15:39,790 La seule chose qui doit être unique, c'est le nom de ce paquet, 227 00:15:39,790 --> 00:15:41,280 qui peu de gens vont voir. 228 00:15:41,280 --> 00:15:44,680 Eh bien, tu ne voyez que si vous regardiez le code source ou si il ya une sorte d'erreur. 229 00:15:44,680 --> 00:15:47,580 Les composants comprennent des activités, nous devons donc déclarer 230 00:15:47,580 --> 00:15:49,070 toute sorte d'activité que nous utilisons. 231 00:15:49,070 --> 00:15:53,430 Il s'agit d'une autorisation genre de chose. 232 00:15:53,460 --> 00:15:58,150 >> Parce que Android n'a pas ce rigoureux processus de demande 233 00:15:58,150 --> 00:16:02,210 pour soumettre des applications à la place ils n'ont tout simplement tout basés hors des autorisations 234 00:16:02,210 --> 00:16:04,300 et déclarant choses dans le manifeste. 235 00:16:04,300 --> 00:16:06,380 La version SDK est également importante. 236 00:16:06,380 --> 00:16:10,330 Nous pouvons définir l'utilisation que SDK Version minimum quelque chose. 237 00:16:10,330 --> 00:16:16,010 Évidemment, vous voulez créer un code 238 00:16:16,010 --> 00:16:18,570 et de conception pour les systèmes d'exploitation plus récents. 239 00:16:18,570 --> 00:16:20,840 Peut-être pas le plus récent, peut-être pas Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Peut-être que vous souhaitez concevoir principalement pour Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 même si elles sont à peu près la même en termes de décisions de conception 242 00:16:27,120 --> 00:16:30,550 et les bibliothèques et API réels. 243 00:16:30,550 --> 00:16:36,250 Mais plutôt que d'avoir des gens 244 00:16:36,250 --> 00:16:40,050 de l'original Android version comme chemin du retour lorsque Donut- 245 00:16:40,050 --> 00:16:43,420 qui arrive encore à utiliser qui tentent de télécharger votre application, puis dire 246 00:16:43,420 --> 00:16:46,160 il ne fonctionne pas sur mon téléphone, vous pouvez définir la version minimale 247 00:16:46,160 --> 00:16:48,620 et ont-il Gingerbread ou Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 ou ce que vous Submitting confortable. 249 00:16:53,300 --> 00:16:57,170 Et ceci est un exemple du manifeste. Nous pouvons regarder le réel en un peu. 250 00:16:57,170 --> 00:17:00,900 >> D'accord, nous allons simplement aller de l'avant avec la démo maintenant. 251 00:17:00,900 --> 00:17:08,900 Il s'agit de la démo si vous Google Android construire votre première application ou quelque chose comme ça. 252 00:17:08,900 --> 00:17:12,089 Nous allons passer en revue tout ce qui se passe là-dedans, 253 00:17:12,089 --> 00:17:17,690 et désolé, juste pour une référence qui sait ici Java à toute mesure? 254 00:17:17,690 --> 00:17:28,310 Ok, donc Java est nouveau langage de codage pour la plupart des gens qui sortent de CS50. 255 00:17:28,310 --> 00:17:31,850 En bref, pour aller encore ce qu'il dit ici, 256 00:17:31,850 --> 00:17:35,580 ce que nous voulons faire, c'est plutôt de régler cette application Bonjour tout le monde 257 00:17:35,580 --> 00:17:38,620 que tout ce qu'il fait est qu'il se lance et il dit bonjour le monde 258 00:17:38,620 --> 00:17:43,580 et il dit bonjour CS50 au sommet parce que c'est le nom de l'activité 259 00:17:43,580 --> 00:17:47,190 nous allons tenter de faire un champ de texte et un bouton 260 00:17:47,190 --> 00:17:50,680 de sorte que lorsque nous appuyer sur ce bouton, il faudra le texte 261 00:17:50,680 --> 00:17:53,660 à partir de la zone de texte et de lancer une nouvelle activité, et il va dire 262 00:17:53,660 --> 00:17:58,380 tout ce que le texte dit dans l'activité, ce qui est relativement simple. 263 00:17:58,380 --> 00:18:00,650 Ce n'est pas très intéressant. Vous ne voudriez pas de libérer n'importe quelle application comme ceci. 264 00:18:00,650 --> 00:18:03,880 Mais il démontre certaines choses importantes de conception. 265 00:18:03,880 --> 00:18:07,030 >> Nous allons devoir interagir avec le manifeste, avec les fichiers de mise en page, 266 00:18:07,030 --> 00:18:12,440 avec le code source, et vous pouvez voir comment lancer une activité d'un autre. 267 00:18:19,740 --> 00:18:23,060 Nous allons commencer avec la mise en page pour notre première activité, 268 00:18:23,060 --> 00:18:27,320 ce que je sais c'est un peu petit, 269 00:18:27,320 --> 00:18:32,660 mais comme vous pouvez le voir en ce moment, tout ce qu'il est, c'est qu'il a notre logo que nous avons créé, 270 00:18:32,660 --> 00:18:36,310 le nom de l'activité, et il dit bonjour le monde au centre. 271 00:18:36,310 --> 00:18:40,400 Au lieu de cela, je vais d'abord faire cela dans une mise en linéaire, 272 00:18:40,400 --> 00:18:42,350 une disposition relative, et ce sont toutes les choses 273 00:18:42,350 --> 00:18:45,870 vous pouvez rechercher et valent la peine d'aller plus à un moment donné en termes de mises en page. 274 00:18:45,870 --> 00:18:47,310 C'est un peu comme HTML. 275 00:18:47,310 --> 00:18:52,640 Nous avons dit que ce n'est pas vraiment intéressant de savoir en termes de sens programmatique, 276 00:18:52,640 --> 00:18:55,840 mais il ya tellement de configurations différentes que vous pouvez contrôler, 277 00:18:55,840 --> 00:18:57,970 et c'est comme CSS en termes de styles. 278 00:18:57,970 --> 00:19:01,590 >> Il ya beaucoup de choses simplement en termes d'esthétique ici, 279 00:19:01,590 --> 00:19:08,930 et oui, c'est l'apprentissage peine, mais c'est le genre de chose que vous devriez chercher 280 00:19:08,930 --> 00:19:11,810 que vous allez et vous vous sentez comme vous avez besoin quelque chose de nouveau. 281 00:19:11,810 --> 00:19:17,030 Je peux profiter de quelques-uns des outils ADT ici au moins pour commencer. 282 00:19:17,030 --> 00:19:21,930 Je vais faire un champ de texte, et je ferai un bouton. 283 00:19:21,930 --> 00:19:24,100 Mettez-les à côté de l'autre. 284 00:19:24,100 --> 00:19:28,200 Ils ont déjà redimensionner de manière appropriée. 285 00:19:28,200 --> 00:19:31,320 Désolé, encore une fois, pour revenir à la différence entre la disposition et l'agencement linéaire relative, 286 00:19:31,320 --> 00:19:34,830 une disposition linéaire donne un peu plus de fonctionnalités 287 00:19:34,830 --> 00:19:38,720 en termes de remplir l'espace et faire en sorte 288 00:19:38,720 --> 00:19:42,790 nous positionnons choses horizontalement ou verticalement. 289 00:19:42,790 --> 00:19:46,130 La grande différence entre une disposition linéaire et une mise en rapport 290 00:19:46,130 --> 00:19:50,250 est la mise en rapport des positions tout par rapport à d'autres points de vue, 291 00:19:50,250 --> 00:19:52,630 et la bonne chose à ce sujet est que cela prend moins de temps pour dessiner 292 00:19:52,630 --> 00:19:56,120 parce que le système d'exploitation regarde tout le code et dit ceci va 293 00:19:56,120 --> 00:19:58,270 par rapport à cela ici, ici. 294 00:19:58,270 --> 00:20:03,170 Cela signifie qu'il fait moins de mesures que tout un tas de configurations linéaires imbriqués, 295 00:20:03,170 --> 00:20:06,840 que je dois faire si je voulais que les choses vont verticalement ici. 296 00:20:06,840 --> 00:20:10,510 >> J'ai déjà quelques choses qui se passent horizontalement, donc j'aurais besoin d'un aménagement linéaire différent 297 00:20:10,510 --> 00:20:14,560 pour les imbriquer verticalement, mais si je faisais une présentation relativement je pourrais dire 298 00:20:14,560 --> 00:20:18,140 garder cela à la gauche, ce qui est correct et ces choses ci-dessous. 299 00:20:18,140 --> 00:20:21,850 Mais parce que je veux qu'ils remplissent en ce moment je vais utiliser une disposition linéaire, 300 00:20:21,850 --> 00:20:24,510 et vous pouvez voir qu'il fait déjà beaucoup de ces choses pour nous. 301 00:20:24,510 --> 00:20:28,890 Toutes les opinions doivent avoir une propriété de la largeur et de la hauteur, 302 00:20:28,890 --> 00:20:33,410 et cela arrive à avoir un poids de 1, ce qui a un poids de 1 303 00:20:33,410 --> 00:20:36,050 de sorte qu'il remplit tout l'espace. 304 00:20:36,050 --> 00:20:38,460 Mais la largeur et la hauteur sont les plus importants. 305 00:20:38,460 --> 00:20:45,880 Ce champ ID ici n'est pas important au sein de la structure réelle 306 00:20:45,880 --> 00:20:49,060 à moins que nous utilisons une disposition relative et dire que nous pouvons référencer 307 00:20:49,060 --> 00:20:52,990 une position de vision, en référence à l'autre. 308 00:20:52,990 --> 00:20:56,170 Si nous avions un plan relatif, nous pourrions dire la position ci dessous celui-ci 309 00:20:56,170 --> 00:20:59,390 ou au-dessus de cette identité, mais cet ID sera important 310 00:20:59,390 --> 00:21:01,660 lorsque nous l'utilisons dans notre code parce que nous pouvons référencer 311 00:21:01,660 --> 00:21:05,610 ces points de vue individuels dans cette voie. 312 00:21:05,610 --> 00:21:10,350 >> Et puis, vous pouvez voir le tag requestFocus, ce qui est quelque chose que vous avez probablement vu dans pset 7. 313 00:21:10,350 --> 00:21:15,370 Il y avait une étiquette de mise au point automatique ou quelque chose du genre pour l'un des champs. 314 00:21:15,370 --> 00:21:22,100 Et une chose, bien sûr, nous pouvons faire tout comme en HTML, 315 00:21:22,100 --> 00:21:25,660 et un avis l'une des choses gentilles sur ADT est qu'il autocompletes ici. 316 00:21:25,660 --> 00:21:29,930 Peut-être pas aussi bien qu'il l'a fait dans XCode, mais il fait néanmoins, 317 00:21:29,930 --> 00:21:32,860 et nous pourrions dire soupçon et puis de lui donner une sorte de chaîne 318 00:21:32,860 --> 00:21:37,070 comme écrire un message, 319 00:21:37,070 --> 00:21:41,300 et si je lui donne un moment, aussi remarquer que je reçois une petite erreur ici 320 00:21:41,300 --> 00:21:44,610 en disant que nous devrions utiliser une ressource de type chaîne pour cela, 321 00:21:44,610 --> 00:21:48,820 donc si je le laisse faire une partie du travail difficile pour moi 322 00:21:48,820 --> 00:21:57,320 Je ne peux sélectionner cette chaîne, faire lunette Android et string Android extrait. 323 00:21:57,320 --> 00:22:00,570 Je peux lui donner ce nom, écrire un message, 324 00:22:00,570 --> 00:22:04,180 et ce qu'il n'a il est maintenant remplacé cette chaîne codée en dur 325 00:22:04,180 --> 00:22:07,980 avec une référence à la chaîne en. xml du dossier de la chaîne, 326 00:22:07,980 --> 00:22:10,200 ce qui signifie maintenant c'est ici. 327 00:22:10,200 --> 00:22:15,560 >> Et je sais que cela semble un peu de travail supplémentaire trivial et comme en ce moment, 328 00:22:15,560 --> 00:22:17,840 mais quand vous avez tout un tas de choses, tout un tas de cordes, 329 00:22:17,840 --> 00:22:20,750 c'est très important, et en particulier pour la localisation 330 00:22:20,750 --> 00:22:26,920 parce que, comme je l'ai mentionné plus tôt, Android est un système d'exploitation utilisé globalement très 331 00:22:26,920 --> 00:22:35,950 que vous pouvez tout simplement pas les valeurs ou les valeurs en-sp 332 00:22:35,950 --> 00:22:44,320 ou quelque chose pour l'anglais ou l'espagnol ou d'autres langues. 333 00:22:44,320 --> 00:22:50,210 Et puis vous n'avez probablement pas encore eu cette expérience 334 00:22:50,210 --> 00:22:53,030 puisque nous n'avons pas fait beaucoup JavaScript en termes de programmation web, 335 00:22:53,030 --> 00:22:56,850 mais nous pouvons aussi faire ce champ appelé onClick du bouton, 336 00:22:56,850 --> 00:23:02,350 et c'est une façon de référencer au sein de notre mise en page 337 00:23:02,350 --> 00:23:06,570 que nous voulons une certaine fonction à appeler dans notre code source. 338 00:23:06,570 --> 00:23:09,420 Je vais appeler cette sendMessage, 339 00:23:09,420 --> 00:23:13,390 et afin de faire ce travail qui signifie dans la principale activité ici 340 00:23:13,390 --> 00:23:19,180 Je vais devoir créer une fonction qui est public 341 00:23:19,180 --> 00:23:22,250 de sorte qu'il est possible d'accéder par la mise en page. 342 00:23:22,250 --> 00:23:25,930 C'est nul parce que vous ne voulez pas qu'il retourne rien. 343 00:23:25,930 --> 00:23:37,760 Nous l'appellerons sendMessage, et il faut un point de vue, 344 00:23:37,760 --> 00:23:43,690 qui est une sorte de contexte que nous pouvons ancrer cette méthode 345 00:23:43,690 --> 00:23:47,160 de ce point de vue individuel lorsque nous exécuter. 346 00:23:47,160 --> 00:23:50,090 >> Et je ne sais pas si vous avez remarqué, eh bien, vous ne l'auriez pas remarqué, 347 00:23:50,090 --> 00:24:02,370 mais à ce point ici 348 00:24:02,370 --> 00:24:06,930 cette vue est d'un type qui n'a pas encore été incluse, 349 00:24:06,930 --> 00:24:10,630 et bien sûr, vous savez tous CS50 de ne pas y compris les types. 350 00:24:10,630 --> 00:24:13,120 La bonne chose à propos de l'EDI comme Eclipse, c'est que 351 00:24:13,120 --> 00:24:17,520 Si vous oubliez d'inclure un type, il soulignera avec un peu de rouge ondulée 352 00:24:17,520 --> 00:24:19,680 et puis vous donner la possibilité d'importer la vue. 353 00:24:19,680 --> 00:24:23,130 Un moyen rapide de le faire est commande de changement de O, et il importera 354 00:24:23,130 --> 00:24:27,070 tous les fichiers dont il a besoin pour. 355 00:24:27,070 --> 00:24:33,670 Maintenant que nous avons cette fonction sendMessage, 356 00:24:33,670 --> 00:24:46,560 qui va envoyer un message à partir de la MainActivity à une nouvelle activité, 357 00:24:46,560 --> 00:24:55,230 nous allons avoir à utiliser une intention de lancer la nouvelle activité de celui-ci, 358 00:24:55,230 --> 00:25:02,240 donc nous allons probablement voulons créer une constante globale ou aussi particulièrement une constante publique 359 00:25:02,240 --> 00:25:06,240 qui nous aidera à savoir comment nous allons faire référence à la chaîne 360 00:25:06,240 --> 00:25:09,090 parce que lorsque nous créons une intention, nous ne sommes pas simplement en l'appelant une nouvelle activité, 361 00:25:09,090 --> 00:25:11,520 mais nous pouvons aussi lui donner un ensemble d'informations. 362 00:25:11,520 --> 00:25:14,720 Un bundle est en fait le terme qui utilise Android, 363 00:25:14,720 --> 00:25:21,470 et c'est une façon de dire lui donner des données supplémentaires, ce qui ne peut pas être d'un type de données très sophistiqué, 364 00:25:21,470 --> 00:25:24,510 mais nous pouvons certainement comprendre booléens ou des chaînes ou ints. 365 00:25:24,510 --> 00:25:29,750 Ce genre de chose. 366 00:25:29,750 --> 00:25:34,230 >> N'hésitez pas à poser des questions sur l'un de ces qualificatifs ici, 367 00:25:34,230 --> 00:25:36,900 publique, finale, statique. 368 00:25:36,900 --> 00:25:38,610 Publique est l'important. 369 00:25:38,610 --> 00:25:47,090 Cela signifie que nous pouvons accéder à cette variable à partir d'autres fichiers de code source 370 00:25:47,090 --> 00:25:49,590 comme lorsque nous créons une nouvelle activité. 371 00:25:49,590 --> 00:25:52,190 Nous pouvons référencer la chaîne dans ce fichier. 372 00:25:52,190 --> 00:25:57,160 Si c'est privé, cela signifie que c'est limité à ce fichier individuel ici. 373 00:25:57,160 --> 00:26:02,430 Mais nous allons appeler cette chose comme un message supplémentaire. 374 00:26:16,260 --> 00:26:23,300 Maintenant, nous avons fait cette fonction, et si l'on clique sur le bouton, cette fonction sera appelée. 375 00:26:23,300 --> 00:26:27,970 Mais nous n'avons rien fait, évidemment, avec la fonction. 376 00:26:27,970 --> 00:26:33,130 Ce que nous voulons faire maintenant est de créer une nouvelle activité, 377 00:26:33,130 --> 00:26:35,350 l'activité qui sera effectivement lancée. 378 00:26:35,350 --> 00:26:44,330 Dans Eclipse, nous pouvons dire nouvelle, l'activité Android, activité vierge. 379 00:26:44,330 --> 00:26:46,530 Nous pouvons lui donner un nom. 380 00:26:46,530 --> 00:26:57,050 Disons que c'est notre activité de résultats. 381 00:26:57,050 --> 00:27:04,430 Et puis ce champ parent hiérarchique est un moyen de spécifier 382 00:27:04,430 --> 00:27:08,180 la manière dont les activités sont liées les unes aux autres. 383 00:27:08,180 --> 00:27:11,020 Parce que celui-ci sera lancé à partir de l'autre activité 384 00:27:11,020 --> 00:27:27,520 nous devons préciser qu'il a l'activité principale des parents. 385 00:27:27,520 --> 00:27:31,220 >> Et je pourrais avoir cliqué sur le champ suivant là, qui nous ont dit 386 00:27:31,220 --> 00:27:33,830 certains champs facultatifs qui il a également été, y compris, 387 00:27:33,830 --> 00:27:38,800 mais la bonne chose à propos ADT, encore une fois, c'est que si je fais défiler vers le bas ici 388 00:27:38,800 --> 00:27:45,740 dans le manifeste rappelez-vous que tout cela vraiment été inclus par défaut 389 00:27:45,740 --> 00:27:48,930 lorsque nous avons créé le projet, 390 00:27:48,930 --> 00:27:53,090 et maintenant, parce que nous avons utilisé cette création d'une nouvelle activité plutôt que de simplement 391 00:27:53,090 --> 00:27:58,610 ajoutant notre propre fichier de classe parce que nous sommes allés à travers leur interface graphique pour ce faire 392 00:27:58,610 --> 00:28:01,930 il déjà ajouté tout cela pour le manifeste pour nous, 393 00:28:01,930 --> 00:28:06,020 ce qui signifie juste que maintenant le système d'exploitation ne se plaindra pas 394 00:28:06,020 --> 00:28:09,400 quand nous essayons de lancer cette activité. 395 00:28:09,400 --> 00:28:14,620 Et c'est aussi, bien sûr, il a donné une étiquette, qui apparaît également dans les chaînes. 396 00:28:14,620 --> 00:28:17,340 Il fait beaucoup de choses sur le back-end pour nous. 397 00:28:17,340 --> 00:28:20,140 Quoi qu'il en soit, maintenant que nous avons cette activité résulte ainsi, 398 00:28:20,140 --> 00:28:23,810 le fichier de code source dans le filtre de source, 399 00:28:23,810 --> 00:28:33,540 et vous pouvez voir à évoquer brièvement ce- 400 00:28:33,540 --> 00:28:37,790 parce que nous lui avons dit à propos de ce parent hiérarchique 401 00:28:37,790 --> 00:28:46,640 il a donné ce domaine android.r.ide.home dans ce onOption chose sélectionné. 402 00:28:46,640 --> 00:28:49,020 >> Ce qui revient à dire, c'est qu'il ya un bouton de menu aujourd'hui 403 00:28:49,020 --> 00:28:53,110 que, dans le coin supérieur gauche de l'écran 404 00:28:53,110 --> 00:29:02,220 si je reviens à la PowerPoint où nous avons d'abord parlé de la barre d'action 405 00:29:02,220 --> 00:29:05,380 parce que le parent hiérarchique maintenant, il ya une petite flèche de retour ici 406 00:29:05,380 --> 00:29:10,610 et cela est cliquable donc nous devrions être capables de nous courons après-fait cette app- 407 00:29:10,610 --> 00:29:15,360 revenir en arrière, et c'est une façon de nous sauver un peu de code là. 408 00:29:26,220 --> 00:29:40,180 Maintenant, dans ce puits, il semble se plaindre à ce sujet pendant un moment. 409 00:29:40,180 --> 00:29:43,910 Allons commentaire cela. 410 00:29:43,910 --> 00:29:48,260 Maintenant, afin de réellement interagir avec ces 2 activités, 411 00:29:48,260 --> 00:29:55,020 nous devons créer une intention qui comprend toutes ces données. 412 00:29:55,020 --> 00:29:58,950 En sendMessage maintenant, je vais faire une croisière à travers quelques morceaux de code 413 00:29:58,950 --> 00:30:00,700 et d'expliquer que je vais. 414 00:30:00,700 --> 00:30:06,280 L'intention, comme je le disais, est un moyen de lancer une activité d'un autre. 415 00:30:06,280 --> 00:30:10,000 L'intention est le type. Nous créons un myIntent variable. 416 00:30:10,000 --> 00:30:13,980 >> Et c'est en fait un objet, c'est pourquoi nous devons appeler de nouveau. 417 00:30:13,980 --> 00:30:18,500 Il est d'usage courant Java là-bas, ce qui pourrait prendre un peu de temps pour s'y habituer. 418 00:30:18,500 --> 00:30:23,900 Cela signifie que nous utilisons l'activité ou le MainActivity de classe, 419 00:30:23,900 --> 00:30:28,630 et l'intention de cette façon prend l'activité qu'il va partir 420 00:30:28,630 --> 00:30:36,060 et l'activité ça va, que nous appelons ResultActivity, 421 00:30:36,060 --> 00:30:38,170 et c'est sa propre classe. 422 00:30:38,170 --> 00:30:41,720 Inclure cela. 423 00:30:41,720 --> 00:30:47,370 Et puis, comme je l'ai mentionné auparavant, nous avons donné cet ID dans le champ d'édition de texte 424 00:30:47,370 --> 00:30:53,710 et l'affichage de texte, de sorte afin de capturer programmation 425 00:30:53,710 --> 00:31:01,860 le texte qui existe dans le editText 426 00:31:01,860 --> 00:31:06,710 Nous utilisons cette fonction appelée findViewById, 427 00:31:06,710 --> 00:31:13,660 qui est semblable à quelque chose que vous allez utiliser lorsque vous essayez d'obtenir des champs de la DOM. 428 00:31:13,660 --> 00:31:17,560 Peut-être que David parle dans conférence. 429 00:31:17,560 --> 00:31:26,600 Mais c'est juste une façon d'obtenir ceux-c'est pourquoi nous Marquer ces choses avec ces domaines. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 C'est déjà autocompleting pour moi là-bas. 432 00:31:35,220 --> 00:31:42,010 >> Et puis nous allons aussi inclure la présente editText maintenant que nous avons le terrain 433 00:31:42,010 --> 00:31:47,640 au sein de notre programme, tout ce qui findViewById n'a été essentiellement 434 00:31:47,640 --> 00:31:50,870 vous pourriez penser que c'est nous donner une référence à cette editText. 435 00:31:50,870 --> 00:31:54,570 Maintenant, nous voulons obtenir la chaîne ou le message 436 00:31:54,570 --> 00:32:00,670 dans ce editText que nous pouvons faire à l'aide de la 437 00:32:00,670 --> 00:32:03,360 vous pourriez penser editText comme une struct- 438 00:32:03,360 --> 00:32:07,600 nous l'appelons un objet en Java avec tout un tas de différentes méthodes 439 00:32:07,600 --> 00:32:10,650 ou les champs et les attributs qui lui sont attachés. 440 00:32:10,650 --> 00:32:15,510 Quand je dis editText. il me donne la chance d'accéder 441 00:32:15,510 --> 00:32:19,770 un tel procédé getText, qui obtiendra le texte actuel 442 00:32:19,770 --> 00:32:23,990 dans ce editText et la convertir ensuite explicitement 443 00:32:23,990 --> 00:32:26,520 à une chaîne, et nous avons sauvé le message. 444 00:32:26,520 --> 00:32:32,730 Maintenant, nous voulons réellement faire quelque chose avec cette intention que nous avons créé il ya quelques instants. 445 00:32:32,730 --> 00:32:40,250 Je mettrai supplémentaire comme on l'appelle dans l'intention, 446 00:32:40,250 --> 00:32:43,330 qui, encore une fois, comme je l'ai déjà dit, c'est une façon de créer le faisceau 447 00:32:43,330 --> 00:32:45,980 avec tout un tas de données. 448 00:32:45,980 --> 00:32:50,920 Un message supplémentaire est notre balise, donc nous savons ce que nous gagnons ce titre, 449 00:32:50,920 --> 00:32:56,700 et puis je vais y compris le message. 450 00:32:56,700 --> 00:33:04,870 >> Et puis nous pouvons réellement commencer l'activité en lui donnant le paramètre myIntent. 451 00:33:04,870 --> 00:33:10,630 Et ce sera effectivement lancer l'activité, alors maintenant que j'ai mis à niveau vers Windows 8 452 00:33:10,630 --> 00:33:15,870 il pourrait y avoir quelques erreurs qui apparaissent brièvement, mais essayez de les ignorer. 453 00:33:28,010 --> 00:33:30,310 Et c'est l'émulateur Android. 454 00:33:30,310 --> 00:33:33,540 Espérons que le code fait apparaître dans un instant. 455 00:33:33,540 --> 00:33:36,680 Encore une fois, en ignorant toutes ces petites choses. 456 00:33:36,680 --> 00:33:42,290 Mais l'émulateur Android vous permet d'émuler n'importe quelle version du système d'exploitation 457 00:33:42,290 --> 00:33:45,180 dès les premiers petits, Donut, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 C'est Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Mais comme vous pouvez le voir en ce moment, c'est quelque chose que nous avons fait. 460 00:33:53,150 --> 00:33:55,780 Cela a l'MainActivity, le editText, le bouton. 461 00:33:55,780 --> 00:34:01,550 Je peux taper quelque chose ici, mais ce qui nous manque à ce point? 462 00:34:01,550 --> 00:34:05,190 Nous avons fait le champ de la MainActivity qui va envoyer le message 463 00:34:05,190 --> 00:34:08,570 à l'autre activité, mais à ce point 464 00:34:08,570 --> 00:34:12,330 nous n'avons rien fait dans l'autre activité, donc ça ne va pas à recevoir quoi que ce soit. 465 00:34:12,330 --> 00:34:18,800 Finissons cette partie avant que nous passions. 466 00:34:18,800 --> 00:34:25,760 >> Cette activité de résultat, ce que nous devrons faire, c'est nous devons faire, c'est nous devrons- 467 00:34:25,760 --> 00:34:30,070 nous pouvons également référencer le but de cette activité, 468 00:34:30,070 --> 00:34:33,580 nous devons donc saisir l'objectif, qui est vraiment simple. 469 00:34:33,580 --> 00:34:40,780 C'est une fonction incluse dans la classe d'activité, 470 00:34:40,780 --> 00:34:47,610 si nous pouvons simplement dire «Recevez le message de l'intention." 471 00:34:47,610 --> 00:34:56,260 "MyIntent Intention = getIntent." 472 00:34:56,260 --> 00:35:00,030 Et cela nous donnera-maintenant myIntent est un objet, 473 00:35:00,030 --> 00:35:05,380 qui est une référence à l'intention qui nous a conduit à cette activité. 474 00:35:05,380 --> 00:35:10,130 MainActivity appelle et donne des informations supplémentaires pour entraîner activité. 475 00:35:10,130 --> 00:35:14,070 activité Résultat regarde maintenant l'intention qui l'a conduit ici, 476 00:35:14,070 --> 00:35:23,540 et nous pouvons accéder au message que nous avons créé dans l'autre, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, et cette volonté d'auto-complétion pour moi. 478 00:35:26,370 --> 00:35:31,190 Et puis, souvenez-vous, la façon dont nous avons marqué que peu de données 479 00:35:31,190 --> 00:35:38,400 était en lui donnant ce domaine ici, cette chaîne publique, 480 00:35:38,400 --> 00:35:42,080 qui est la balise pour la chaîne nous réellement inclus. 481 00:35:42,080 --> 00:35:48,450 >> Si je dis MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 c'est juste là, et c'est un peu comme le nom du paramètre 483 00:35:52,200 --> 00:35:55,330 lorsque nous avons adopté le code de l'automate vers le modèle, 484 00:35:55,330 --> 00:35:57,680 lorsque nous dirions titre flèche quelque chose. 485 00:35:57,680 --> 00:36:01,140 C'est le même genre d'idée là. 486 00:36:01,140 --> 00:36:07,130 Maintenant, rappelez-vous ceci. 487 00:36:07,130 --> 00:36:12,230 Nous avions également cette auto créé ou généré automatiquement le code 488 00:36:12,230 --> 00:36:16,410 pour l'activité de résultat, qui comprend l'affichage de texte dans le milieu 489 00:36:16,410 --> 00:36:19,690 qui dit bonjour le monde. 490 00:36:19,690 --> 00:36:27,510 Nous pourrions éventuellement faire que plus grand. 491 00:36:27,510 --> 00:36:33,980 Faisons d'abord. 492 00:36:33,980 --> 00:36:39,550 Nous pourrions faire 40 densité de pixels indépendants. 493 00:36:39,550 --> 00:36:42,670 Voyons voir, que c'est super énorme. Ce sera bien. 494 00:36:42,670 --> 00:36:48,180 Et puis, pour faire référence à cet affichage de texte individu au sein de notre code 495 00:36:48,180 --> 00:36:53,890 nous aurons besoin de lui donner une identité, 496 00:36:53,890 --> 00:36:58,350 et pour ce faire, nous disons @ + id, ce qui signifie que nous assignons ID. 497 00:36:58,350 --> 00:37:02,480 Si nous venons de dire @ id il serait supposer que nous sommes référence à un ID qui existe déjà, 498 00:37:02,480 --> 00:37:07,760 et appelons-ce notre resultTextView. 499 00:37:07,760 --> 00:37:10,570 Et remarquez que dans XML il n'y a pas besoin de virgule ou rien. 500 00:37:10,570 --> 00:37:12,380 Tout est à l'intérieur de ces balises. 501 00:37:12,380 --> 00:37:15,530 Il est très similaire à HTML dans beaucoup de sens. 502 00:37:15,530 --> 00:37:22,760 >> Il faut un peu de temps pour s'y habituer, mais finalement vous vous sentirez très à l'aise avec elle. 503 00:37:22,760 --> 00:37:31,320 Nous allons mettre à jour le texte de notre vision du texte de résultat, 504 00:37:31,320 --> 00:37:35,650 et comme nous l'avons fait lorsque nous recevions ce champ d'édition de texte dans notre autre activité 505 00:37:35,650 --> 00:37:46,630 dans MainActivity Ici, nous allons également aussi- 506 00:37:46,630 --> 00:37:54,890 nous trouverons le point de vue de l'ID. 507 00:37:54,890 --> 00:37:59,640 Et R, au cas où je n'en ai pas parlé avant, c'est la référence à notre dossier de ressources, 508 00:37:59,640 --> 00:38:05,350 et puis ID est une référence à tout dans le dossier des ressources, tous les ID, 509 00:38:05,350 --> 00:38:10,060 et resultTextView. 510 00:38:10,060 --> 00:38:13,010 Et comme avant, resultTextView est un objet, 511 00:38:13,010 --> 00:38:15,780 ce qui signifie qu'il possède toutes ces propriétés qui lui sont associés. 512 00:38:15,780 --> 00:38:20,610 Lorsque nous utilisons gettext pour l'édition de texte pour ce champ de texte ou l'affichage de texte 513 00:38:20,610 --> 00:38:23,980 nous pouvons utiliser setText, 514 00:38:23,980 --> 00:38:26,960 et puis nous avons déjà trouvé le message de l'intention, 515 00:38:26,960 --> 00:38:35,760 si je peux dire, message, et ce sera effectivement mis le message. 516 00:38:35,760 --> 00:38:41,820 >> Il prend un moment pour lancer, et nous pourrons alors voir si oui ou non il se bloque, 517 00:38:41,820 --> 00:38:48,670 mais des questions sur ce processus là, ce genre d'interaction? 518 00:38:48,670 --> 00:38:51,490 À bien des égards, c'est simple. 519 00:38:51,490 --> 00:38:53,960 La raison pour laquelle je vais à travers quelque chose de relativement simple 520 00:38:53,960 --> 00:38:57,330 est, encore une fois, parce que vous obtenez de voir l'interaction entre la mise en page, 521 00:38:57,330 --> 00:38:59,520 le code source, comment vous faites référence à des choses 522 00:38:59,520 --> 00:39:07,680 et peut-être obtenir un peu d'exposition à la façon dont Java y travaille. 523 00:39:07,680 --> 00:39:16,500 Si fait, je tape quelque chose ici, comme ohai, puis je clique sur le bouton, 524 00:39:16,500 --> 00:39:22,260 il lance une nouvelle activité, et ce point de vue des textes indique ohai. 525 00:39:22,260 --> 00:39:27,640 C'est très simple, mais nous espérons que, après cet exemple 526 00:39:27,640 --> 00:39:32,310 vous sorte de voir comment cette interaction fonctionne, et maintenant ce désordre de fichiers 527 00:39:32,310 --> 00:39:36,870 sur le côté gauche de tous ces dossiers de projet, j'espère que vous savez où chercher maintenant. 528 00:39:36,870 --> 00:39:38,700 Ceci est votre zone de code source. 529 00:39:38,700 --> 00:39:41,760 >> Mise en page est vraiment la seule chose que vous aurez à composer avec jusqu'à ce que vous incluez images 530 00:39:41,760 --> 00:39:46,370 et les drawables ou autre, et les valeurs, qui comprendront des cordes, 531 00:39:46,370 --> 00:39:51,960 comme nous l'avons mentionné, puis styles est quelque chose qui est un peu comme CSS. 532 00:39:51,960 --> 00:39:56,410 Adressez-le quand vous voulez, mais jusqu'à ce que vous sentez à l'aise avec l'ajout flair supplémentaire 533 00:39:56,410 --> 00:40:02,520 à votre demande il n'y a pas besoin de s'inquiéter de trop. 534 00:40:02,520 --> 00:40:07,410 Juste pour conclure une autre chose que vous aurez certainement envie de comprendre- 535 00:40:07,410 --> 00:40:13,010 en supposant que vous souhaitez intégrer fonctionnalités intéressantes et vous épargner un peu plus de code- 536 00:40:13,010 --> 00:40:16,460 serait d'inclure les bibliothèques 3ème partie. 537 00:40:16,460 --> 00:40:19,840 Voici le petit gars Android avec le chapeau de Sherlock Holmes. 538 00:40:19,840 --> 00:40:23,040 Il s'agit d'une barre d'action Sherlock bibliothèque, 539 00:40:23,040 --> 00:40:25,390 ce qui signifie essentiellement que la barre d'action que vous avez vu plus tôt, 540 00:40:25,390 --> 00:40:29,590 qui est maintenant la norme dans Ice Cream Sandwich et Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 Si vous voulez apporter ce genre d'expérience utilisateur pour les utilisateurs de versions plus anciennes 542 00:40:33,100 --> 00:40:39,290 et vous sauver de se soucier de la façon dont l'utilisateur va naviguer 543 00:40:39,290 --> 00:40:42,490 sur les anciennes versions lorsque cette chose n'est pas là, vous pouvez inclure cette bibliothèque 544 00:40:42,490 --> 00:40:46,770 puis il vous suffit de référence plutôt que par défaut l'Android 545 00:40:46,770 --> 00:40:50,250 bibliothèques pour la barre d'action, vous référencez cette bibliothèque de support. 546 00:40:50,250 --> 00:40:53,090 >> Des choses comme Scoreloop, c'est génial si vous allez inclure un match. 547 00:40:53,090 --> 00:40:57,280 Il vous permet d'ajouter des classements et des réalisations de jeux. 548 00:40:57,280 --> 00:41:00,900 AdMob est une façon de mettre des annonces dans vos applications 549 00:41:00,900 --> 00:41:02,900 au cas où vous voulez faire un peu d'argent hors de lui. 550 00:41:02,900 --> 00:41:05,730 Bien sûr, il ya Facebook et Twitter pour y intégrant 551 00:41:05,730 --> 00:41:08,170 si vous voulez partager des choses facilement, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, de même, et Google Analytics est ce graphique regardant là-bas. 553 00:41:15,120 --> 00:41:19,070 Ce sera très important si vous voulez vraiment voir qui est en interaction 554 00:41:19,070 --> 00:41:25,800 avec votre application ou qui il est, comment ils interagissent, et cetera. 555 00:41:25,800 --> 00:41:30,650 Google, par défaut, vous en dit beaucoup de statistiques sur qui a installé votre application 556 00:41:30,650 --> 00:41:35,020 et ce que les téléphones qu'ils ont, les versions des systèmes d'exploitation dont ils disposent. 557 00:41:35,020 --> 00:41:38,080 Mais si vous voulez voir qui l'utilise sur une base quotidienne et comment ils l'utilisent 558 00:41:38,080 --> 00:41:42,860 alors vous aurez envie d'inclure une sorte de système de suivi comme ça. 559 00:41:42,860 --> 00:41:44,990 >> Lorsque vous êtes prêt à distribuer votre application 560 00:41:44,990 --> 00:41:46,930 Je n'ai pas besoin d'aller dans ce trop de profondeur. 561 00:41:46,930 --> 00:41:49,090 Cliquez sur le lien ici, Google Play. 562 00:41:49,090 --> 00:41:51,080 Il sert à être le marché Android. 563 00:41:51,080 --> 00:41:53,470 Ils rebaptisés tout avec Google Play, 564 00:41:53,470 --> 00:41:55,230 Alors maintenant, vous vous soumettez à cela. 565 00:41:55,230 --> 00:41:57,140 C'est très simple. 566 00:41:57,140 --> 00:42:01,070 Vous devez inclure une description, des captures d'écran. 567 00:42:01,070 --> 00:42:05,660 Comme je le disais, il n'y a pas de processus d'approbation comme iOS. 568 00:42:05,660 --> 00:42:07,270 Et où aller à partir d'ici? 569 00:42:07,270 --> 00:42:09,450 Je vous ai montré un exemple très simple. 570 00:42:09,450 --> 00:42:13,270 Espérons que si cela semble terriblement simples 571 00:42:13,270 --> 00:42:15,740 alors c'est probablement un bon signe. 572 00:42:15,740 --> 00:42:20,080 Si vous du tout senti un peu confus ou incertain au sujet exactement ce que je tapais 573 00:42:20,080 --> 00:42:26,160 c'est aussi très bien, mais d'ici d'aller sur Google Guides. 574 00:42:26,160 --> 00:42:28,330 C'est un excellent endroit pour commencer. 575 00:42:28,330 --> 00:42:31,460 Il va vous parler à travers ce qu'ils attendent en termes de conception de l'application, 576 00:42:31,460 --> 00:42:33,380 la façon dont les utilisateurs interagissent normalement avec elle. 577 00:42:33,380 --> 00:42:36,450 Il est beaucoup plus libre que sous forme iOS, je dirais, 578 00:42:36,450 --> 00:42:41,330 où il semble que les vues de table sont-je ne sais pas, c'est leur pain et leur beurre. 579 00:42:41,330 --> 00:42:44,690 Tout est une vue de tableau glisser vers le haut et vers le bas. 580 00:42:44,690 --> 00:42:48,160 Avec Android ils ont certainement encourager les gens à regarder à partir 581 00:42:48,160 --> 00:42:51,720 tout un tas de différentes perspectives. 582 00:42:51,720 --> 00:42:56,000 >> Lorsque vous incluez le kit de développement de logiciels dans ce ADT 583 00:42:56,000 --> 00:43:03,010 Par défaut, vous avez tout un tas d'exemples de projets dans Android. 584 00:43:03,010 --> 00:43:05,470 Ici, Android, exemple de projet Android. 585 00:43:05,470 --> 00:43:11,870 Si je clique sur cette question, alors je peux choisir une version pour laquelle l'échantillon projets s'appliquent. 586 00:43:11,870 --> 00:43:13,300 Il ya tout un tas de choses différentes ici. 587 00:43:13,300 --> 00:43:16,690 Il commence avec l'action bar compatibilité, 588 00:43:16,690 --> 00:43:24,610 Lecture de l'accéléromètre, sauvegarde et restauration, Bluetooth, constructeur de geste. 589 00:43:24,610 --> 00:43:28,930 JetBoy est un jeu d'échantillons qu'ils vous donnent, comme c'est LunarLander. 590 00:43:28,930 --> 00:43:31,250 Il ya tout un tas d'exemples d'applications ici, 591 00:43:31,250 --> 00:43:35,290 et ils sont tous ciblés sur les différents aspects de l'API Android, 592 00:43:35,290 --> 00:43:41,520 et l'idée est que lorsque vous faites votre demande 593 00:43:41,520 --> 00:43:44,110 vous n'avez pas besoin de tout savoir sur Android pour faire une application Android. 594 00:43:44,110 --> 00:43:47,300 Vous n'avez qu'à en apprendre davantage sur les pièces que vous allez réellement utiliser. 595 00:43:47,300 --> 00:43:49,340 Regardez ces bibliothèques d'échantillons. 596 00:43:49,340 --> 00:43:51,510 N'hésitez pas à copier et coller le code et le réappliquer. 597 00:43:51,510 --> 00:43:53,850 C'est une excellente chose à regarder le code plus difficile 598 00:43:53,850 --> 00:43:57,060 et d'essayer de le comprendre, ce qui est bien sûr pourquoi CS50 599 00:43:57,060 --> 00:44:01,510 nous vous donnons souvent de grandes quantités de code source. 600 00:44:01,510 --> 00:44:04,620 Regardez quelques-unes de ces si vous allez utiliser les bibliothèques similaires 601 00:44:04,620 --> 00:44:08,630 et ensuite l'appliquer à votre propre code. 602 00:44:08,630 --> 00:44:10,430 Et bien sûr, il ya des tutoriels. 603 00:44:10,430 --> 00:44:12,690 Rechercher des tutoriels. 604 00:44:12,690 --> 00:44:17,020 J'ai trouvé beaucoup de bons en ligne qui peut vous mettre au courant 605 00:44:17,020 --> 00:44:20,080 avec ce fragments sont vraiment et comment vous pouvez les utiliser. 606 00:44:20,080 --> 00:44:22,240 >> Certains de ces nouveaux conception des choses, comme des fragments, 607 00:44:22,240 --> 00:44:26,840 vous n'avez vraiment pas besoin d'être inquiet, sauf si vous faites une 608 00:44:26,840 --> 00:44:30,560 assez large dans le projet de portée. 609 00:44:30,560 --> 00:44:32,510 Ce sont des choses que Google cherche à éliminer po 610 00:44:32,510 --> 00:44:35,570 Stackoverflow est bien sûr de votre ami. 611 00:44:35,570 --> 00:44:37,930 J'espère que je vous ai vendu un peu sur Android, 612 00:44:37,930 --> 00:44:41,640 réaliser que c'est beaucoup plus facile d'approcher en termes de seulement la langue de codage. 613 00:44:41,640 --> 00:44:45,970 Java est, je dirais beaucoup plus facile à comprendre que l'Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android est de plus en plus je pense que beaucoup plus que iOS. 615 00:44:50,780 --> 00:44:54,890 Je veux dire, les données sont là aussi, en dehors de ce que je pense. 616 00:44:54,890 --> 00:44:56,920 Ça va être autour pendant un moment, 617 00:44:56,920 --> 00:45:00,880 et ils sont quelques années de retard en fonction de leurs cycles de conception, 618 00:45:00,880 --> 00:45:04,690 si c'est un peu compréhensible qu'ils travaillent encore à travers certains de ces 619 00:45:04,690 --> 00:45:09,080 des questions de cohérence, comme cette barre d'action est une chose nouvelle pour eux encore, 620 00:45:09,080 --> 00:45:16,010 sorte de créer une expérience utilisateur similaire à travers toutes leurs applications. 621 00:45:16,010 --> 00:45:20,650 Nous espérons que vous pouvez aller de l'avant maintenant et ouvrir Eclipse 622 00:45:20,650 --> 00:45:22,870 et faire vos propres applications Android. 623 00:45:22,870 --> 00:45:30,240 >> Est-ce que quelqu'un a des questions avant de conclure quelque chose? 624 00:45:30,240 --> 00:45:34,410 Je peux vous dire que la réponse est 42. 625 00:45:34,410 --> 00:45:41,990 Eh bien, heureux de codage tout le monde, et bonne chance. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]