20172313 2017-2018-2 《程序設計與數據結構》第十一週學習總結

20172313 2017-2018-2 《程序設計與數據結構》第十一週學習總結

教材學習內容總結

  • 第23章 Android簡介
  • 第24章 初識Android
    • Android Studio 是一個Android集成開發工具,基於IntelliJ IDEA. 相似 Eclipse ADT,Android Studio 提供了集成的 Android 開發工具用於開發和調試。
    • Project窗口中有兩個主要的節點:app和Gradle Scripts。app則又包含三個節點:manifests(包含另外一個AndroidManifest.xml文件,對應用程序進行描述),java(包含了全部的Java應用程序和測試類),res(包含了資源文件)。
    • 每一個Android應用程序都必須有一個叫作AndroiManifest.xml的清單文件用來描述應用程序。
    • Log類帶有以不一樣的日至級別進行日誌消息的方法。d(debug)、i(info)、v(verbose)、w(warning)、e(error)、wtf(what a terrible failuer)。
  • 第25章 活動
    • Activity中有onPause, onStart, onResume, onDestory, onRestart和onStop這六個方法。以下圖所示:
    • Intent表明了Android應用的啓動」意圖」,Android應用將會根據Intent來啓動指定組件。html

      在Android 幫助文檔中,Intent的介紹爲An intent is an abstract description of an operation to be performed,意思是一個Intent是對一個即將進行的操做的抽象,Intent的字面意識就是」意圖」,Android應用程序中的三種其餘應用程序基本組件——Activity, Service和Broadcast、Receiver,都是使用稱爲intent的消息來」激活」的。java

  • 第26章 UI組件
    • 常使用如下組件。TextView、EditText、Button、RadioButton以及RadioGroup、CheckBox、ImageView。
      TextView的基本屬性(android:text;android : textColor;android : textSize)。EditText的基本屬性(android:inputType、android:hint、android:drawableLeft、android:drawablePadding)。各個控件之間相同的屬性 (android:text,android:width,android:height、android:id)每一個控件獨有的屬性(Button:onClick、EditText:hint,inputType、CheckBox:Checked、RadioButton:Checked)

      node

    • Toast是一種消息提示框,會在屏幕中顯示一個消息提示框,沒任何按鈕,也不會得到焦點、一段時間事後自動消失。android

      Toast是一種提供給用戶簡潔提示信息的視圖。 不能得到焦點
      顯示一段時間後自動消失
      Toast 是一個 View 視圖,快速的爲用戶顯示少許的信息。
      不影響用戶的輸入等操做,主要用於 一些幫助 / 提示。
      Toast.makeText(Mainthis, 「提示的內容」, Toast.LENGTH_SHORT).show(); 第一個是上下文對象!對二個是顯示的內容!第三個是顯示的時間,只有LONG和SHORT兩種 會生效,即時你定義了其餘的值,最後調用的仍是這兩個!vim

    • 通知是出如今狀態欄的一條消息。和Toast不一樣,通知是持久的,而且將保持顯示,直到關閉它或者關閉設備。一個通知必須包含如下三項屬性:小圖標,對應 setSmallIcon();通知標題,對應setContentTitle();詳細信息,對應 setContentText()。數組

教材學習中的問題和解決過程

  • 問題1:剛開始看教材的時候,瞭解到Android Studio 提供基於Gradle的構建支持,那麼Gradle究竟是個什麼東西呢?
  • 問題1解決方案:數據結構

    Gradle是一個基於Apache Ant和Apache Maven概念的項目自動化構建工具。它使用一種基於Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基於XML的各類繁瑣配置。面向Java應用爲主。當前其支持的語言限於Java、Groovy、Kotlin和Scala,計劃將來將支持更多的語言。app

軟件開發講究代碼複用,經過複用可使工程更易維護,代碼量更少. 開發者能夠經過繼承,組合,函數模塊等實現不一樣程度上的代碼複用.但不知你有沒有想過,軟件開發也是一種工程做業,毫不僅僅是寫代碼,還涉及到工程的各類管理(依賴,打包,部署,發佈,各類渠道的差別管理.....),你天天都在build,clean,簽名,打包,發佈,有沒有想過這種過程,也能夠像代碼同樣被描述出來, 也能夠被複用.編輯器

  • 問題2:在剛接觸AS中的監聽器的用法的時候,不清楚監聽器的用法和存在乎義是什麼。
  • 問題2解決方案:上網查詢了資料,有了一個初步大體的瞭解。函數

    一、監聽器是個抽象類,它包含了一個事件觸發時系統會去調用的函數
    二、在子類中,根據您項目的須要重寫這個函數
    三、派生後的監聽器須要綁定到按鈕上,就像一個耳機能夠發出聲音,但您不去戴它,您是聽不到它發出的聲音的。通常的狀況是這個按鈕可能須要這個監聽器,而另一個按鈕須要另一個監聽器,每一個監聽器各司其職,但功能類似時,也能夠多個按鈕共同綁定一個監聽器。
    四、各類控件,都有經常使用的事件,如點擊按鈕,拖動一個滾動條,切換一個ListView的選項等等,他的綁定監聽器的函數命名規則是setOn****Listener

  • 問題3:在學習與活動相關的意圖的時候,教材上說意圖分爲顯式意圖和隱式意圖,不是很清楚他們到底表明的是什麼。
  • 問題3解決方案:顯式意圖:調用Intent.setComponent()或Intent.setClass()方法明確指定了組件名的Intent爲顯式意圖,顯式意圖明確指定了Intent應該傳遞給哪一個組件。
    隱式意圖:沒有明確指定組件名的Intent爲隱式意圖。 Android系統會根據隱式意圖中設置的動做(action)、類別(category)、數據(URI和數據類型)找到最合適的組件來處理這個意圖。
    顯示意圖很是經常使用也很是簡單通常用於應用程序內之間Activity的相互調用轉換。
    隱式意圖:
    簡單歸納就是: 意圖包括:Action(動做),Category(附加信息),Data(數據,具體內容),Tpye(類型)等等,舉個例子,說白了意圖就是啓動一個組件的的完整的動做信息,就像打人,打就是Action動做,人就是Data內容,而Type就是類型,打什麼人呢?打壞人,type就是壞指的類型,只有這些信息全了才能執行一個完整的意圖,固然還有一些信息,好比scheme就是URI類型的數據的前綴,就像這個例子當中的sms:,還有host主機名,path路徑等。

代碼調試中的問題和解決過程

  • 這周沒有代碼哦~

代碼託管

  • 沒有代碼也就沒有碼雲連接了吧(^▽^)

上週考試錯題總結

  • 錯題1:One operation that we might want to implement on a Stack and a Queue is full, which determines if the data structure has room for another item to be added. This operation would be useful

A . only if the Queue or Stack is implemented using an array
B . only if the Queue or Stack is implemented using a linked list
C . only for a Queue
D . only for a Stack
E . none of the above, a full operation is not useful at all

  • 解析 因爲該數組是一個靜態大小的對象,所以若是它被填充,則應該阻止任何添加類型的操做,不管是List插入,隊列入隊仍是堆棧推入。 這能夠經過首先檢查結構是否已滿來肯定。 若是數據結構是使用鏈表實現的,那麼這是沒必要要的,由於(咱們假設)總會有動態內存可用於添加新元素。
  • 緣由 這道題是因爲我理解錯了題意,個人想法是堆棧和隊列使用鏈表來實現的,而鏈表是動態的,因此檢查結構是否已盡是沒有意義的。但我忘記了最最最重要的一點!!!那就是鏈表也是要由數組來實現的。
  • 錯題2:In a linked list in Java

A . the link is an object
B . the link is a node
C . the link is a reference
D . the link is an int
E . the link is a class

  • 解析 在連接列表中,連接是對下一個節點的引用。 經過檢查參考文獻的內容,經過「取消參考」來連接連接。 節點是對象。 對象是類的實例。 一個節點的數據部分多是一個int,以及任何其餘類型的數據。
  • 緣由 這道題錯誤就是對鏈表的定義理解不清了。
  • 錯題3:A simple linear list

A . is an example of a degenerate tree
B . is an example of a degenerate graph
C . is an example of a degenerate digraph
D . cannot be represented as a degenerate tree, graph or digraph
E . none of the above

  • 解析 一個簡單的線性列表從它的起始節點到它的結束節點。 圖表和二元圖都不具備起始節點,可是樹具備:樹的根。 所以,一個簡單的線性列表就是一個退化樹的例子,它具備一個分支因子,每一個節點只有一個後繼,從根開始,到單葉(結束節點)。
  • 緣由 學習的時候不理解退化樹代碼的是什麼。。。
  • 錯題4:在Ubuntu中,使用vim編輯器時,想要移動光標,除方向鍵以外,還能夠依次使用hjkl鍵進行上下左右的移動。

A . true
B . false

  • 解析 上下左右順序依次是kjhl
  • 緣由 這道題是防不勝防啊,徹底就沒注意到這裏還可以有錯誤。

結對及互評

  • 博客中值得學習的或問題:
    • 排版精美,對於問題研究得很細緻,解答也很周全。
  • 代碼中值得學習的或問題:
    • 代碼寫的很規範,思路很清晰,繼續加油!

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20172332
    • 20172326
    • 結對學習內容
      • 第23章 Android簡介
      • 第24章 初始Android
      • 第25章 活動
      • 第26章 UI組件

其餘(感悟、思考等,可選)

這周學習的知識相比前幾周來講是要難上很多的,畢竟接觸的是新的東西,從Android studio的安裝開始都困難不斷,不是這兒出了毛病,就是那兒出了問題。在AS上進行Android的開發對我來講是很陌生的,經過這一週的學習也着實充實了本身,學習到了很多新的知識,儘管是一個很簡單的APP,但因爲是本身親手編寫的,看到它可以在手機上運行起來仍是很開心的。這一週也更加讓我意識到本身學缺少的知識還多的多,但願本身可以在之後的學習生活中繼續努力,看到本身一點點不斷地進步。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 126 1/1 20/20
第二週 388/466 1/2 15/35
第三週 706/1162 1/3 17/52
第四周 1104/2266 1/4 20/72
第五週 1126/3392 1/5 15/87
第六週 906/4298 1/6 20/107
第七週 1233/5531 1/7 20/127
第八週 1091/6622 1/8 24/151
第九周 320/7042 1/9 20/171
第十週 335/7377 1/10 20/191
第十一週 0/7377 1/11 20/211
  • 計劃學習時間:20小時

  • 實際學習時間:20小時

參考資料

相關文章
相關標籤/搜索