[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]