1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [セミナー] [アンドロイドアプリ(今ジェリービーンズで!)] 2 00:00:02,610 --> 00:00:04,210 [ヨルダンJozwiak] [ハーバード大学] 3 00:00:04,210 --> 00:00:06,780 【これはCS50です。] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> みなさん、こんにちは、とAndroidアプリ(今ジェリービーンズと!)セミナーへようこそ。 5 00:00:11,600 --> 00:00:14,530 ので、それはもちろん、ジェリービーンズと今呼ばれています 6 00:00:14,530 --> 00:00:17,310 OSの最新バージョンはジェリービーンと呼ばれています。 7 00:00:17,310 --> 00:00:22,950 去年アンドロイドの話、これは基本的に同じセミナーをしたとき 8 00:00:22,950 --> 00:00:29,150 私は、ジンジャーブレッドのためのデザインパターンや文体の選択肢が提示されました 9 00:00:29,150 --> 00:00:31,250 アイスクリームサンドイッチは、一度に出ていたにもかかわらず、 10 00:00:31,250 --> 00:00:33,680 そしてこれは、我々は少し今後について話しますものです。 11 00:00:33,680 --> 00:00:35,720 Androidは、当然のことながら、断片化にはいくつかの問題を有している 12 00:00:35,720 --> 00:00:40,240 その最新のGoogleのオペレーティングシステムは、通常 13 00:00:40,240 --> 00:00:44,710 本当に残念なことに、潜在的に前年までのためにユーザーの間で一般的になるつもりはない。 14 00:00:44,710 --> 00:00:49,960 >> しかし、我々は、理由の多くの話だろうことを無視 15 00:00:49,960 --> 00:00:53,000 AndroidはiOSのよりもはるかに優れています。 16 00:00:53,000 --> 00:00:56,410 さて、我々は、Android対iOSの、について話します 17 00:00:56,410 --> 00:00:59,770 あなたは一つのスライドに設定慣れるでしょう方法いくつかの設計パラダイム、、 18 00:00:59,770 --> 00:01:03,410 これと去年の間に大きな違いは、私はちょうどしたいです 19 00:01:03,410 --> 00:01:06,860 と協力し、いくつかの概念的なものを通してズーム 20 00:01:06,860 --> 00:01:09,950 次に、オペレーティングシステムとは、本当に基本的な例に入る。 21 00:01:09,950 --> 00:01:13,730 実際には、Googleがあなたの最初のアプリを構築するために説明しているだけの例、 22 00:01:13,730 --> 00:01:17,070 と私たちは一緒にそれを通過すると単に説明します。 23 00:01:17,070 --> 00:01:22,100 >> 私はあなたの多くはCのみでコーディングされている知っているので、Javaがすでにあることを行っている 24 00:01:22,100 --> 00:01:27,220 異なる視点、そしてあなたがあなたの足が濡れるだろうこの方法 25 00:01:27,220 --> 00:01:31,540 そして、できればそれを少しより快適に感じる。 26 00:01:31,540 --> 00:01:35,330 簡単な概要は、Android対iOSの。 27 00:01:35,330 --> 00:01:39,200 アンドロイドでは、25ドルのこの一回の開発費は、そこ 28 00:01:39,200 --> 00:01:42,390 今年は100ドルの事なし。 29 00:01:42,390 --> 00:01:45,440 私はアプリを提出したい場合は、ことを意味して制限は、ありません 30 00:01:45,440 --> 00:01:51,560 私はちょうどそれを提出する、とiOSのためにそこにあるのような承認プロセスはありません。 31 00:01:51,560 --> 00:01:53,890 あなたは、Eclipseを使用してJavaで開発するために取得 32 00:01:53,890 --> 00:01:57,090 これは、クロスプラットフォームであるため、Macを持っている場合、それは、問題ではありません 33 00:01:57,090 --> 00:01:59,600 Windows、またはいくつかのLinuxマシン。 34 00:01:59,600 --> 00:02:03,730 もちろん、iOSのでは、MacでXCodeのを使用する必要があります 35 00:02:03,730 --> 00:02:06,930 とAndroidは、より多くの人々によって使用されている 36 00:02:06,930 --> 00:02:11,580 ので、あなたは、おそらくあなたのアプリケーションが視界のいくつかの並べ替えをしたい場合や、 37 00:02:11,580 --> 00:02:14,110 広告から少しのお金を稼ぐ 38 00:02:14,110 --> 00:02:17,450 おそらくAndroidの恩恵を受ける可能性が高くなります。 39 00:02:17,450 --> 00:02:20,630 >> と常にアンドロイドについて知られている一つのこと 40 00:02:20,630 --> 00:02:25,100 iOSのは非常に彼らの方法で固定され、一方、カスタマイズの極端な量です 41 00:02:25,100 --> 00:02:29,380 彼らはどんな小さな側面にわたってセキュリティと制御を維持できるように、 42 00:02:29,380 --> 00:02:34,180 彼らのOSおよび個々のアプリ内のデザイン。 43 00:02:34,180 --> 00:02:40,180 Androidは非常に自由形式であり、多くの非常に多くの可能性があります。 44 00:02:40,180 --> 00:02:42,530 さて、いくつかの設計パラダイム。 45 00:02:42,530 --> 00:02:49,600 iOSのは、錠剤やiPhoneとiPod触るを持って同じように、ここで注意してください 46 00:02:49,600 --> 00:02:53,840 サポートしたい場合、彼らはダースのデバイスのように、言って、サポートする必要が 47 00:02:53,840 --> 00:02:55,450 歴史的なものだけでなく、。 48 00:02:55,450 --> 00:02:58,410 アンドロイドを使用すると、数百のデバイスをサポートする必要があり、 49 00:02:58,410 --> 00:03:01,240 そう、Googleが実装しようとされていることがいくつかあります 50 00:03:01,240 --> 00:03:04,970 ユーザーエクスペリエンスは、もう少し一貫性を保つために、 51 00:03:04,970 --> 00:03:08,560 しかし、我々はまた、これは断片化の問題があることを意味するかについて話します 52 00:03:08,560 --> 00:03:11,700 あなたは常にサポートを意識する必要があること。 53 00:03:11,700 --> 00:03:16,140 断片化は、多数の異なるオペレーティングシステムがあることを意味 54 00:03:16,140 --> 00:03:20,330 同時に、Androidのすべてを実行しているハードウェアが異なるさまざまな携帯電話、 55 00:03:20,330 --> 00:03:29,680 ので、ここで、このグラフは、約6ヶ月間さかのぼる。 56 00:03:29,680 --> 00:03:36,460 うん、6ヶ月、あなたはどのように暗いバンドを見ることができます 57 00:03:36,460 --> 00:03:39,330 底部には夏に出てきたジェリービーン、、です 58 00:03:39,330 --> 00:03:42,970 そしてあなたは今、おそらく携帯電話の約2%はそれを持って見ることができます。 59 00:03:42,970 --> 00:03:45,520 >> アイスクリームサンドイッチは、年以上前に出てきた 60 00:03:45,520 --> 00:03:47,770 と携帯電話の4分の1がそれを持って。 61 00:03:47,770 --> 00:03:53,910 数年前から、OSのバージョンを使用している携帯電話の多くは、まだあります。 62 00:03:53,910 --> 00:03:57,820 Googleはユーザーエクスペリエンスを作るために何しようとしていることの一つ 63 00:03:57,820 --> 00:04:01,400 アプリ全体でより一貫多くは、ハニカムで始まるさ 64 00:04:01,400 --> 00:04:04,320 タブレットのバージョンがある場合、アイスクリームサンドイッチとジェリービーン、 65 00:04:04,320 --> 00:04:06,750 彼らは本当に、このアクションバーを使用することを強調しようとしている 66 00:04:06,750 --> 00:04:10,430 それは、あなたがここで一番上に見ることができるものである 67 00:04:10,430 --> 00:04:14,730 この小さな設定ボタンを含む右ここですべて、。 68 00:04:14,730 --> 00:04:16,079 これは、設計上の選択です。 69 00:04:16,079 --> 00:04:18,000 今、あなたが3ドットを見るたびに、それは、これをクリックして意味 70 00:04:18,000 --> 00:04:21,880 と設定のいくつかの並べ替えを持って、ドロップダウンメニューがあるでしょう。 71 00:04:21,880 --> 00:04:28,900 私は、このボタンをクリックしたので、これはのみ表示されます。 72 00:04:28,900 --> 00:04:32,040 これは、彼らがもう少し一貫性のあるアプリケーションを作るために使用しようとしているものです 73 00:04:32,040 --> 00:04:39,210 軒並みので、ユーザは、均一な経験のよりよい感覚を持っています。 74 00:04:39,210 --> 00:04:42,640 >> わかりましたので、場合にあなたはすでにこれを行っていないか、家で観ているとき 75 00:04:42,640 --> 00:04:50,210 その後、あなたのコーディング環境をセットアップするには、次の手順に従うことができます。 76 00:04:50,210 --> 00:04:52,630 それはここのウェブサイトに行くかかわるでしょう。 77 00:04:52,630 --> 00:04:56,260 あなたは、Android SDKをインストールするGoogleにすることができます 78 00:04:56,260 --> 00:04:59,130 とそこにいくつかの説明に従ってください。 79 00:04:59,130 --> 00:05:01,310 彼らはあなたのすべてを教えてください。 80 00:05:01,310 --> 00:05:05,160 彼らは、あなたがSDK、ダウンロードEclipseのクラシックバージョンをインストールしている 81 00:05:05,160 --> 00:05:07,450 もかかわらず、当然のことながら、我々はJavaでコーディングしている。 82 00:05:07,450 --> 00:05:12,190 彼らは、このADTは、Androidの開発ツールは、このいずれかをお勧めし、 83 00:05:12,190 --> 00:05:17,300 あなたのことができますあなたがEclipseにインストールするプラグインです 84 00:05:17,300 --> 00:05:20,550 Eclipse内アンドロイドはるか合理経験を持っています。 85 00:05:20,550 --> 00:05:24,070 それはあなたにいくつかのグラフィカル·ユーザー·インターフェースを提供します 86 00:05:24,070 --> 00:05:29,610 ビューを設計し、ためにそれはあなたに多くのサポートを提供します 87 00:05:29,610 --> 00:05:34,840 とエミュレータと実物のすべてのその種で起動する機能。 88 00:05:34,840 --> 00:05:36,090 アプリケーションフレームワーク。 89 00:05:36,090 --> 00:05:41,590 >> 私は、アンドロイド内のプロジェクトがどのように構成されるかについてお話したいと思います 90 00:05:41,590 --> 00:05:44,830 そして我々は簡単な例に入り、そして、できればよ 91 00:05:44,830 --> 00:05:48,820 あなたは、任意の時点で質問をし、それの終わりまで快適に感じることができます。 92 00:05:48,820 --> 00:05:50,090 我々は最初のいくつかの専門用語があります。 93 00:05:50,090 --> 00:05:55,330 活動には、アプリを起動したときに表示画面のようなものです。 94 00:05:55,330 --> 00:05:57,840 全体の経験は、活動そのものです 95 00:05:57,840 --> 00:06:00,790 ので、画面やビューとして考えることができ 96 00:06:00,790 --> 00:06:04,540 しかし、それは実際にそれのソースコード側です。 97 00:06:04,540 --> 00:06:12,680 我々はまだそれをビューの実際のインターフェース部を呼び出します。 98 00:06:12,680 --> 00:06:17,230 それはPSET 7で我々は、コントローラと、ビューを持っていたどのようなソートのだ。 99 00:06:17,230 --> 00:06:20,690 活性は、多かれ少なかれコントローラである 100 00:06:20,690 --> 00:06:23,360 とビューは、我々はXMLの面でやっていることです。 101 00:06:23,360 --> 00:06:25,260 それは、そのアクティビティに関連付けられています。 102 00:06:25,260 --> 00:06:29,340 フラグメントは今後アイスクリームサンドイッチに実装何かされています。 103 00:06:29,340 --> 00:06:36,380 それはちょうどビューの部品を取るのアイデアやアクティビティの 104 00:06:36,380 --> 00:06:39,990 我々はできるようにして別々の領域に分けて 105 00:06:39,990 --> 00:06:45,030 これらの多くの異なるデバイスのための我々のコードがより使いやすく 106 00:06:45,030 --> 00:06:51,890 我々はサポートする必要があり、それだけでしようとする方法だという 107 00:06:51,890 --> 00:06:54,290 また、より多くのコードを考慮。 108 00:06:54,290 --> 00:07:01,090 サービスは、潜在的に音楽やナビゲーションの方向を弾くような背景のものです。 109 00:07:01,090 --> 00:07:05,640 コンテンツプロバイダは、これらは、オペレーティングシステム内のAPIである 110 00:07:05,640 --> 00:07:09,070 つまり、このような連絡先情報などの共有データにアクセスすることができ 111 00:07:09,070 --> 00:07:12,790 その後意図は、我々が起動するときに我々が使用しますものです 112 00:07:12,790 --> 00:07:17,210 私たちの現在の活動から新しい活動。 113 00:07:17,210 --> 00:07:20,980 >> こんにちは、Androidは、これは我々がの話だろうというプロジェクトになるだろう。 114 00:07:20,980 --> 00:07:25,410 私は実際にあなたのためにそれをやるし、我々は、我々はボタンをクリックする事をやる 115 00:07:25,410 --> 00:07:27,650 いくつかのテキストと新しい活動を立ち上げた。 116 00:07:27,650 --> 00:07:30,110 非常に簡単ですが、私が通って行きたい 117 00:07:30,110 --> 00:07:34,480 何がこのようなプロジェクトに入ります。 118 00:07:34,480 --> 00:07:39,260 新しいプロジェクトを作るときには、Eclipse内で表示されます 119 00:07:39,260 --> 00:07:41,900 こんにちは、アンドロイドと呼ばれるこのプロジェクトは、そこだ。 120 00:07:41,900 --> 00:07:43,470 その後、ここにフォルダの全体の束があります。 121 00:07:43,470 --> 00:07:46,760 あなたは本当にに関係しているものは、ソースフォルダです 122 00:07:46,760 --> 00:07:54,540 リソースフォルダ、解像度、およびライブラリのためにある程度のlibsフォルダ。 123 00:07:54,540 --> 00:08:00,070 そして、ちょうど私たちはそれと同じページにしている 124 00:08:00,070 --> 00:08:03,240 あなたは、新しいプロジェクトを作成した場合、 125 00:08:03,240 --> 00:08:08,270 私はそれがHelloAndroid呼び出したいので、もしあなたが、ここでこの権利を行うことができます 126 00:08:08,270 --> 00:08:11,100 そして、それは自動的に私たちのための情報の全体の束を行います。 127 00:08:11,100 --> 00:08:14,110 パッケージ名は、一意の識別子であるために仮定されて 128 00:08:14,110 --> 00:08:16,710 あなたが1つを持っていた場合には、通常、Webサイトに関連付けられていることになる。 129 00:08:16,710 --> 00:08:24,430 >> 例えば、私はこのnet.cs50.helloandroidを呼び出します。 130 00:08:24,430 --> 00:08:30,070 そして、私はすでに一度このプロジェクトを行っている。 131 00:08:30,070 --> 00:08:40,059 さて、申し訳ありません。それHelloCS50呼び出してみましょう。 132 00:08:40,059 --> 00:08:42,929 そして、それは我々が作りたいんアイコンのどのようなようなものを聞いてきます。 133 00:08:42,929 --> 00:08:48,840 これは、Androidの開発者ツールのインタフェースのすべてです。 134 00:08:48,840 --> 00:08:53,350 我々は、Eclipseにプラグインを追加したので、のようなものを選ぶことができます 135 00:08:53,350 --> 00:08:58,320 何のアイコン我々はしたい、と私たちが望む場合には、その深さに行くだろう。 136 00:08:58,320 --> 00:09:04,360 しかし、最終的には、単に、プロジェクトを作る 137 00:09:04,360 --> 00:09:07,040 すべてがここに表示されます。 138 00:09:07,040 --> 00:09:10,030 私は、他の画面に示したように、 139 00:09:10,030 --> 00:09:14,070 私たちは、ソースフォルダを持っている、と私は、すべてこれはすぐに何を意味するのかについて話します 140 00:09:14,070 --> 00:09:19,090 しかし、あなたはすぐにそれがHelloCS50画面に私たちを取ることがわかります。 141 00:09:19,090 --> 00:09:24,690 テキストとテキストフ​​ィールドのレイアウトを追加するためこっちにいくつかのボタンがあります。 142 00:09:24,690 --> 00:09:28,910 これは、XCodeのようなソートのだが、残念ながらありません非常に合理化されたとして。 143 00:09:28,910 --> 00:09:37,790 しかしクリップは、これを行うため、特にあなたの友人とADTなります。 144 00:09:37,790 --> 00:09:40,920 >> さて、ソースフォルダはどこにある 145 00:09:40,920 --> 00:09:43,820 Javaファイルは保持され、これは実際にあなたのプログラムの立ち上げであるされています。 146 00:09:43,820 --> 00:09:45,990 それは基本的にコントローラのようなものだ。 147 00:09:45,990 --> 00:09:49,020 我々は、画面レイアウトをしておこうどこにリソースフォルダまたは解像度が、である 148 00:09:49,020 --> 00:09:54,110 画像、音声、テキスト、アニメーション、他のすべて、LIBS、明らかに、ライブラリ。 149 00:09:54,110 --> 00:10:01,700 とマニフェスト、それはAndroidシステムが知っている方法です 150 00:10:01,700 --> 00:10:03,130 あなたのアプリケーションとやり取りする方法。 151 00:10:03,130 --> 00:10:07,980 これは、権限について、それを伝え、どのような活動は、実際に実行されます。 152 00:10:07,980 --> 00:10:12,350 それはあなたのアプリケーションを実行するために必要なすべての重要な情報です。 153 00:10:12,350 --> 00:10:17,990 ソースフォルダは-場合は右ここで見ることができるように我々はそれを展開します。 154 00:10:17,990 --> 00:10:23,920 コー​​ドがデフォルトのコードである、これはルックだろうと例。 155 00:10:23,920 --> 00:10:27,930 我々はそれを呼ばれるので、MainActivity。 156 00:10:27,930 --> 00:10:33,230 デフォルトでは、我々は、この活動がロードと呼ばれる関数である、oncreateメソッドの呼び出しを得る 157 00:10:33,230 --> 00:10:37,150 のでoncreateメソッドの呼び出し(savedInstanceState)を呼び出したい。 158 00:10:37,150 --> 00:10:40,440 これは、情報の任意のビットを復元します 159 00:10:40,440 --> 00:10:44,910 場合には、アプリは一時停止されました。 160 00:10:44,910 --> 00:10:48,790 >> あなたが見ることができ、全体のアクティビティのライフサイクルのチャートがあります 161 00:10:48,790 --> 00:10:50,380 あなたはそれの深さでもう少し得るとき、 162 00:10:50,380 --> 00:10:56,210 が、コードの中で最も重要な行このsetContentView機能があります 163 00:10:56,210 --> 00:11:00,290 これは、レイアウトのためにリソース·ファイルをロードします。 164 00:11:00,290 --> 00:11:03,590 その後、基本的にやっていることをここでOnCreateイベント、それは言っている 165 00:11:03,590 --> 00:11:07,010 私はこの活動を作成するとき、私は、このレイアウトをロードする。 166 00:11:07,010 --> 00:11:12,030 そして我々はそのレイアウトが第二に何があるかについて話します。 167 00:11:12,030 --> 00:11:16,230 我々はここで、それはまさにこのようになっていることを起動した場合、 168 00:11:16,230 --> 00:11:22,880 、デフォルトで、我々はこれをやっているので、日食とADTは私たちのためにそれをやって 169 00:11:22,880 --> 00:11:28,210 これは、私たちのために作成されているすべての定型コードです 170 00:11:28,210 --> 00:11:34,630 そして我々は上に移動すると、私たちが好きなように物事を変更することができます。 171 00:11:34,630 --> 00:11:38,190 私が言ったようにリソースフォルダ、、我々はすべてのレイアウトを保持する場所である、 172 00:11:38,190 --> 00:11:41,150 の任意の並べ替えの観点ドロウアブル画像 - 173 00:11:41,150 --> 00:11:46,360 それらはドローアブルと、サウンドファイル、メニューと呼ばれています。 174 00:11:46,360 --> 00:11:51,170 それは素敵な並べ替えの方法でXMLの全体の束の方法です。 175 00:11:51,170 --> 00:11:58,030 あなたが見ることができるように、あります。HDPI、LDPI、MDPIとxhdpiフォルダはドロウアブルため。 176 00:11:58,030 --> 00:12:02,220 これらは、異なる画面密度、インチあたりので高密度ピクセルであり、 177 00:12:02,220 --> 00:12:05,710 低密度、中密度、余分な高密度。 178 00:12:05,710 --> 00:12:08,900 >> これは再び、ですので、我々はすべてのこれらの異なるデバイスをサポートすることができます 179 00:12:08,900 --> 00:12:15,100 理想的には、それぞれ異なる解像度ごとに異なる​​イメージを持つことになります。 180 00:12:15,100 --> 00:12:20,740 我々はさまざまな活動に使用されるすべての異なるレイアウトを含めるどこレイアウトです。 181 00:12:20,740 --> 00:12:24,150 それらはまた、フラグメントレイアウトを含むことができる 182 00:12:24,150 --> 00:12:26,670 これは、基本的には部分的な活動を意味しています。 183 00:12:26,670 --> 00:12:29,610 あなたは携帯電話を回転させるたびに、のようなクールな何かをしたい場合 184 00:12:29,610 --> 00:12:33,900 あなたは、それはあなたが別のフォルダとしてレイアウト風景を行うことができます異なるレイアウトを持つようにしたい 185 00:12:33,900 --> 00:12:39,000 そしてAndroidは自動的に、リソースフォルダ内のこれらの規則の全体の束を持っている 186 00:12:39,000 --> 00:12:44,690 ので、それは、携帯電話の現在の設定に基づいて、別のフォルダを見て知っているだろう 187 00:12:44,690 --> 00:12:46,740 あなたが使用しているハードウェアのどのような。 188 00:12:46,740 --> 00:12:52,350 同様に、ここで、この値が-V11と値-V14 189 00:12:52,350 --> 00:12:55,460 およびデフォルト値は、これがあるフォルダの、 190 00:12:55,460 --> 00:13:01,730 よく、単独で値が、これは、オペレーティングシステムのすべてのバージョン間でのデフォルト値になります。 191 00:13:01,730 --> 00:13:06,390 一方、V11とV14は、ハニカムに対応 192 00:13:06,390 --> 00:13:08,780 とアイスクリームサンドイッチ、それぞれ。 193 00:13:08,780 --> 00:13:12,800 繰り返しますが、これらは、これらのフォルダ内に、別の文字列である方法です 194 00:13:12,800 --> 00:13:17,550 そしてスタイルは、ので、あなたのアプリの外観をカスタマイズすることができます 195 00:13:17,550 --> 00:13:22,660 または潜在的にも、その機能性、それはおそらく悪い考えだろうが、 196 00:13:22,660 --> 00:13:25,890 オペレーティングシステムのバージョンに基づいて。 197 00:13:25,890 --> 00:13:28,760 >> そして、私はここに、このすべてについて話しました。 198 00:13:28,760 --> 00:13:35,870 繰り返しになりますが、描画可能な、生の、レイアウト、値。 199 00:13:35,870 --> 00:13:41,380 デフォルトは、我々は今、こんにちはAndroidやこんにちはCS50に行けば 200 00:13:41,380 --> 00:13:43,310 それだけでこのようになります。 201 00:13:43,310 --> 00:13:45,800 これは、世界こんにちはと言うだろう。 202 00:13:45,800 --> 00:13:58,430 あなたは、Androidのテキストと右ここに見ることができるように 203 00:13:58,430 --> 00:14:04,420 基本的にはラベルであるこのテキストビューのテキスト、 204 00:14:04,420 --> 00:14:06,900 我々はiOSのそれを呼ぶようなものです。 205 00:14:06,900 --> 00:14:11,580 これは変な記法@文字列/ hello_worldのを持っています。 206 00:14:11,580 --> 00:14:16,200 これは、そうすることができ、我々はすべての文字列を抽出しようと我々です 207 00:14:16,200 --> 00:14:19,740 アンドロイドでハードコードされた文字列のすべての別のフォルダに、 208 00:14:19,740 --> 00:14:23,610 これはvalues​​.stringsであることを起こる。 209 00:14:23,610 --> 00:14:29,300 我々はここで見れば、我々はここに保存されたハードコーディングされた文字列を持っていることを見ることができます 210 00:14:29,300 --> 00:14:33,910 こんにちは世界のため、そしてそれはこんにちは世界と呼ばれ、これは一種のであるだ 211 00:14:33,910 --> 00:14:39,230 必要な多のプラットフォーム間で共通のデザイン決定 212 00:14:39,230 --> 00:14:41,780 文字列は、我々は潜在的に変更できるようにすることの一種である。 213 00:14:41,780 --> 00:14:48,050 私たちは、XMLで私たちのソースコードファイルのFを制御する必要はありません。 214 00:14:48,050 --> 00:14:50,760 我々はチャンスを得るたびに、これを変更できるようにしたい。 215 00:14:50,760 --> 00:14:53,640 >> このXMLファイルは、strings.xmlには、抽出する方法である 216 00:14:53,640 --> 00:14:56,710 そうでなければ私たちのレイアウトリソースになり、ハードコーディングされた文字列 217 00:14:56,710 --> 00:15:03,530 または当社のソースコードである。 218 00:15:03,530 --> 00:15:08,190 我々はアプリケーションに関するこの重要な情報を保持する場所マニフェストです。 219 00:15:08,190 --> 00:15:11,050 それは、パッケージ名が含まれています。それはユニークな識別子である必要があります。 220 00:15:11,050 --> 00:15:16,020 iOSのアプリケーションの名前のためのApp Storeとは異なり、 221 00:15:16,020 --> 00:15:19,980 一意である必要はありません、あなたは、実際にアプリケーションの名前を変更することができます 222 00:15:19,980 --> 00:15:23,570 あなたは、私が怒っている鳥から始めそうだとすれば、それを提出した後、 223 00:15:23,570 --> 00:15:26,840 そして私はアップデートを行い、私は新しいバージョンをリリースしたくない 224 00:15:26,840 --> 00:15:34,230 私は、同じリリースサイクルでいる間、私は2それを怒っている鳥を呼び出すことができると思います。 225 00:15:34,230 --> 00:15:36,780 それはちょうど更新として表示される。 226 00:15:36,780 --> 00:15:39,790 ユニークでなければならない唯一のものは、このパッケージ名です 227 00:15:39,790 --> 00:15:41,280 いるではない多くの人々が表示されます。 228 00:15:41,280 --> 00:15:44,680 さて、あなたはソースコードを見ていた場合にのみ参照してくださいねまたはエラーのいくつかの並べ替えがある場合。 229 00:15:44,680 --> 00:15:47,580 コンポーネントには、活動を含めるので、宣言する必要が 230 00:15:47,580 --> 00:15:49,070 我々が使用する活動の任意の並べ替え。 231 00:15:49,070 --> 00:15:53,430 これは事の許可のソートです。 232 00:15:53,460 --> 00:15:58,150 >> Androidは、この厳格なアプリケーションプロセスを持っていないので 233 00:15:58,150 --> 00:16:02,210 代わりにアプリを提出するために、それらは単に、すべてのアクセス許可のオフに基づいて行う 234 00:16:02,210 --> 00:16:04,300 およびマニフェストで物事を宣言。 235 00:16:04,300 --> 00:16:06,380 SDKバージョンも重要である。 236 00:16:06,380 --> 00:16:10,330 私たちは、SDKの最小バージョンは何かとしての使用を設定することができます。 237 00:16:10,330 --> 00:16:16,010 明らかに、あなたは、コードを作成したい 238 00:16:16,010 --> 00:16:18,570 新しいオペレーティングシステムのためにとデザイン。 239 00:16:18,570 --> 00:16:20,840 おそらく最新ではない、そうでないかもしれないジェリービーン。 240 00:16:20,840 --> 00:16:23,610 たぶん、あなたは、主にアイスクリームサンドイッチのために設計したい 241 00:16:23,610 --> 00:16:27,120 彼らは、設計上の決定の面でほとんど同じですが 242 00:16:27,120 --> 00:16:30,550 実際のライブラリやAPI。 243 00:16:30,550 --> 00:16:36,250 むしろより人々を持っている 244 00:16:36,250 --> 00:16:40,050 オリジナルのAndroidのバージョンのようなドーナツウェイバック時·オブ 245 00:16:40,050 --> 00:16:43,420 まだ言うし、アプリケーションをダウンロードし、しようとする使用することが起こる人 246 00:16:43,420 --> 00:16:46,160 それはあなたが最低限のバージョンを設定することができます自分の携帯電話では動作しません 247 00:16:46,160 --> 00:16:48,620 そしてそれは、ジンジャーブレッドやアイスクリームサンドイッチであるた 248 00:16:48,620 --> 00:16:53,300 あなたが快適提出のを感じたり、何でも。 249 00:16:53,300 --> 00:16:57,170 そして、これはマニフェストの例です。我々は少しで実際のものを見ることができます。 250 00:16:57,170 --> 00:17:00,900 >> さて、私達はちょうど今、デモを進めるでしょう。 251 00:17:00,900 --> 00:17:08,900 あなたGoogleのAndroidがそのようなあなたの最初のアプリか何かを構築する場合、これはデモです。 252 00:17:08,900 --> 00:17:12,089 我々はそこで起こっているすべてのものを通して行くよ、 253 00:17:12,089 --> 00:17:17,690 と申し訳ありませんが、ちょうどここに任意の範囲まで、Javaを知っているの参考のため? 254 00:17:17,690 --> 00:17:28,310 わかりましたので、Javaはほとんどの人がCS50から出てくるための新しいコーディング言語です。 255 00:17:28,310 --> 00:17:31,850 簡単に言えば、それはここで言うことを何度も何度も行くために、 256 00:17:31,850 --> 00:17:35,580 私たちがやりたいことは、このHello Worldアプリケーションを調整するのではなく、ある 257 00:17:35,580 --> 00:17:38,620 それがないのは、それが起動しているとのHello Worldは言う 258 00:17:38,620 --> 00:17:43,580 それがアクティビティ名だから、それが一番上にこんにちはCS50言う 259 00:17:43,580 --> 00:17:47,190 我々は、テキストフ​​ィールドとボタンを作ることを試みるつもりだ 260 00:17:47,190 --> 00:17:50,680 私たちは、このボタンを押したときに、それがテキストを取ること 261 00:17:50,680 --> 00:17:53,660 テキストフ​​ィールドから、新たな活動を立ち上げ、それが言うだろう 262 00:17:53,660 --> 00:17:58,380 どんなそのテキストは、活動に言うと、これは比較的簡単です。 263 00:17:58,380 --> 00:18:00,650 それは非常に興味深いではありません。あなたは、このような任意のアプリケーションをリリースするのは嫌だ。 264 00:18:00,650 --> 00:18:03,880 しかし、それはいくつかの設計上の重要な事柄を示しています。 265 00:18:03,880 --> 00:18:07,030 >> 我々は、レイアウトファイルで、マニフェストと対話する必要があります 266 00:18:07,030 --> 00:18:12,440 ソースコードを、あなたは別のからつのアクティビティを起動するかを見ることができます。 267 00:18:19,740 --> 00:18:23,060 我々は、我々の最初のアクティビティのレイアウトから始めましょう 268 00:18:23,060 --> 00:18:27,320 私はそれが小さいのようなものだ知っている、 269 00:18:27,320 --> 00:18:32,660 しかし、あなたが今見ることができるように、それはすべてが、それは我々が作成した当社のロゴを持っている 270 00:18:32,660 --> 00:18:36,310 アクティビティ名、それが中心に世界のこんにちはと言います。 271 00:18:36,310 --> 00:18:40,400 代わりに、私は最初に、リニアレイアウトにこれを作るつもりです 272 00:18:40,400 --> 00:18:42,350 相対的なレイアウト、これらはすべてのものである 273 00:18:42,350 --> 00:18:45,870 あなたには、ルックアップやレイアウトの面でいくつかの点で上に行く価値がある可能性があります。 274 00:18:45,870 --> 00:18:47,310 これは、HTMLのようにたくさんあり​​ます。 275 00:18:47,310 --> 00:18:52,640 我々は、それが、プログラム的な意味の面で知っておく価値は本当にありませんだと述べている 276 00:18:52,640 --> 00:18:55,840 しかし、あなたがコントロールすることができますので、さまざまなレイアウトがあります 277 00:18:55,840 --> 00:18:57,970 それはスタイルの面でだけCSSのようなものだ。 278 00:18:57,970 --> 00:19:01,590 >> ちょうどここに美学の面で起こってたくさん、あります 279 00:19:01,590 --> 00:19:08,930 そして、ええ、それは、学習の価値だが、それはあなたが調べるべき事のようなものだ 280 00:19:08,930 --> 00:19:11,810 あなたが行くとあなたが何か新しいものを必要とするようにあなたが感じるように。 281 00:19:11,810 --> 00:19:17,030 とオフを開始するために、少なくとも私は、ここでADTツールのいくつかを利用することができます。 282 00:19:17,030 --> 00:19:21,930 私は、テキストフ​​ィールドを作ってあげる、私はボタンを作ります。 283 00:19:21,930 --> 00:19:24,100 隣同士に右それらを置く。 284 00:19:24,100 --> 00:19:28,200 彼らはすでに適切にリサイズ。 285 00:19:28,200 --> 00:19:31,320 申し訳ありませんが、再び、、リニアレイアウトと相対的なレイアウトの違いに戻ってくる 286 00:19:31,320 --> 00:19:34,830 リニアレイアウトはもう少し機能を提供 287 00:19:34,830 --> 00:19:38,720 空間を満たすと確認しながらの面で 288 00:19:38,720 --> 00:19:42,790 私たちは、水平または垂直のものを配置します。 289 00:19:42,790 --> 00:19:46,130 リニアレイアウトと相対的なレイアウトの大きな違い 290 00:19:46,130 --> 00:19:50,250 相対配置位置は、他のビューに対する相対すべてです 291 00:19:50,250 --> 00:19:52,630 そしてそれについての良いところは、それは描画に時間がかかりませんということです 292 00:19:52,630 --> 00:19:56,120 オペレーティングシステムは、すべてのコードを見て、これが行くと言うので 293 00:19:56,120 --> 00:19:58,270 このここ、ここからの相対。 294 00:19:58,270 --> 00:20:03,170 それは、それが入れ子になったリニアレイアウトの全体の束よりも少ない測定を行うことを意味し 295 00:20:03,170 --> 00:20:06,840 その私は物事がここに垂直に行きたいと思った場合、私がしなければならないだろう。 296 00:20:06,840 --> 00:20:10,510 >> 私はすでに水平に行くいくつかのものを持っているので、私は別のリニアレイアウトを必要とするでしょう 297 00:20:10,510 --> 00:20:14,560 垂直巣、それらを、私は相対的なレイアウトをしていた場合、私は言うことができるまで 298 00:20:14,560 --> 00:20:18,140 これは右と下に、これらのものには、左にこれを​​維持する。 299 00:20:18,140 --> 00:20:21,850 しかし、私は彼らが今埋めたいので、私は、線形のレイアウトを使用するつもりです 300 00:20:21,850 --> 00:20:24,510 そしてあなたは私たちのために、それはすでにこれらの多くのものを見ることができません。 301 00:20:24,510 --> 00:20:28,890 すべてのビューは、幅と高さの特性を持つ必要が 302 00:20:28,890 --> 00:20:33,410 これは1の重量を有するように発生し、これが1の重量を有している 303 00:20:33,410 --> 00:20:36,050 ので、全体の空間を満たすこと。 304 00:20:36,050 --> 00:20:38,460 しかし、幅と高さが最も重要です。 305 00:20:38,460 --> 00:20:45,880 右ここにこのIDフィールドは、実際のレイアウト内には重要ではありません 306 00:20:45,880 --> 00:20:49,060 我々は相対的なレイアウトを使用して、我々が参照することができますと言っている限り、 307 00:20:49,060 --> 00:20:52,990 別のを参考に1つのビュー位置。 308 00:20:52,990 --> 00:20:56,170 我々は相対的なレイアウトを持っていた場合、我々はこのいずれかの下にこれを置くと言うことができる 309 00:20:56,170 --> 00:20:59,390 またはこのIDの上ですが、このIDは重要になるだろう 310 00:20:59,390 --> 00:21:01,660 我々が参照できるので、我々は我々のコードでそれを使用しているとき 311 00:21:01,660 --> 00:21:05,610 このようにこれらの個々の景色を眺めることができます。 312 00:21:05,610 --> 00:21:10,350 >> そして、あなたは、おそらくPSET 7で見たものですタグrequestFocusをを見ることができます。 313 00:21:10,350 --> 00:21:15,370 フィールドの1つのためのオートフォーカスタグまたはそれらの線に沿って何かがあった。 314 00:21:15,370 --> 00:21:22,100 そして一つのことは、もちろん、私たちは、単にHTMLのように行うことができます 315 00:21:22,100 --> 00:21:25,660 と通知がADTについての素晴らしいことの一つは、それがここに自動的に補完していることである。 316 00:21:25,660 --> 00:21:29,930 それは、Xcodeでやったが、それはそれにもかかわらず、ない、そうでないかもしれないようにきれいに 317 00:21:29,930 --> 00:21:32,860 と私たちはヒントを言うし、それを文字列のいくつかの並べ替えを与えることができる 318 00:21:32,860 --> 00:21:37,070 、メッセージを書き込むように 319 00:21:37,070 --> 00:21:41,300 私はそれを瞬間を与える場合や、また、私はここで少しエラーが出ていることがわかり 320 00:21:41,300 --> 00:21:44,610 我々はこのために文字列リソースを使用する必要があることを言って、 321 00:21:44,610 --> 00:21:48,820 もしそうなら、私はそれが私のためにハードワークの一部を任せる 322 00:21:48,820 --> 00:21:57,320 私は屈折AndroidとエキスAndroidの文字列を実行する、この文字列を選択することができます。 323 00:21:57,320 --> 00:22:00,570 私はそれを、その名前を与えることができ、メッセージを書く 324 00:22:00,570 --> 00:22:04,180 とどのようなそれが今それはハードコードされた文字列を置き換えられなかった 325 00:22:04,180 --> 00:22:07,980 文字列のxmlファイル内の文字列を参照すると、 326 00:22:07,980 --> 00:22:10,200 これは、これはここにある今を意味します。 327 00:22:10,200 --> 00:22:15,560 >> そして私は、この時点で少し些細など余分な作業と思われることを知っている 328 00:22:15,560 --> 00:22:17,840 しかし、あなたは、物事の全体の束を持っているときに、文字列の全体の束、 329 00:22:17,840 --> 00:22:20,750 それは本当に重要です、特にローカライズ 330 00:22:20,750 --> 00:22:26,920 私は前述のように、Androidは非常に世界的に使用されるオペレーティングシステムであるため、 331 00:22:26,920 --> 00:22:35,950 あなたは、単に値をアンまたは値-SPを行うことができ 332 00:22:35,950 --> 00:22:44,320 英語やスペイン語や他の言語のためか何か。 333 00:22:44,320 --> 00:22:50,210 そして、あなたはおそらくまだこの経験を持っていなかった 334 00:22:50,210 --> 00:22:53,030 私たちは、Webプログラミングの面ではるかにJavaScriptを使用しませんでしたので、 335 00:22:53,030 --> 00:22:56,850 我々はまた、ボタンのonclickと呼ばれるこの分野を行うことができます 336 00:22:56,850 --> 00:23:02,350 そしてこれは私たちのレイアウト内参照する方法です 337 00:23:02,350 --> 00:23:06,570 私たちは、ソースコードで呼び出される特定の機能を望んでいる。 338 00:23:06,570 --> 00:23:09,420 私は、これのsendMessageを呼び出すつもりだ 339 00:23:09,420 --> 00:23:13,390 そしてここでの主な活動を意味するこの作業を行うために 340 00:23:13,390 --> 00:23:19,180 私は公開されている関数を作成する必要があります 341 00:23:19,180 --> 00:23:22,250 それはレイアウトによってアクセスすることができる。 342 00:23:22,250 --> 00:23:25,930 あなたはそれが何かを返すようにしたくないので、それは無効です。 343 00:23:25,930 --> 00:23:37,760 、我々はそれのsendMessage呼ぶことにします、そして、それは見方をし 344 00:23:37,760 --> 00:23:43,690 これは、我々はこの方法を固定できるように文脈のようなものです 345 00:23:43,690 --> 00:23:47,160 我々はそれを実行している個々のビューに。 346 00:23:47,160 --> 00:23:50,090 >> そして私は、あなたが気づいウェル場合、あなたは気づいていないだろうかわからない 347 00:23:50,090 --> 00:24:02,370 しかしこの時点で右ここ 348 00:24:02,370 --> 00:24:06,930 このビューは、まだ含まれていないタイプです 349 00:24:06,930 --> 00:24:10,630 そしてもちろん、あなたがすべての種類を含めないことについてCS50から知っている。 350 00:24:10,630 --> 00:24:13,120 EclipseのようなIDEの良いところは、ということです 351 00:24:13,120 --> 00:24:17,520 それは小さな赤い波線で下線れる型を含めることを忘れた場合 352 00:24:17,520 --> 00:24:19,680 その後あなたのビューをインポートするためのオプションを与える。 353 00:24:19,680 --> 00:24:23,130 制御シフトOであり、それがインポートされます行うための簡単​​な方法 354 00:24:23,130 --> 00:24:27,070 それはする必要があるすべてのファイルを。 355 00:24:27,070 --> 00:24:33,670 今、私たちは、この関数のsendMessageを持っていることを、 356 00:24:33,670 --> 00:24:46,560 MainActivityから新しいアクティビティにメッセージを送信しようとしている、 357 00:24:46,560 --> 00:24:55,230 我々は、このいずれかから新しいアクティビティを起動するための意図を使用する必要があるとしている 358 00:24:55,230 --> 00:25:02,240 従って我々は、おそらくグローバル定数または、特に公共の定数を作成したいと思う 359 00:25:02,240 --> 00:25:06,240 それは、私たちは、文字列を参照するつもりだ方法を知って役立つ 360 00:25:06,240 --> 00:25:09,090 ので、我々は意図を作成するときに我々だけで、新しいアクティビティを呼び出していない 361 00:25:09,090 --> 00:25:11,520 しかし、我々はまた、それを情報の束を与えることができます。 362 00:25:11,520 --> 00:25:14,720 バンドルには、実際にAndroidが使用している用語です 363 00:25:14,720 --> 00:25:21,470 それは、それそれは非常に洗練されたデータ型にすることはできません余分なデータを与える言い方だ 364 00:25:21,470 --> 00:25:24,510 しかし、我々は間違いなくブール値または文字列または整数を含めることができます。 365 00:25:24,510 --> 00:25:29,750 そういったこと。 366 00:25:29,750 --> 00:25:34,230 >> ここにこれらの修飾子のいずれかについて、お気軽に、 367 00:25:34,230 --> 00:25:36,900 静的、最終的な、公共。 368 00:25:36,900 --> 00:25:38,610 国民は重要なものです。 369 00:25:38,610 --> 00:25:47,090 それは、我々は、他のソースコードファイルからこの変数にアクセスできることを意味します 370 00:25:47,090 --> 00:25:49,590 そのような我々は新しいアクティビティを作成するときのように。 371 00:25:49,590 --> 00:25:52,190 私たちは、このファイル内の文字列を参照することができます。 372 00:25:52,190 --> 00:25:57,160 それは、プライベートなら、それはここで、この個々のファイルに限定されるものであることを意味する。 373 00:25:57,160 --> 00:26:02,430 しかし、我々は余分なメッセージのように、この何かを呼ぶことにします。 374 00:26:16,260 --> 00:26:23,300 今、私たちは、この関数を作った、と我々はボタンをクリックすると、この関数が呼び出されます。 375 00:26:23,300 --> 00:26:27,970 しかし、我々は関数を使用して、明らかに、何もしていない。 376 00:26:27,970 --> 00:26:33,130 私たちが今やってみたいことは、新しいアクティビティを作成することです 377 00:26:33,130 --> 00:26:35,350 実際に発売される活動。 378 00:26:35,350 --> 00:26:44,330 Eclipseでは、私たちは、新しいAndroidの活動、空白のアクティビティを言うことができます。 379 00:26:44,330 --> 00:26:46,530 我々はそれに名前を付けることができます。 380 00:26:46,530 --> 00:26:57,050 それは我々の結果活動呼び出してみましょう。 381 00:26:57,050 --> 00:27:04,430 そして、この階層の親フィールドが指定する方法である 382 00:27:04,430 --> 00:27:08,180 どの活動が互いに関連している。 383 00:27:08,180 --> 00:27:11,020 これは、他のアクティビティから起動されますので 384 00:27:11,020 --> 00:27:27,520 我々は、それが親の主な活動を持っていることを指定する必要があります。 385 00:27:27,520 --> 00:27:31,220 >> そして、私は私たちに語ったであろう、そこに次のフィールドをクリックした可能性が 386 00:27:31,220 --> 00:27:33,830 それも含めたことをいくつかのオプションフィールド、 387 00:27:33,830 --> 00:27:38,800 しかしADTについての素晴らしい事は、再び、私はここで下にスクロールしている場合ということです 388 00:27:38,800 --> 00:27:45,740 マニフェストでは、このすべてが実際にデフォルトで含まれていたことを覚えて 389 00:27:45,740 --> 00:27:48,930 我々は、もともとプロジェクトを作成したときに、 390 00:27:48,930 --> 00:27:53,090 そして今我々は、これは新しいアクティビティを作成するのではなく、使用したためだけで 391 00:27:53,090 --> 00:27:58,610 我々はこれを行うための彼らのGUIを介して行ってきましたので、私たち自身のクラスファイルを追加する 392 00:27:58,610 --> 00:28:01,930 それはすでに、私たちのためにマニフェストにこのすべてを追加 393 00:28:01,930 --> 00:28:06,020 ちょうど今、オペレーティングシステムが文句を言わないことを意味し 394 00:28:06,020 --> 00:28:09,400 私たちは、この活動を起動しようとする。 395 00:28:09,400 --> 00:28:14,620 それはまた、当然のことながら、それを、文字列に表示ラベルを得た。 396 00:28:14,620 --> 00:28:17,340 それは私達のためにバックエンドで多くのことを行います。 397 00:28:17,340 --> 00:28:20,140 とにかく、今、我々は同様にこの結果活性を有すること、 398 00:28:20,140 --> 00:28:23,810 ソースフォルダ内の実際のソースコードファイル、 399 00:28:23,810 --> 00:28:33,540 そしてあなたが見るツー短時間でこれ - 触れることができる 400 00:28:33,540 --> 00:28:37,790 私たちは、この階層の親について、それを言ったので 401 00:28:37,790 --> 00:28:46,640 それはこのonOption選択する事で、このフィールドをandroid.r.ide.homeを与えた。 402 00:28:46,640 --> 00:28:49,020 >> 何これは基本的に言っていると、メニューボタンが今そこです 403 00:28:49,020 --> 00:28:53,110 その画面の左上隅に 404 00:28:53,110 --> 00:29:02,220 私は、我々は最初のアクションバーの話PowerPointに戻った場合 405 00:29:02,220 --> 00:29:05,380 なぜなら階層親の今ここに戻って小さな矢印あり 406 00:29:05,380 --> 00:29:10,610 私たちは実際に、このアプリを実行した後にツーできるはずですので、これはクリック可能である 407 00:29:10,610 --> 00:29:15,360 戻って、そしてそれはそこに私たちのコードを少し節約する方法です。 408 00:29:26,220 --> 00:29:40,180 今、この井戸の中で、それは一瞬その文句をしているように見える。 409 00:29:40,180 --> 00:29:43,910 その行をコメントアウトしてみましょう。 410 00:29:43,910 --> 00:29:48,260 さて、実際にこれらの2の活動と相互作用するために、 411 00:29:48,260 --> 00:29:55,020 我々は、このデータのすべてを含む意図を作成する必要があります。 412 00:29:55,020 --> 00:29:58,950 のsendMessageで今私は、コードのいくつかのビットを通してクルーズに行くよ 413 00:29:58,950 --> 00:30:00,700 と私が行くようことを説明。 414 00:30:00,700 --> 00:30:06,280 意図は、私が言ったように、別のからつのアクティビティを起動する方法です。 415 00:30:06,280 --> 00:30:10,000 意図はタイプです。我々は変数myIntentを作成している。 416 00:30:10,000 --> 00:30:13,980 >> そして、これは実際に我々は新たな呼び出す必要が理由であるオブジェクトです。 417 00:30:13,980 --> 00:30:18,500 それに慣れるには少し時間がかかる可能性のある、そこに一般的なJavaの使用法です。 418 00:30:18,500 --> 00:30:23,900 これは、我々は、活動やクラスMainActivityを使用していることを意味し 419 00:30:23,900 --> 00:30:28,630 そしてそのように意図はそれから起こっている活動を取り 420 00:30:28,630 --> 00:30:36,060 我々はResultActivityを呼び出し、それがために起こっていると活動、、 421 00:30:36,060 --> 00:30:38,170 それは、独自のクラスです。 422 00:30:38,170 --> 00:30:41,720 それが含まれています。 423 00:30:41,720 --> 00:30:47,370 私は前に述べたように、その後、我々は、編集テキストフ​​ィールドにそのIDを与えた 424 00:30:47,370 --> 00:30:53,710 そうとテキストビュー、プログラムでキャプチャするために 425 00:30:53,710 --> 00:31:01,860 EditTextの中に存在するテキスト 426 00:31:01,860 --> 00:31:06,710 我々はfindViewByIDと呼ばれるこの機能を使用し、 427 00:31:06,710 --> 00:31:13,660 これは、DOMからフィールドを取得しようとするときに使用するだろうことを何かに似ています。 428 00:31:13,660 --> 00:31:17,560 講義では、この程度おそらくダビデは話しています。 429 00:31:17,560 --> 00:31:26,600 しかし、それだけで得るための方法だもの - それは、我々はそれらの分野でこれらの事をタグ付け理由です。 430 00:31:26,600 --> 00:31:31,110 Id.editText1。 431 00:31:31,110 --> 00:31:35,220 それはすでにそこに私のためのオートコンプリートだ。 432 00:31:35,220 --> 00:31:42,010 >> そして、我々はまた、今、私たちは、フィールドを持っていることをEditTextの、これを含めるよ 433 00:31:42,010 --> 00:31:47,640 私たちのプログラムの中で、すべてのことfindViewByIDは基本的だった 434 00:31:47,640 --> 00:31:50,870 あなたは私たちにそのEditTextのへの参照を与えると考えることができます。 435 00:31:50,870 --> 00:31:54,570 今、私たちは、文字列またはメッセージを取得したい 436 00:31:54,570 --> 00:32:00,670 我々は、使用して行うことができますEditTextの内 437 00:32:00,670 --> 00:32:03,360 あなたは次のようにEditTextの考えることができる構造体 - 438 00:32:03,360 --> 00:32:07,600 我々はそれでオブジェクトのJavaと異なる方法の全体の束を呼び出す 439 00:32:07,600 --> 00:32:10,650 またはフィールドと属性がそれに接続されている。 440 00:32:10,650 --> 00:32:15,510 私はEditTextの言うとき。それは私にアクセスする機会を与えてくれます 441 00:32:15,510 --> 00:32:19,770 現在のテキストを取得するなどのgetTextなどの方法で、 442 00:32:19,770 --> 00:32:23,990 そのEditTextのにして、その明示的に変換 443 00:32:23,990 --> 00:32:26,520 文字列に、私たちはメッセージを保存している。 444 00:32:26,520 --> 00:32:32,730 今、私たちは、実際に我々はさっき作成した意図を持って何かをしたい。 445 00:32:32,730 --> 00:32:40,250 それは意図で呼ばれているように私は、余分に配置します 446 00:32:40,250 --> 00:32:43,330 その、再び、私は前に言ったように、これは、バンドルを作成する方法です 447 00:32:43,330 --> 00:32:45,980 データの全体の束を持つ。 448 00:32:45,980 --> 00:32:50,920 余分なメッセージは、我々は、この下を保存しているか知っているので、私たちのタグです 449 00:32:50,920 --> 00:32:56,700 そして私は、メッセージを含めています。 450 00:32:56,700 --> 00:33:04,870 >> そして、我々は実際にそれをパラメータmyIntentを与えることによって、活動を開始することができます。 451 00:33:04,870 --> 00:33:10,630 そして、これは実際に今、私は、Windows 8にアップグレードしたので、活動を開始します 452 00:33:10,630 --> 00:33:15,870 そこに簡単に現れるいくつかのエラーであるが、それらを無視しようとするかもしれない。 453 00:33:28,010 --> 00:33:30,310 そして、これはAndroidのエミュレータです。 454 00:33:30,310 --> 00:33:33,540 うまくいけば、コードは実際には瞬間にポップアップ表示されます。 455 00:33:33,540 --> 00:33:36,680 繰り返しますが、これらすべてのささいなことを無視して。 456 00:33:36,680 --> 00:33:42,290 しかし、Androidのエミュレータは、オペレーティング·システムの任意のバージョンをエミュレートすることができます 457 00:33:42,290 --> 00:33:45,180 最古のものから、ドーナツ、ジンジャーブレッド。 458 00:33:45,180 --> 00:33:49,640 これは、ジェリービーン4.1です。 459 00:33:49,640 --> 00:33:53,150 しかし、あなたが今見ることができるように、これは我々が作られたものです。 460 00:33:53,150 --> 00:33:55,780 これはMainActivity、EditTextの、ボタンがあります。 461 00:33:55,780 --> 00:34:01,550 私はここで何かを入力することもできますが、我々はこの時点で何が欠けている? 462 00:34:01,550 --> 00:34:05,190 我々はメッセージを送信するために起こっているMainActivityのフィールドを作った 463 00:34:05,190 --> 00:34:08,570 他のアクティビティに、しかし、この時点で 464 00:34:08,570 --> 00:34:12,330 我々は他のアクティビティで何かを行っていないので、何を受け取ることはないだろう。 465 00:34:12,330 --> 00:34:18,800 我々は先に進む前に、のはその部分を仕上げてみましょう。 466 00:34:18,800 --> 00:34:25,760 >> 私たちが行う必要があります何この結果の活動は、我々が行う必要がありますである我々は、必要がありますです 467 00:34:25,760 --> 00:34:30,070 我々はまた、この活動の中で意図を参照することができます 468 00:34:30,070 --> 00:34:33,580 私たちは本当に簡単です意図をキャプチャする必要があります。 469 00:34:33,580 --> 00:34:40,780 それは、活動クラスに含まれる関数の 470 00:34:40,780 --> 00:34:47,610 私たちは、単に "意図からメッセージを取得します"と言うことができます 471 00:34:47,610 --> 00:34:56,260 "インテントmyIntent = getIntent。" 472 00:34:56,260 --> 00:35:00,030 そして、これは私たちを今与えるmyIntentはオブジェクトで、 473 00:35:00,030 --> 00:35:05,380 これは、この活動に私たちを率いて意図への参照です。 474 00:35:05,380 --> 00:35:10,130 MainActivityを呼び出しと活動を結果に余分な情報を提供します。 475 00:35:10,130 --> 00:35:14,070 結果活動は今、ここでそれを率いて意図を見 476 00:35:14,070 --> 00:35:23,540 そして我々は、我々は他のいずれかで作成されたメッセージにアクセスすることができます 477 00:35:23,540 --> 00:35:26,370 getStringExtra、これは私のためのオートコンプリートます。 478 00:35:26,370 --> 00:35:31,190 そして、我々はタグ付けされた方法を覚えて、そのデータのビット 479 00:35:31,190 --> 00:35:38,400 、、右ここでそれをこの公共の文字列を、このフィールドを与えることであった 480 00:35:38,400 --> 00:35:42,080 これは、私たちが実際に含まれている文字列のタグです。 481 00:35:42,080 --> 00:35:48,450 >> 私はMainActivity.Extra_Messageを言うなら 482 00:35:48,450 --> 00:35:52,200 それはすぐそこだし、これは、パラメータ名のように一種である 483 00:35:52,200 --> 00:35:55,330 我々は、コントローラからテンプレートにコードを渡されたとき、 484 00:35:55,330 --> 00:35:57,680 ときに我々はタイトル矢印何かを言うと思います。 485 00:35:57,680 --> 00:36:01,140 それはそこにアイデアと同じ種類です。 486 00:36:01,140 --> 00:36:07,130 さて、このことを覚えています。 487 00:36:07,130 --> 00:36:12,230 また、この自動作成または自動生成されたコードを持っていた 488 00:36:12,230 --> 00:36:16,410 途中でテキストビューを含む結果の活動、のために 489 00:36:16,410 --> 00:36:19,690 そのこんにちは世界は言う。 490 00:36:19,690 --> 00:36:27,510 我々は潜在的にそれを大きくすることができます。 491 00:36:27,510 --> 00:36:33,980 その最初に行うましょう。 492 00:36:33,980 --> 00:36:39,550 我々はそれに40密度非依存ピクセルを作ることができます。 493 00:36:39,550 --> 00:36:42,670 超巨大だと、見てみましょう。それは大丈夫でしょう。 494 00:36:42,670 --> 00:36:48,180 そして、私たちのコード内で、この個々のテキストビューを参照するために、 495 00:36:48,180 --> 00:36:53,890 我々は、それにIDを与える必要があります 496 00:36:53,890 --> 00:36:58,350 と私たちが言うことをやるためには@我々はそれにIDを割り当てることを意味+ ID。 497 00:36:58,350 --> 00:37:02,480 先ほど@ idを言った場合、それは、我々は、すでに存在しているIDを参照していると仮定します 498 00:37:02,480 --> 00:37:07,760 そして、この私たちのresultTextViewを呼び出してみましょう。 499 00:37:07,760 --> 00:37:10,570 とXMLでセミコロンや何のための必要はありませんことに気づく。 500 00:37:10,570 --> 00:37:12,380 すべては、これらのタグ内にある。 501 00:37:12,380 --> 00:37:15,530 それは感覚の多くのHTMLと非常に似ています。 502 00:37:15,530 --> 00:37:22,760 >> それに慣れるには少しかかりますが、最終的にはそれでかなり快適に感じられるでしょう。 503 00:37:22,760 --> 00:37:31,320 我々の結果テキストビューのテキストを更新してみましょう、 504 00:37:31,320 --> 00:37:35,650 我々は、当社の他の活動にその編集テキストフ​​ィールドを得ていたときに我々が行ったように 505 00:37:35,650 --> 00:37:46,630 MainActivityでここに我々はまた、同様に、意志 506 00:37:46,630 --> 00:37:54,890 我々は、IDによってビューを見つけることができます。 507 00:37:54,890 --> 00:37:59,640 Rは、私は前にこれを言及しなかった場合には、当社のリソースフォルダへの参照である、 508 00:37:59,640 --> 00:38:05,350 その後IDは、リソースフォルダ内のすべてのもの、すべてのIDへの参照です 509 00:38:05,350 --> 00:38:10,060 とresultTextView。 510 00:38:10,060 --> 00:38:13,010 そして、ちょうど前のように、resultTextViewは、オブジェクトである 511 00:38:13,010 --> 00:38:15,780 これは、それに関連付けられているすべてのこれらの特性を有していることを意味します。 512 00:38:15,780 --> 00:38:20,610 私たちは、このテキストフ​​ィールドまたはテキストビューのエディットテキスト用にgettextを使用する場合 513 00:38:20,610 --> 00:38:23,980 私たちは実際、SetTextメソッドを使用することができます 514 00:38:23,980 --> 00:38:26,960 そして我々はすでに、意図からのメッセージを見つけました 515 00:38:26,960 --> 00:38:35,760 ので、私は、メッセージを言うことができる、これは実際にメッセージを設定します。 516 00:38:35,760 --> 00:38:41,820 >> これは、起動する時間を取るし、我々は、それがクラッシュしたかどうかを確認することができます 517 00:38:41,820 --> 00:38:48,670 しかし右がそのプロセスについてのご質問、相互作用のその種? 518 00:38:48,670 --> 00:38:51,490 いろいろな意味で、それは簡単です。 519 00:38:51,490 --> 00:38:53,960 私が何かを通過している理由は、比較的単純な 520 00:38:53,960 --> 00:38:57,330 レイアウト間の相互作用を見ることを得るので、再び、です 521 00:38:57,330 --> 00:38:59,520 ソースコードは、どのように参照の事 522 00:38:59,520 --> 00:39:07,680 と、おそらくJavaがどのように動作するかそこにはほとんど露出を得る。 523 00:39:07,680 --> 00:39:16,500 、私は実際にOHAIように、ここで何かを入力して、私はボタンをクリックした場合 524 00:39:16,500 --> 00:39:22,260 それは、新しいアクティビティを起動し、そのテキストビューがOHAI言う。 525 00:39:22,260 --> 00:39:27,640 それは、非常にシンプルですが、うまくいけば、この例の後 526 00:39:27,640 --> 00:39:32,310 あなた、この相互作用がどのように動作するかを参照してくださいのようなもの、およびファイルの今では混乱 527 00:39:32,310 --> 00:39:36,870 これらのすべてのプロジェクトフォルダの左側に、うまくいけばあなたは今を見てどこを知っています。 528 00:39:36,870 --> 00:39:38,700 これはあなたのソースコード領域です。 529 00:39:38,700 --> 00:39:41,760 >> レイアウトは本当にあなたが画像を含むまでに対処する唯一のものです 530 00:39:41,760 --> 00:39:46,370 文字列が含まれ、ドロウアブルまたは何、価値観、 531 00:39:46,370 --> 00:39:51,960 我々が述べたように、その後のスタイルは、CSSのようにソートのだものです。 532 00:39:51,960 --> 00:39:56,410 お好きな時に、それに対処しますが、余分な才能を追加すると快適に感じるまで 533 00:39:56,410 --> 00:40:02,520 アプリケーションにあまり心配する必要はありません。 534 00:40:02,520 --> 00:40:07,410 ただ、もう一つのことを包み込むようにあなたは間違いなく含まれる - ことになるでしょう 535 00:40:07,410 --> 00:40:13,010 あなたはクールな機能を統合し、自分自身にいくつかの余分な保存したいと仮定してコーディングを 536 00:40:13,010 --> 00:40:16,460 サードパーティのライブラリを含めることであろう。 537 00:40:16,460 --> 00:40:19,840 ここではシャーロック·ホームズの帽子と少しアンドロイドの男です。 538 00:40:19,840 --> 00:40:23,040 これは、アクションバーシャーロックライブラリです 539 00:40:23,040 --> 00:40:25,390 これは、基本的には、以前に見たアクションバーを意味 540 00:40:25,390 --> 00:40:29,590 これは、今ではアイスクリームサンドイッチとジェリービーンで標準です 541 00:40:29,590 --> 00:40:33,100 あなたは、古いバージョンでは、ユーザーにユーザーエクスペリエンスのその種を持参する場合 542 00:40:33,100 --> 00:40:39,290 そして、ユーザーがナビゲートする起こっているかを心配するから自分を救う 543 00:40:39,290 --> 00:40:42,490 古いバージョンでそのことがないときは、このライブラリを含めることができます 544 00:40:42,490 --> 00:40:46,770 その後あなただけす​​る必要があります、参照ではなくデフォルトアンドロイド 545 00:40:46,770 --> 00:40:50,250 アクションバーのためのライブラリは、このサポート·ライブラリを参照します。 546 00:40:50,250 --> 00:40:53,090 >> あなたがゲームを含めるつもりならScoreloopのでのようなものは、それは素晴らしいことだ。 547 00:40:53,090 --> 00:40:57,280 それはあなたがゲームにリーダーボードと実績を追加することができます。 548 00:40:57,280 --> 00:41:00,900 AdMobがアプリケーションに広告を入れての方法です 549 00:41:00,900 --> 00:41:02,900 場合に、あなたはそれのお金オフを少し作りたい​​。 550 00:41:02,900 --> 00:41:05,730 もちろん、FacebookやTwitterが統合のためにそこにある 551 00:41:05,730 --> 00:41:08,170 あなたはエトセトラ、簡単に物事を共有する場合。 552 00:41:08,170 --> 00:41:15,120 Dropboxは、同様に、とGoogle Analyticsはそこにものを見ている図である。 553 00:41:15,120 --> 00:41:19,070 あなたが実際に相互作用しているユーザーを確認したい場合は、それは非常に重要になるだろう 554 00:41:19,070 --> 00:41:25,800 あなたのアプリケーションまたはそれは、彼らがどのように相互作用するか、エトセトラと。 555 00:41:25,800 --> 00:41:30,650 Googleは、デフォルトでは、あなたのアプリをインストールしているに関する統計の多くを伝え 556 00:41:30,650 --> 00:41:35,020 とどのような彼らが持っている携帯電話、彼らが持っているどのようなオペレーティングシステムのバージョン。 557 00:41:35,020 --> 00:41:38,080 しかし、あなたが日常的にそれを使用しているユーザーを確認したい場合は、どのように彼らはそれを使用 558 00:41:38,080 --> 00:41:42,860 その後、あなたはそのような追跡システムのいくつかの並べ替えを含めるしたいと思う。 559 00:41:42,860 --> 00:41:44,990 >> あなたのアプリを配布する準備ができたら、 560 00:41:44,990 --> 00:41:46,930 私はあまり深くそれに行く必要はありません。 561 00:41:46,930 --> 00:41:49,090 ここにリンクをクリックして、Googleが再生します。 562 00:41:49,090 --> 00:41:51,080 これは、Androidマーケットであるために使用。 563 00:41:51,080 --> 00:41:53,470 彼らは、Googleのプレイですべてを改名 564 00:41:53,470 --> 00:41:55,230 だから今、あなたはそれに提出してください。 565 00:41:55,230 --> 00:41:57,140 これは非常に簡単です。 566 00:41:57,140 --> 00:42:01,070 あなたは、説明、いくつかのスクリーンショットを含める必要があります。 567 00:42:01,070 --> 00:42:05,660 私が言ったように、iOSのようには承認プロセスはありません。 568 00:42:05,660 --> 00:42:07,270 そしてどこにここから行くには? 569 00:42:07,270 --> 00:42:09,450 私はあなたに本当に簡単な例を示した。 570 00:42:09,450 --> 00:42:13,270 うまくいけば、それはものすごくシンプルなようであれば 571 00:42:13,270 --> 00:42:15,740 その後、それはおそらく良い兆候だ。 572 00:42:15,740 --> 00:42:20,080 あなたはまったく私が入力していたかを正確にについて少し混乱したりわからないと感じた場合は 573 00:42:20,080 --> 00:42:26,160 それがまた良いですが、ここからGoogleのガイドに行く。 574 00:42:26,160 --> 00:42:28,330 これは、開始するのに最適な場所です。 575 00:42:28,330 --> 00:42:31,460 それは、アプリケーション設計の面で、彼らは何を期待する手順を説明します 576 00:42:31,460 --> 00:42:33,380 ユーザーは、通常はそれをどのように相互作用する。 577 00:42:33,380 --> 00:42:36,450 それははるかに自由形式のiOSよりも、私は、と言うだろう 578 00:42:36,450 --> 00:42:41,330 テーブルビューは、私がしているかわからないように、それは思われる、それは彼らのパンとバターです。 579 00:42:41,330 --> 00:42:44,690 すべてが上下にスライドするテーブルビューです。 580 00:42:44,690 --> 00:42:48,160 アンドロイドで、彼らは間違いなく人々からそれを見てすることを奨励 581 00:42:48,160 --> 00:42:51,720 異なる視点の全体の束。 582 00:42:51,720 --> 00:42:56,000 >> このADTにおけるソフトウェア開発キットが含まれている場合 583 00:42:56,000 --> 00:43:03,010 デフォルトでは、Androidのサンプルプロジェクトの全体の束を持っている。 584 00:43:03,010 --> 00:43:05,470 右ここでは、Android、Androidのサンプルプロジェクト。 585 00:43:05,470 --> 00:43:11,870 私はその上でクリックすると、私はサンプルプロジェクトが適用の対象のバージョンを選択することができます。 586 00:43:11,870 --> 00:43:13,300 異なるものの全体の束がここにあります。 587 00:43:13,300 --> 00:43:16,690 これは、アクションバーの互換性から始まり 588 00:43:16,690 --> 00:43:24,610 加速度計再生、バックアップと復元、ブルートゥース、ジェスチャービルダー。 589 00:43:24,610 --> 00:43:28,930 LunarLanderそのままJETBOYは、彼らはあなたを与えるサンプルゲームです。 590 00:43:28,930 --> 00:43:31,250 サンプルアプリケーションの全体の束が、ここにあります 591 00:43:31,250 --> 00:43:35,290 それらはすべて、AndroidのAPIのさまざまな側面を対象としています 592 00:43:35,290 --> 00:43:41,520 とアイデアは、あなたのアプリケーションを作るようにということです 593 00:43:41,520 --> 00:43:44,110 あなたは、Androidアプリを作るAndroidに関するすべてを学ぶ必要はありません。 594 00:43:44,110 --> 00:43:47,300 あなたはあなたが実際に使用しようとしている部品について学ぶ必要があります。 595 00:43:47,300 --> 00:43:49,340 これらのサンプルライブラリを見てください。 596 00:43:49,340 --> 00:43:51,510 コピーと貼り付けのコードを、それを再適用して自由に感じる。 597 00:43:51,510 --> 00:43:53,850 それは、より困難なコードを見て素晴らしいことだ 598 00:43:53,850 --> 00:43:57,060 し、それを理解しようと、これは当然のことである理由CS50で 599 00:43:57,060 --> 00:44:01,510 私たちはしばしばあなたにソースコードを大量に与える。 600 00:44:01,510 --> 00:44:04,620 あなたは同じようなライブラリを使用しようとしている場合は、これらのいくつかを見てください 601 00:44:04,620 --> 00:44:08,630 その後、独自のコードに適用します。 602 00:44:08,630 --> 00:44:10,430 そしてもちろん、チュートリアルがあります。 603 00:44:10,430 --> 00:44:12,690 チュートリアルを検索します。 604 00:44:12,690 --> 00:44:17,020 私は、高速化するためにあなたをもたらすことができるオンラインの良いものをたくさん発見 605 00:44:17,020 --> 00:44:20,080 フラグメントが本当にあるかと、どのようにそれらを使用することができます。 606 00:44:20,080 --> 00:44:22,240 >> 断片のように、これらの新しいデザインのもののいくつかの、、 607 00:44:22,240 --> 00:44:26,840 あなたは本当にあなたが作っている限り、心配する必要はありません 608 00:44:26,840 --> 00:44:30,560 スコーププロジェクトではかなり大。 609 00:44:30,560 --> 00:44:32,510 彼らは、Googleがフェーズインしようとしているものです 610 00:44:32,510 --> 00:44:35,570 stackoverflowのは、もちろんあなたの友達です。 611 00:44:35,570 --> 00:44:37,930 うまくいけば、私は、Android上であなたに少しを販売 612 00:44:37,930 --> 00:44:41,640 それを実現することは、単にコーディング言語の面でアプローチするはるかに簡単です。 613 00:44:41,640 --> 00:44:45,970 Javaは、私はObjective-Cのより理解することがはるかに簡単に言いたいです。 614 00:44:45,970 --> 00:44:50,780 Androidは、私はiOSのよりもはるかに成長していると思います。 615 00:44:50,780 --> 00:44:54,890 私が意味する、データはさておき、私が何を考えてから、あまりにもあります。 616 00:44:54,890 --> 00:44:56,920 それは、しばらくの間、周りになるだろう 617 00:44:56,920 --> 00:45:00,880 そして、彼らは、彼らの設計サイクルの観点から、数年の背後にある 618 00:45:00,880 --> 00:45:04,690 それは彼らがまだこれらのいくつかを作業していることは理解できるの一種ですので、 619 00:45:04,690 --> 00:45:09,080 このアクションバーのような一貫性の質問は、まだ彼らのために新しいものです。 620 00:45:09,080 --> 00:45:16,010 すべて自分のアプリ全体で同じようなユーザーエクスペリエンスを作成するための一種。 621 00:45:16,010 --> 00:45:20,650 うまくいけば、あなたは今、前に進むと、Eclipseを開くことができます 622 00:45:20,650 --> 00:45:22,870 と独自のAndroidアプリを作る。 623 00:45:22,870 --> 00:45:30,240 >> 我々は何でも包む前に、誰もが何か質問がありますか? 624 00:45:30,240 --> 00:45:34,410 私は答えは42であることを伝えることができます。 625 00:45:34,410 --> 00:45:41,990 まあ、みんな、そして幸運をコーディング幸せ。 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]