[Powered by Google Translate] [講座] [Android應用程序（現在糖豆！）]
[約旦Jozwiak] [哈佛大學]
[這是CS50。] [CS50.TV]
>> 大家好，歡迎到Android應用程序（現在糖豆）研討會。
這就是所謂的現在與糖豆，當然，因為
最新版本的操作系統被稱為果凍豆。
當我談到去年的Andr​​oid這樣做基本上是相同的研討會
我提出的設計圖案和風格的選擇，薑餅，
儘管冰淇淋三明治已經出來的時候，
這是後話，我們會談論前進一點點。
Android的，當然，有一些碎片問題，
所以最新的谷歌操作系統通常是
不是真的要成為常見的用戶之間可能高達一年，不幸的。
>> 但無視這一點，我們會談論很多原因，
Android是遠遠優於iOS的。
好吧，我們來談談Android與iOS的，
一些設計範例，您將如何設立只是一個幻燈片，
大的區別，我只是想，這與去年的
通過一些概念性的東西，使用變焦
操作系統，然後進入一個非常基本的例子。
事實上，就在建立你的第一個應用程序，谷歌描述的例子，
通過它，我們會去一起，只是描述。
>> 我知道你們許多人只用C語言編寫的，所以Java已經
不同的角度，這樣你會得到你的腳濕
和感覺舒服些希望。
一個快速的總結，Android與iOS的。
在Android中，有這種一次性的開發費用為25美元，
沒有這個每年100美元的事情。
有沒有限制，這意味著，如果我想提交一個應用程序，
我剛提交它，就像是有適用於iOS有沒有審批流程。
您可以使用Eclipse與Java開發，
它是跨平台的，所以它並不重要，如果你有一個蘋果，
Windows，或者一些Linux機器。
當然，你必須與iOS在Mac上使用XCode，
Android是越來越多的人使用，
所以，如果你希望你的應用程序有某種形式的知名度，或者
從廣告，賺小錢
你可能更容易從Android獲益。
>> 還有一件事，一直被稱為關於Android
是極端的定制量，而以自己的方式是非常固定的iOS
這樣他們可以維護每一個小環節的安全性和控制權
在其操作系統和單個應用程序的設計。
Android是非常自由的形式，而且有那麼多的可能性。
好吧，有些設計範例。
請注意，這裡就像iOS的平板電腦和iPhone和iPod touch
如果你想支持，他們有支持，比方說，有十幾設備
歷史的東西為好。
有了Android，你的設備必須支持數百個，
所以有一些事情，谷歌一直試圖實現
使用戶體驗到一個更加一致的一點，
但我們還將討論如何這意味著有碎片問題
你不斷地有要注意的支持。
碎片意味著有許多不同的操作系統，
許多不同的手機，不同的硬件上運行Android同時，
所以這個圖可以追溯到約6個月。
是啊，6個月，你可以看到如何在最黑暗的樂隊
在底部是糖豆，在夏季出來，
你可以看到現在大概2％左右的手機。
>> 冰淇淋三明治出來一年多前，
一季度的手機。
仍然有很多手機從幾年前正在使用的操作系統版本。
有一件事，谷歌一直試圖做才能讓用戶體驗
更一致的應用程序有很多蜂窩，開始
這是平板版本，冰淇淋三明治和果凍豆，
他們真的想強調這個動作欄，
這是你可以在上面看到這裡，
這裡的一切權利，包括這個小設置“按鈕。
它的設計選擇。
現在，每當你看到三個點，這意味著在此，
而且會有一個下拉菜單，其中有某種設置。
這只能說明，因為我點擊這個按鈕。
這是，他們正試圖用一點點，使應用程序更加一致
一刀切的，所以用戶有一個統一的體驗更好的感覺。
>> 好吧，如果你還沒有這樣做已經或者如果你在家裡看
那麼你可以按照以下步驟設置你的編碼環境。
這將涉及網站。
您可以在Google安裝Android SDK
並遵循一些描述。
他們會告訴你一切。
他們有你安裝SDK，下載Eclipse Classic的版本，
當然，即使我們在Java編碼。
他們建議這一項，那麼這個ADT，Android開發工具，
是一個插件安裝到Eclipse中，它允許你
在Eclipse有一個更精簡的體驗與Android。
它會給你一些圖形用戶界面
設計的意見，它會給你更多的支持
並有能力推出與仿真器和所有諸如此類的事情。
應用程序框架。
>> 我想談談如何在Android項目結構，
然後我們將進入一個簡單的例子，希望
你可以問的問題在任何時候，感覺很舒服，它的結束。
我們有一些行話。
當你啟動一個應用程序時，您看到的屏幕就像是一個活動。
整個體驗活動本身，
所以你可以把它看作是一個屏幕或視圖，
但它實際上是它的源代碼方面。
我們仍然調用實際的接口視圖。
它有點像我們如何在習題集7控制器和視圖。
的活性或多或少控制器，
的觀點是我們在做什麼的XML
與該活動相關聯。
片段是東西的實施冰淇淋三明治前進。
這只是一個想法，採取部分視圖或活動
這樣我們就可以把它們分成不同的領域
這許多不同的設備，使我們的代碼更可用
我們要支持，它只是一個嘗試的方式
分解出更多的代碼。
服務播放音樂或導航方向可能的背景之類的東西。
內容提供商，這些都是在操作系統內的API
允許您訪問共享數據，如聯繫人信息，
然後意圖是什麼時，我們將​​使用我們要啟動
一個新的活動，從我們目前的活動。
>> 您好Android的，這是怎麼回事，是一個項目，我們將談論。
實際上，我會為你做它，那麼我們就做了一件事情，在這裡我們點擊一個按鈕
一些文字，並推出一個新的活動。
非常簡單，但我想通過
什麼將進入這樣一個項目。
當你做出新的項目，你會看到在Eclipse
這個項目名為Hello的Andr​​oid。
然後有一大堆的文件夾，在這裡。
你真正關心的是源文件夾，
資源文件夾，水庫，以及一定程度上的libs文件夾庫。
只是讓我們在同一頁上，
如果你要創建一個新的項目，
你可以做到這一點就在這裡，所以如果我想叫它HelloAndroid
然後，它會自動的信息為我們做了一大堆。
包的名稱應該是一個唯一的標識符
通常會與網站關聯，如果你有一個。
>> 例如，我會打電話這個net.cs50.helloandroid。
我已經有這個項目一次。
好吧，對不起。讓我們叫它HelloCS50。
然後它會問喜歡什麼樣的圖標，我們想的事情。
這是因為Android開發工具界面，
我們加入到Eclipse的插件，所以我們可以選擇喜歡的東西
什麼樣的圖標，我們想，如果我們想要的話，會去到那個深度。
但到最後，才使這個項目，
一切都顯示在這裡。
正如我另一個屏幕上顯示，
大家都有源文件夾，我將談論什麼都很快，這意味著，
但你可以看到，它立刻把我們帶到的HelloCS50畫面。
在這裡有一些按鈕添加文本和文本字段佈局。
這有點像XCode的，但不幸的是沒有相當精簡。
但剪輯將成為您的朋友和ADT尤其是這樣做的。
>> 好吧，源文件夾是
持有的Java文件，這其實是你的程序的啟動。
這基本上就像控制器。
資源文件夾或水庫是在這裡，我們將保持屏幕佈局，
圖像，聲音，文字，動畫和一切，很明顯，庫庫。
和清單，這是Android系統知道的方式，
如何與您的應用程序進行交互。
它告訴它有關權限和什麼樣的活動將實際運行。
這一切都需要運行你的應用程序的基本信息。
源文件夾，如果我們展開它，你可以看到這裡。
一個例子，代碼會看這是默認的代碼。
我們把它稱為，MainActivity。
默認情況下，我們得到的倚仗，這就是所謂的這項活動負載時，這是一個函數，
所以你想調用的onCreate（savedInstanceState），的。
這將恢復信息的任何位
情況下，應用程序被暫停。
>> 整個活動有一個生命週期的圖表，你可以看看
當你得到一點點更深入，
但最重要的一行代碼的setContentView有這個功能
這將加載資源文件的佈局。
這裡倚仗基本上是做什麼它說
當我創建這個活動，我想加載此佈局。
我們會談論什麼，佈局是在第二。
如果我們要推出，這裡看起來酷似，
默認情況下，因為我們已經這樣做了Eclipse和ADT我們這樣做是為了
這是為我們創造的所有樣板代碼，
我們可以將改變，因為我們喜歡的東西。
資源文件夾，就像我說的，這是我們持有的所有佈局，
可繪製任何形式的圖像
他們是所謂的可繪製，然後聲音文件，菜單。
這是一種XML在一個很好的排序方式了一大堆。
正如你可以看到，有華電國際，LDPI MDPI和xhdpi文件夾的可繪製。
這些不同的屏幕密度，如此高密度每英寸的像素，
低密度，中密度，超高密度。
>> 再次，這是我們可以支持所有這些不同的設備，
理想情況下，你將不得不為每個不同的分辨率不同的圖像。
佈局是我們包括所有不同的佈局將被用來在不同的活動中。
他們還可能包括片段的佈局，
這意味著基本部分活動。
如果你想要做一些很酷的東西一樣，只要你轉動手機
你想讓它有一個不同的佈局，為不同的文件夾，你可以做佈局景觀，
和Android會自動的資源文件夾內有一大堆這些規則，
所以它會知道來看看目前的手機設置的基礎上的不同的文件夾，
你使用什麼樣的硬件。
同樣，這個值-V11在這裡和值-V14
默認值文件夾這是為
好了，本身的值，這將是在所有版本的操作系統的默認值。
另一方面，卷11和卷14的通訊與蜂窩
冰淇淋三明治。
同樣，這些方式，在這些文件夾是不同的字符串
和風格，所以你可以自定義您的應用程序的外觀
或潛在的甚至是它的功能，雖然這很可能是一個壞主意，
基於版本的操作系統。
>> 和我談起這一切都在這裡。
同樣，繪製，原材料，佈局，價值觀。
默認值，如果我們進入您好Android或你好CS50現在
它看起來就像這。
它會說你好世界。
正如你可以看到這裡與Android文本
這個文本視圖的文本，這基本上只是一個標籤，
就是我們將調用它的iOS。
它有這個有趣的符號@串/的hello_world。
是這樣的話，我們可以，我們嘗試提取的所有字符串，
到一個單獨的文件夾中的所有硬編碼字符串在Android，
發生在values​​.strings。
如果我們看一下這裡，我們可以看到，我們有一個硬編碼的字符串保存在這裡
你好世界，它被稱為“世界，你好，這是樣的
在許多平台上常見的設計決定您要到
字符串的事情，我們希望能夠改變可能是那種。
我們不希望我們的XML控制F在我們的源代碼文件，。
我們希望能夠改變這種每當我們得到了機會。
>> 此XML文件的strings.xml，是一種解壓方式
硬編碼字符串，否則將在我們的佈局資源
或者在我們的源代碼。
該清單是我們保持這個重要的信息有關的應用程序。
它包括包名。這是一個獨特的標識符。
在App Store的iOS應用程序的名稱不同
不必是唯一的，事實上，你可以在你的應用程序的名稱更改
您提交後，所以如果我開始了與“憤怒的小鳥”
然後我進行更新，我不想發布一個新版本
我想我可以把它稱為“憤怒的小鳥”2，而我在同一個發行週期。
這只是顯示更新。
唯一的東西，都必須是唯一的，這是包名，
沒有多少人會看到。
那麼，你只能看到，如果你正在尋找的源代碼或者如果有某種錯誤。
這些組件包括的活動，所以我們必須聲明
我們使用任何形式的活動。
這是一個權限之類的事情。
>> 由於Android沒有這種嚴格的申請程序
提交的應用程序，而不是他們只是盡一切基於權限
並宣布在清單中的東西。
SDK版本也很重要。
我們可以設置使用SDK的最低版本的東西。
很顯然，你要創建的代碼
和設計新的操作系統。
也許不是最新的，也許不是糖豆。
也許你想設計主要用於冰淇淋三明治，
雖然他們是幾乎相同的設計決策
實際庫和API。
但是，而不是讓人們
原生Android版本類似甜甜圈回來的路上時，
還有誰碰巧使用，嘗試下載您的應用程序，然後說
這是行不通的，我的手機上，你可以設置的最低版本
是薑餅或冰淇淋三明治
或任何你覺得舒服的一起提交的。
這是一個例子的清單。我們可以看看在實際中位。
>> 好吧，我們就前進的演示。
此為演示，如果谷歌Android建立你的第一個應用程序或類似的東西。
我們將通過在那裡的一切是怎麼回事，
對不起，只是一個參考，誰知道這裡Java在任何程度上的？
好吧，所以Java走出CS50對於大多數人來說是新的編碼語言。
簡單地說，走一遍這裡說什麼，
我們想要做的是什麼，而不是調整這個Hello World應用程序
它是所有它啟動，它說，“世界，你好
和它說你好CS50在頂部，因為這是活動名稱
我們要試圖使一個文本字段和一個按鈕
這樣，當我們按下此按鈕，將採取文字
從文本字段，並推出一個新的活動，它會說
無論該文本在活動中說，這是比較簡單的。
這是不是很有趣。你不想要，釋放任何這樣的應用程序。
但它演示了一些重要的設計的東西。
>> 我們將不得不與清單，佈局文件，
的源代碼，你可以看到如何啟動一個活動，從另一個。
我們將開始與我們的第一個活動的佈局，
我知道這是一種小的，
但正如你可以看到，現在，所有這是我們的標誌，我們創建，
活動名稱，和它說你好世界的中心。
相反，我首先要使它成為一個線性佈局，
相對佈局，而這些所有的東西
你可以看看值得在一些點在佈局方面。
這是一個很像HTML。
我們說，這不是真的值得了解的方面的綱領性意義，
但也有許多不同的佈局，你可以控制，
它就像CSS款式。
>> 有很多事情只是在這裡的美學，
是啊，這是值得學習的，但它的諸如此類的事情，你應該看看
你去，你覺得你需要一些新的東西。
所以我可以利用的一些ADT工具，至少在這裡，開始了與。
我會做出一個文本字段，我會讓一個按鈕。
把他們的權利，彼此相鄰的。
他們已經適當地調整。
我們很抱歉，再次回來線性佈局和相對佈局之間的差異，
線性佈局提供了一些功能
在填充空間並確保
我們的位置水平或垂直的事情。
線性佈局和相對佈局的最大區別
是佈局相對位置的一切相對於其他意見，
它的好處是，它需要較少的時間來繪製
因為作業系統的所有代碼和說，這正好
相對於此，在這裡。
這意味著它使較少的測量，比一大堆的嵌套的線性佈局，
這是我必須做的，如果我想的事情去垂直這裡。
>> 我已經有一些事情水平，所以我需要一個不同的線性佈局
嵌套它們垂直，但如果我做一個相對的佈局，我可以說
保持這個到左側，右側和下面這些東西。
但是，因為我希望他們能填權現在我打算使用線性佈局，
你可以看到它已經為我們做了很多這些東西。
所有視圖需要有一個屬性的寬度和高度，
發生這種情況的權重為1，這有一個權重為1的
所以，它充滿了整個空間。
但是，寬度和高度是最重要的。
此ID字段在這裡並不重要，在實際的佈局
除非我們使用相對佈局和說，大家可以參考
一種觀點認為參考到另一個位置。
如果我們有一個相對佈局，我們可以說，低於這個位置
或高於這個ID，但這個ID將是重要的
當我們在我們的代碼中使用它，因為大家可以參考一下
這些個人的意見這種方式。
>> 然後你就可以看到標記requestFocus，這是一些你可能看到的pset 7。
有一個自動對焦標記或東西沿著這些線路的領域之一。
還有一件事，當然，我們可以做的，就像在HTML中，
通知關於ADT的好東西之一是，它可以自動在這裡。
也許不是很好的，因為它沒有在XCode，但它仍然
我們可以說提示，然後給它一些字符串排序
喜歡寫一條消息，
如果我給它的時刻，也請注意，我在這裡得到一點點的錯誤
說，我們應該使用一個字符串資源，
所以如果我讓它做一些對我的辛勤工作
我可以選擇這個字符串，做折射Android和提取物的Andr​​oid串。
它可以給我這個名字，寫一個消息，
什麼，它現在是沒有取代硬編碼字符串
與參考字符串的XML文件中的字符串，
這意味著，現在這是在這裡。
>> 我知道，在這一點上似乎有點瑣碎，像額外的工作，
但是當你有一大堆的事情，一大堆的字符串，
這是非常重要的，特別是對於本地化
因為正如我前面提到的，Android是全球使用的操作系統
你可以簡單地做價值觀EN或值SP
或英語或西班牙語或其他語言的東西。
然後，你可能還沒有過這樣的經歷還
因為我們並沒有做太多的JavaScript網頁編程方面，
但我們也可以做這一領域的onClick按鈕，
這是一個引用的方式在我們的佈局
我們希望在我們的源代碼一定要調用的函數。
我要調用的SendMessage，
為了使這項工作，這意味著在這裡的主要活動
我將不得不創建一個函數是公共
，這樣它可以被訪問由佈局。
它是無效的，因為你只是不希望它返回什麼。
我們叫它的sendMessage，它需要一個視圖，
這是一個樣的背景下，我們可以鞏固這個方法
個別的觀點，當我們運行它。
>> 我不知道你是否注意到，你不會注意到，
但在這一點上就在這裡
這種觀點是一種尚未被列入，
當然，大家都知道從CS50不包括的類型。
關於IDE的Eclipse這樣美好的事情是，
如果你忘了，包括類型，它會用小的紅色波浪下劃線
然後給你選擇導入的看法。
這樣做，是一個快速的方法控制移位O，以及將導入
它需要的所有文件。
現在，我們有這個函數SendMessage，
這是怎麼回事MainActivity消息發送到一個新的活動，
我們將不得不使用從這個意圖推出新的活動，
所以我們可能要創建一個全局常量或還特別公開常數
這將幫助我們知道我們要如何來引用字符串
因為當我們創建了一個意圖，我們不只是調用一個新的活動，
但我們也可以給它一個信息包。
一個bundle實際上是Android使用的術語，
說給它額外的數據，它不​​能是一個非常複雜的數據類型的一種方式，
但我們可以肯定包括布爾型或字符串或整數。
諸如此類的事情。
>> 隨意詢問任何預選賽，
公眾，最終，靜態的。
公開是最重要的一個。
這意味著我們可以訪問此變量從其他源代碼文件
比如，當我們創建了一個新的活動。
大家可以參考一下這個文件內的字符串。
如果它是私有的，這意味著它是有限，這個單獨的文件。
不過，我們會打電話給這個像額外的消息。
現在，我們已經取得了這個功能，如果我們按一下按鈕，這個函數將被調用。
但是我們還沒有做任何事情，很明顯，與功能。
我們現在要做的是創建一個新的活動，
的活動，實際上將陸續推出。
在Eclipse中，我們可以說新的Andr​​oid活動，空白活動。
我們可以給它一個名字。
讓我們叫它結果活動。
然後此層次的父字段指定的方式
的活動如何彼此相關的。
因為這一個從其他活動將陸續推出
我們應指定，它有父的主要活動。
>> 我可以點擊下一字段，這將告訴我們
還包括一些可選字段，
但關於ADT，再次，是很好的事情，如果我在這裡向下滾動
在清單中，記住，這一切真的被列入默認情況下，
當我們最初創建項目
因為我們現在只是用來創建一個新的活動，而不是
這樣做，因為我們經歷過他們的GUI添加自己的類文件
它已經增加了這一切為我們的清單，
這意味著，現在的操作系統將不會抱怨
當我們嘗試推出這項活動。
當然，也給它的標籤，這也說明了在字符串。
它做了很多的事情，我們的後端。
不管怎樣，現在，我們有這個結果活動，
實際的源代碼在源文件夾中的文件，
你可以看到簡單地談談這
因為我們告訴它關於這個層次的父母
它給了本場android.r.ide.home此onOption所選的事情。
>> 這基本上是說的是，現在有一個菜單按鈕
在屏幕的左上角
如果我回去到PowerPoint，我們第一次談到​​行動起來吧
因為父層次，現在有一個小箭頭，回到這裡
這是可點擊的，所以我們應該能夠到後，我們運行這個程序
回去了，它是一種拯救我們有一點點的代碼。
現在，在這個井，似乎抱怨了一會兒。
我們的意見說出來。
現在，為了真正與這2個活動，
我們要創造的意圖，其中包括所有的數據。
的sendMessage現在我要通過一些代碼位巡航
，並解釋說，因為我去。
一個意圖，正如我所說，是從另一種方式來啟動一個活動。
意圖是類型。我們正在創造一個變量myIntent。
>> 這實際上是一個對象，這就是為什麼我們必須調用新。
這是常見的Java使用，這可能需要一點點的時間來適應。
這意味著我們正在使用的活動或類MainActivity，
意圖以這種方式需要的活動，它會從
和活動，這是怎麼回事，我們稱之為ResultActivity，
那就是它自己的類。
中包括這樣。
然後，正如我之前提到的，我們給到編輯的文本字段，ID
文本視圖，因此，以編程方式捕捉
，存在在EDITTEXT中的文本
我們使用此功能稱為findViewByID，
這是類似的東西，你會當試圖從DOM領域使用。
也許大衛談講座。
但它只是一種讓那些這就是為什麼我們這些字段標記這些東西。
Id.editText1。
它已經自動完成對我來說。
>> 然後我們會還包括這EDITTEXT現在我們有現場
在我們的程序中，所有的findViewByID基本上沒有
你可以把它看作是給大家一個參考，EDITTEXT。
現在，我們想要得到的字符串或消息
，在該EDITTEXT我們可以通過使用-
你能想到的EDITTEXT為結構
在Java對象與一大堆不同的方法，我們把它叫做
或連接到它的字段和屬性。
當我說EDITTEXT。它讓我有機會訪問
方法如gettext的，這將得到當前文本
在該EDITTEXT，然後再轉換，明確
一個字符串，我們已經保存了該消息。
現在我們真正想要做一些與這一意圖，我們只是瞬間。
我會把多餘的，因為它是調用的意圖，
再次，就像我之前說的，這是一種方式創建捆綁
一大堆數據。
額外的消息是我們的標籤，所以我們知道我們節省下，
然後我消息。
>> 然後我們就可以真正開始活動給它的參數myIntent。
這實際上將推出的活動，所以，因為我現在升級到Windows 8
有可能是一些簡要的錯誤，但試圖忽略它們。
這是在Android模擬器。
希望的代碼實際上將在瞬間彈出。
同樣，無視所有那些小東西。
但在Android模擬器可以模擬任何版本的操作系統
從最早的甜甜圈，薑餅。
這是果凍豆4.1。
但是，你現在可以看到，這是我們所做的事情。
這具有的MainActivity，EDITTEXT，按鈕。
我可以輸入的東西，但是在這一點上我們還缺少什麼？
我們作出了場MainActivity發送消息
的其他活動，但在這一點
我們沒有做任何其他活動，所以它不會收到任何東西。
讓我們完成了這部分在我們繼續之前。
>> 這種結果的活動，我們需要做的是什麼，我們需要做的是，我們需要到
我們也可以在這個活動中引用的意圖，
所以我們要捕獲的意圖，這是非常簡單的。
它是一個函數包含在活動類，
因此，我們可以說“消息的意圖。”
“意向書myIntent =的getIntent。”
而這將給我們現在myIntent是一個對象，
這是一個參考的意圖，我們這個活動。
MainActivity調用，並提供了額外的信息，導致活動。
結果活動現在看起來，導致這裡的意圖，
我們可以訪問的信息是，我們在中的另一個，
getStringExtra，這會為我自動完成。
然後記得，我們​​標記的方式，數據位
為給這一領域就在這裡，這個公共字符串，
這是我們實際上包括字符串標記。
>> 如果我說MainActivity.Extra_Message，
它就在那裡，這是有點像參數名稱
當我們通過從控制器的代碼模板，
當我們想要說標題箭頭的東西。
它的想法是相同的排序。
現在，請記住這一點。
我們也有這個自動創建或自動生成的代碼
結果活性，其中包括在中間的文本圖
說“世界，你好。
我們可能有更大。
讓我們做到這一點。
我們可以使40密度獨立像素。
讓我們來看看，這是超級巨大的。這將是好的。
然後以引用這個人在我們的代碼中的文本視圖
我們需要給它一個編號，
為了做到這一點，我們說@ + ID，這意味著我們將它的ID。
如果我們剛才說的@ id，它會假設，我們引用一個ID已經存在，
讓調用這個resultTextView。
注意到，在XML中有沒有分號或任何需要。
一切都在這些標籤。
它非常類似於HTML中大量的感官。
>> 這需要一點點的時間來適應，但最終你會覺得很舒服。
讓我們更新我們的結果文本視圖的文本，
像我們一樣，當我們得到我們的其他活動中，編輯的文本字段
MainActivity在這裡，我們也同樣會
我們會發現視圖的ID。
和R的情況下，我沒有提到這之前，是參考我​​們的資源文件夾，
然後ID是一個參考的資源“文件夾中的一切，所有的ID，
和resultTextView。
像以前一樣，resultTextView是一個對象，
這意味著它有與它相關聯的所有這些特性。
當我們使用這個文本字段編輯文本或文本視圖的getText
實際上，我們可以使用的setText
然後，我們已經找到了該消息的意圖，
所以我可以說的消息，這實際上設置消息。
>> 它花點時間來啟動，然後我們可以看它是否崩潰，
但這個過程有任何疑問，諸如此類的互動嗎？
在許多方面，它的簡單。
我之所以要通過相對簡單的東西
再次，是因為你能看到的佈局之間的相互作用，
的源代碼，參考的東西你怎麼
也許得到Java的工作方式有一點點暴露。
如果我輸入的東西在這裡，ohai一樣，然後我按一下按鈕，
它推出一個新的活動，並，文本視圖ohai說。
這是非常簡單的，但希望在這個例子中
排序看到這種互動是如何工作的，和現在那些亂七八糟的文件
所有這些項目文件夾的左側，希望你知道現在去哪裡找。
這是你的源代碼區域。
>> 佈局是真正的唯一的事情，你會處理包括圖像，直到你
可繪製或什麼的，和值，即包括字符串，
正如我們提到的，風格是有點像CSS。
當你想解決這個問題，但直到你感覺很舒服，增加額外的天賦
您的應用程序就沒有必要擔心太多。
只是包裹起來的另一件事情，你一定要包括
假設你要很酷的功能集成，並保存自己的一些額外的編碼
將包括第三方庫。
這裡是小的Andr​​oid與福爾摩斯的帽子的傢伙。
這是一個行動吧福爾摩斯庫，
這基本上意味著，你看到剛才的動作欄，
這是現在的標準配置冰淇淋三明治和糖豆，
如果你想帶那種舊版本的用戶體驗，以用戶
並保存自己的擔心用戶如何去瀏覽
在舊版本中，當那個東西是不存在，你可以包括庫
然後你只需要參考，而不是默認的Andr​​oid
庫行動吧，你引用這個支持庫。
>> Scoreloop的之類的東西，這是偉大的，如果你要，其中包括遊戲。
它可以讓你添加遊戲排行榜和成就。
Admob的是一種把廣告到您的應用程序
的情況下，你想一點點錢。
當然，也有整合有Facebook和Twitter
如果你想分享的東西很容易，等等。
Dropbox的，同樣，Google Analytics（分析）是尋找一個有該圖表。
這將是非常重要的，如果你真的想看到誰交互
與您的應用程序或者是誰，他們是如何相互作用，等等。
默認情況下，谷歌，告訴你很多已安裝您的應用程序的統計信息
他們有什麼樣的手機，他們有什麼樣的操作系統版本。
但是，如果你希望看到誰在使用它每天的基礎上，以及他們如何使用它
那麼你會希望包括某種這樣的跟踪系統。
>> 當你準備好分發您的應用程序
我並不需要太多的深度進入，在。
點擊這裡的鏈接，谷歌播放。
它使用的是Android市場。
他們更名一切與谷歌的播放，
所以現在你提交。
這是非常簡單的。
你必須包括說明，一些截圖。
就像我說的，有沒有像iOS的審批過程。
和從這裡去哪裡？
我向您展示了一個非常簡單的例子。
我們希望，如果它似乎極其簡單
那麼這可能是一個好兆頭。
如果你感到有點困惑或不確定，正是我打字
這也蠻好的，但是從這裡去谷歌指南。
這是一個偉大的地方開始。
它會跟你通過他們所期望的應用程序設計方面，
用戶通常是如何與它進行交互。
它更比iOS更自由的形式，我會說，
它似乎像表意見，我不知道，那是他們的麵包，黃油。
一切都是表視圖，向上和向下滑動。
有了Android，他們肯定鼓勵人們看它從
一大堆不同的觀點。
>> 當包括軟件開發工具包在這個ADT
默認情況下，你在Android有一大堆的樣本項目。
就在這裡，機器人，機器人示例項目。
如果我點擊的話，我可以選擇一個版本的樣品項目申請。
這裡有一個不同的事情一大堆。
開始行動吧兼容性，
加速度播放，備份和恢復，支持藍牙，手勢建設者。
噴氣男孩是一個樣本，他們給你的遊戲，是LunarLander。
這裡有一大堆的示例應用程序，
他們都針對Android的API在不同的方面，
的想法是，當你讓你的應用程序
你不需要學習一切關於Android的Andr​​oid應用程序。
你只需要了解的部分，其實你要使用。
看看這些樣品庫。
隨意進行複製和粘貼代碼，並重新應用它。
這是一個偉大的事情，看起來更困難的代碼
並嘗試去了解它，這當然是為什麼CS50
我們常常給你大量的源代碼。
看看其中的一些，如果你要使用類似的庫
然後將其應用到自己的代碼。
當然，有教程。
搜索教程。
我發現了很多好的網上可以給你帶來加快速度
片段真的是什麼，以及如何可以使用它們。
>> 這些新設計的東西，有些像碎片一樣，
你真的不必擔心，除非你正在做一個
在相當大的範圍內項目。
他們的事情，谷歌正試圖逐步英寸
StackOverflow的當然是你的朋友。
希望我賣給你的Andr​​oid上，
實現它只是編碼語言方面更容易接近。
Java是Objective-C的理解比我想說容易得多。
Android正在成長，我覺得比iOS更。
我的意思是，有太多的數據是，除了我在想什麼。
這是怎麼回事了一段時間，
他們是落後幾年在其設計週期
所以它的排序可以理解的，他們還在通過一些
一致性的問題，比如這個動作欄為他們仍然是一個新事物，
排序在所有的應用程序創建類似的用戶體驗。
希望你可以向前走，現在開放的Eclipse
，使自己的Andr​​oid應用程序。
>> 沒有人有任何的問題之前，我們總結什麼？
我可以告訴你，答案是42。
嗯，高興編碼大家，祝你好運。
[CS50.TV]