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

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

教材學習內容總結

Java和Android開發學習指南 第23章 Android簡介

1、4種Android應用程序組件
一、活動 ( Activity ) : 包含用戶交互組件的一個窗口 。
二、服務 ( Service ) : 在後臺長時間運行的操做 。
三、廣播接收者 (Broadcast receiver ) : —個監聽器 , 負責對系統或應用程序聲明作 出響應 。
四、內容提供者 ( Contentprovider ) : 管理要和其餘應用程序分享的一組數據的一個 組件php

2、intent
Android 編程中的另外一個重要的概念是意圖(intent),意圖是一條消息 ,發送給系統或另外一個應用程序 ,以要求執行一個動做 。可使用意圖來作不少不一樣的事情 ,但一般使用意圖來啓動一個活動 ,啓動一個服務或者發送條廣播 。每一個應用程序都必須有一個清單( manifest ),描述該應用程序 。清單以 XML 文件的形式給出 , 其中 包含了以下的一項或 幾項 :
一、運行該應用程序所需的最小APILevel 。
二、應用程序的名稱 。這個名稱將會顯示在設備上 。
三、當用戶在其手機或平板電腦的主屏幕上觸碰該應用程序的圖標的時候 ,將會打開的第一個活動 ( 窗口 ) 。
四、是否容許從其餘的應用程序調用你的 應用程序組件 。爲了促進代碼複用 ,只要應用程序的開發者贊成分享 ,就能夠從其餘應用程序調用該應用 程序的功能 。例如 ,能夠從須要照片和視頻拍攝功能的應用程序中 ,調用默認的Camera 應用程序 。
五、對於在目標設備上安裝的應用程序 ,用戶必須保證一組什麼樣的許可 。若是用戶不能保證全部必須的許可 ,將不會安裝該應用程序 。html

Java和Android開發學習指南 第24章 初識Android

1、下載和安裝Android Studio
一、首先運行android-studio-ide-173.4720617-windows,開始安裝
注:通過屢次嘗試,必須將Android Stuidio的安裝路徑放於C盤的一個空文件夾裏,而且,所建的文件夾名字不能帶有ACSⅡ字符,好比中文。
java

二、開始進行配置文件
(1)咱們第一次打開AS須要咱們配置必定的文件他纔會順利爲咱們打開,首先,當安裝好之後呈現出這個頁面之後:

(2)點擊新建一個項目(這裏要注意一個定義,這裏咱們建的項目是一個總體的項目,新手小白可能會出現創建新項目就是新建一個app的想法,新建一個模塊是能夠在這個項目裏面創建的,因此這裏建議將這個項目不要命名爲一個程序的名字,要麼之後後悔都來不及,建議命名爲「AndroidProject」之類的名字,以避免區分其餘程序項目node

(3)接下來應該會呈現這樣一個界面
android

默認選擇之後,到了重頭戲:
git

到了這個頁面的時候,須要選擇cancel,由於在個人試驗裏,假如選擇Setup Proxy,它會一直重複這個過程直到咱們本身崩潰,當咱們選擇cancel之後,就緊接着繼續後續操做,剛剛沒有選擇cancel的過程是咱們須要下載成功製造一個app須要的配置文件,好比:grade等等。當咱們下載繼續一路next之後,就完成了咱們的配置工做。(若是是按照上述徹底同樣,會成功,假若有一步不對,就會出現大大小小的問題)web

2、建立應用程序編程

Java和Android開發學習指南 第25章 活動

1、活動的生命週期
一、活動是android.app. Activity類的一個實例。一個典型的Android應用程序,都是從啓動一個活動開始的,也就是說,啓動一個活動就意味着要顯示一個窗口。應用程序所建立的第一個窗口,叫做主活動(main activity),它充當應用程序的入口點。
二、當用戶從主屏幕選擇一個應用程序圖標的時候,系統將會查找應用程序的主活動並啓動它。啓動一個活動涉及實例化活動類(這在清單中的activity元素的android:name屬性中指定),而且調用其生命週期方法。vim

2、修改應用程序圖標
一、在res/drawable中保存一個jepg文件或者png文件。png文件是首選的,由於這個格式支持透明度。windows

3、啓動另一個活動
一、經過調用startActivity方法而直接作到,好比startActivity(intent),其中intent就是android.content.Intent類的一個實例。

Java和Android開發學習指南 第26章 UI組件

1、概覽
一、Android SDK提供了叫做微件(widget)的衆多簡單的和複雜的組件。微件的例子,包括不少按鈕、文本字段和進度條等。此外,還須要選擇一個佈局來放置UI組件。微件和佈局,都在android.view.View類中實現。視圖是佔據屏幕的一個矩形區域。View類是最重要的Android類型之一。

2、Toast
一、Toast是一個小的彈出的對話框,用於顯示一條消息做爲給用戶的反饋。Toast並不會代替當前的活動,而且只是佔據了一條消息那麼大的空間。
二、andriod.widget.Toast類是建立Toast的模板。要建立一個Toast,調用它惟一的構造方法,接受Context做爲一個參數:
public Toast(android.context.Context context)
Toast還提供了兩個靜態的makeText方法來建立Toast的實例。該方法的兩種重載形式的簽名以下:
public static Toast makeText(andriod.content.Context context,int rezourceId,int duration)
public static oast makeText(andriod.content.Context context,java.lang.CharSequence text,int duration)

3、通知
一、通知是出如今狀態欄的一條消息,和Toast不一樣,通知是持久的,而且將保持顯示,直到關閉它或者關閉設備。
二、通知是android.app.Notification的實例。建立一個通知的最方便的方法,是使用一個叫作Builder的嵌套類,能夠經過傳遞一個Context來實例化該類。而後,能夠在該Builder上調用build方法來建立一個Notification。
例如:Notification n = new Notification.Builder(context).build();

Java和Android開發學習指南 第27章 佈局

1、概覽
一、佈局是android.view. ViewGroup的 子類,該類反過來又派生自android.view. View類。ViewGroup是一個特殊的視圖,它能夠包含其餘的視圖,能夠在一個佈局文件中聲明佈局,或者在運行時經過編程添加布局。
以下是Android中的一些佈局。
(1)LinearLayout。將全部子視圖以相同的方向(或者水平地或者垂直地)對齊的一個佈局。
(2)RelativeLayout。根據子視圖的一個或多個同級視圖的位置來排列它的一個佈局。
(3)FrameLayout。將每個子視圖放在另外一個子視圖頂部的一種佈局。
(4)TableLayout。將子視圖按照行和列來組織的一種佈局。
(5)GridLayout。將子視圖放置到一個柵格中的一種佈局。

2、LinearLayout
一、LinearLayout是根據其orientation屬性,將子視圖水平地或垂直地排列的一種佈局。LinearLayout是最 容易使用的佈局。

Java和Android開發學習指南 第28章 監聽器

1、概覽
一、使用活動中的一個視圖進行的用戶交互,可能會觸發一個事件,並且你能夠編寫當事件發生的時候所執行的代碼。包含了響應某一個事件的代碼的類,叫做事件監聽器(event listener)。
二、要讓程序響應某一個事件,須要爲該事件編寫一個監聽器。作到這一點的方式,是實現嵌入在 android.view.View類中的一個接口。

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

  • 問題1:
    第一次安裝AS 的時候,看了網上安裝AS的教程,在遇到就是在過程當中寫到的這個:

一直都在點Setup Proxy,在這裏弄了很久。

  • 問題1解決方案:
    在上文中也提到過,我點擊了Cancel,在後面配置的時候自動就下載了grade等配置文件。

  • 問題2:
    在第一次打開的時候,R就是紅色的,顯示R文件丟失,如圖

  • 問題2解決方法:
    一、首先有兩種解決策略:
    (1)若是急用或是建立過的項目須要修改:
    能夠先選擇爲android,而後點開Gradle Scripts下的gradle.properties

並在最後一行添加
android.enableAapt2=false

(2)永久禁用
假若有這樣的問題,說明安裝路徑裏面可能有中文,因此把它移到一個新的文件夾下面,並且這個文件夾名字不能有中文就能夠了。
ps:假如在C盤記得給予這個文件夾管理員權限!!!

二、接下來也是關鍵一步,進入build—>clean build,而後build—>rebuild,大多時候狀況就會解決了

三、接下來開始運行app,在這裏我建議運行下面的測試,由於這樣會避免錯誤,會成功安裝程序在手機裏。

或者在這裏運行:

上週考試錯題總結

  • 錯題1
    A collection in the items stored there are of different types is referred to as a (n) ________ type.
    A. homogeneous
    B. heterogeneous
    C. dynamic
    D. abstract
    E. vector

    正確答案: B  個人答案: C

解析:術語異構意味着元素是不一樣的類型。在Java中,類能夠存儲異構類型,例如一個實例數據多是一個int,另外一個是String,第三個是double。另外一方面,數組是同類型的,由於存儲在數組中的每一個元素都是相同的類型。

  • 錯題2
    Which of the following is considered an Abstract Data Type?
    A. array
    B. reference variable
    C. any of the primitive types (e.g., int, double, char)
    D. vector
    E. all of the above

    正確答案: D  個人答案: C

解析:抽象數據類型包含數據結構以及操做和訪問數據結構的方法。在列出的那些中,只有矢量結合了這二者。該數組是數據結構,但沒有方法(例如插入方法或搜索方法),而引用變量和基本類型是數據而不是數據結構。

  • 錯題3
    Abstract Data Types have which of the following object-oriented features?
    A. information hiding
    B. inheritance
    C. polymorphism
    D. message passing
    E. all of the above

    正確答案: A  個人答案: C

解析:全部這些答案都是面向對象功能的類型。抽象數據類型封裝了數據結構和操做數據結構的方法,從而保留了信息隱藏。所以,全部ADT都利用信息隱藏功能,以便數據結構不能直接從ADT外部操做,但不須要其餘面向對象的功能。

  • 錯題4
    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

    正確答案: A  個人答案: B

解析:因爲該數組是一個靜態大小的對象,所以若是它被填充,則應該阻止任何添加類型的操做,不管是List插入,隊列入隊仍是堆棧推入。這能夠經過首先檢查結構是否已滿來肯定。若是數據結構是使用鏈表實現的,那麼這是沒必要要的,由於(咱們假設)總會有動態內存可用於添加新元素。

  • 錯題5
    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

    正確答案: C  個人答案: A

解析:在連接列表中,連接是對下一個節點的引用。經過檢查參考文獻的內容,經過「取消參考」來連接連接。節點是對象。對象是類的實例。一個節點的數據部分多是一個int,以及任何其餘類型的數據。

  • 錯題6
    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

    正確答案: A  個人答案: D

解析: 一個簡單的線性列表從它的起始節點到它的結束節點。圖表和二元圖都不具備起始節點,可是樹具備:樹的根。所以,一個簡單的線性列表就是一個退化樹的例子,它具備一個分支因子,每一個節點只有一個後繼,從根開始,到單葉(結束節點)。

  • 錯題7
    The push and enqueuer operations are essentially the same operations, push is used for Stacks and enqueue is used for Queues.
    A. true
    B. false

    正確答案: B  個人答案: A

解析:儘管這兩個操做對於其各自的抽象數據類型都是「添加」或「插入」操做,但它們的不一樣之處在於,始終在堆棧的頂部(或前面)添加推入,而排隊始終在隊列的後部添加。

  • 錯題8
    Linux Bash中,使用man 3 printf命令不能查看C語言中的printf函數的幫助文檔。
    A. true
    B. false

    正確答案: B  個人答案: A

解析:使用man 3 printf命令能夠查看C語言中的printf函數的幫助文檔。

  • 錯題9
    Linux Bash中,使用sudo apt-get upgrade命令能夠更新系統。
    A. true
    B. false

    正確答案: A  個人答案: B

解析:知識點不熟悉。

  • 錯題10
    一個具備執行權限的目錄能夠被打開並查看內部文件。
    A. true
    B. false

    正確答案: B  個人答案: A

解析:一個目錄同時具備讀權限和執行權限才能夠打開並查看內部文件。

  • 錯題11
    Linux Bash中,可使用chomd 777 pdds命令修改文件pdds的權限,並使得其擁有者、擁有者所在的組和其餘用戶都擁有所有權限。
    A. true
    B. false

    正確答案: B  個人答案: A

解析:應該是:chmod 777 pdds,不是 chomd 777 pdds

  • 錯題12
    Linux Bash中,使用rm –r /dky/D*命令強制刪除/dky目錄下全部D開頭的文件。
    A. true
    B. false

    正確答案: B  個人答案: A

解析:應該是:rm –f /dky/D*

  • 錯題13
    Linux Bash中,查找五天以內src目錄中刪除的文件的命令是find /src/ -ctime -5。
    A. true
    B. false

    正確答案: A  個人答案: B

解析:知識點不清楚。

  • 錯題14
    Linux Bash中,使用tar命令把文件dky打包成dky.tar的命令是tar –c dky.tar dky 。
    A. true
    B. false

    正確答案: B  個人答案: A

解析:應該是:tar –cf dky.tar dky

  • 錯題15
    Linux Bash中,使用grep查找當前src目錄下全部包含main函數的文件,並要求顯示出現行號的命令是grep –n main /src
    A. true
    B. false

    正確答案: B  個人答案: A

解析:應該是:grep –rn main /src

  • 錯題16
    在Ubuntu中,使用vim編輯器時,想要移動光標,除方向鍵以外,還能夠依次使用hijk鍵進行上下左右的移動。
    A. true
    B. false

    正確答案: B  個人答案: A

解析:應該是:上下左右順序依次是kjhl

  • 錯題17
    在Linux Bash中,爲全部人對file1.txt文件添加寫入權限的命令是chmod o+w filel.txt 或者 chmod 666 filel.txt.
    A. true
    B. false

    正確答案: B  個人答案: A

解析:chmod a+w filel.txt 或者 chmod 666 file,注意 a+w 和 o+w 的區別

代碼託管

因爲過於龐大,不加入實際代碼行

結對及互評

  • 本週結對學習狀況
  • 博客中值得學習的或問題:
    • 內容詳略得當;
    • 代碼調試環節比較詳細;
  • 基於評分標準,我給本博客打分:5分。得分狀況以下:
  1. 正確使用Markdown語法(加1分):

  2. 模板中的要素齊全(加1分)

  3. 教材學習中的問題和解決過程, 一個問題加1分

  4. 代碼調試中的問題和解決過程, 一個問題加1分

  • 博客中值得學習的或問題:
    • 內容詳略得當;
    • 代碼調試環節比較詳細;
  • 基於評分標準,我給本博客打分:9分。得分狀況以下:
  1. 正確使用Markdown語法(加1分):
  2. 模板中的要素齊全(加1分)
  3. 教材學習中的問題和解決過程, 一個問題加1分
  4. 代碼調試中的問題和解決過程, 一個問題加1分

感想

這周又新接觸了一門新東西,以爲咱們這一學期學的新東西仍是足夠多的,可是一方面,不少同窗都是隻是會敲,可是不少人不理解不管是Java仍是AS,就是學習學的不夠完全,留下了不少問題須要去解決,因此,以致於在最近不少同窗很叫作所謂的伸手黨,雖然我以爲這個詞,形容的不是那麼很合理,可是也是由於反映出來這樣一種事實,對於Java語言不少方面的不理解致使的問題,因此,我記得別人給我說過這樣一句話:「會者不難,難者不會。」因此,但願咱們你們一塊兒努力,加油!

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積)
目標 5000行 30篇 400小時
第一週 156/156 1/1 15/15
第二週 217/371 1/2 20/35
第三週 233/604 2/4 20/55
第四周 1382/1986 1/5 35/90
第五週 146/2196 1/6 25/115
第六週 462/2658 1/7 15/130
第七週 856/3514 1/8 20/150
第八週 1877/5391 3/11 20/170
第九周 1747/7138 1/12 20/190
第十週 1323/8461 2/14 30/220
第十一週 0/8461 1/15 50/270

參考資料

MarkDown 圖片大小問題
關於清單文件
android學習——AndroidManifest.xml清單文件的重要性
一步一坑學android之禁用Appt2(andriod studio3.0)
Android
藍墨雲班課

相關文章
相關標籤/搜索