Android in Practice筆記第二章

2021-08-26 18:59:16 字數 2863 閱讀 9347

第二章

2. android的許可權

android的每個許可權label保護相關的資源,在應用的manifest檔案裡宣告的users-permission節點會在使用者安裝應用的時候提示給使用者,使用者確定之後表示這些相關的許可權就授權給應用了。因此,應用程式在runtime是不做相關的檢查的。在應用程式中執行乙個沒有授權的動作時,會丟擲securityexception的異常。

android的許可權定義在常量manifest.permission類裡。

你也可以自定義自己的許可權,然後給intent,activity,service和broadcase使用。

3. resources

resource包括,國際化文字或者其他任意靜態值。

resource定義在/res目錄下。

resource可以在code裡或者xml裡訪問。

4. resource的特點

每個resource都有id

每個resource都有乙個固定的型別

resource有特殊的存放位置和檔案

5. 在/res目錄下宣告的resource不僅作為你的應用程式的一部分被打包,而且也在程式裡被訪問。

一旦你定義乙個resource在/res(除了/res/raw目錄下,該目錄下存放audio或者video檔案等)目錄下,android平台會自動解析它,然後使用aapt工具去關聯乙個id到r上。

6. 為什麼會有resources

第一,隔離了**和外部資源,這樣就能保證**關注於應用以及整潔

第二,resources高效並且快速的被訪問到,因為xml被編譯成為二進位制格式

第三,resources支援在執行時根據環境(比如語言,螢幕配置以及硬體能力等)來動態載入

7. plurals資源(複數)

plural是用來讓系統自動處理復數字串的一型別特殊資源,這個主要用於處理英語裡名詞的單數和複數用的。

1 new deal!

%dnew deals!

注意:1) xmlns:xliff是指定oasis xliff xml format

2) 需要定義兩個item,乙個one,另乙個other。就是區分單數和複數的不同顯示

3) 在item節點裡可以使用string.format

4) 使用resources.getquantitystring(r.plurals.deal_service_ new_deal, 1)來訪問plurals資源。(這裡傳入的是1,也可以傳入其他數字)

8. 字串資源放在/res/values目錄下

9. assets

如果你需要普通訪問而不是被aapt處理過的檔案,你就可以把檔案放到/assets目錄下。任何放在/assets資料夾下的檔案都可以被應用訪問。

10. views and widgets

android.view.view是所有檢視的基類。分為三大類主要的views:

1) su***ceview:可以在其上通過drawing和graphics畫出介面

2) viewgroup:對應於各種layout以及group容器

3) widget:android.widget包下的各種android提供的控制項

11. intents和intentfilters

intent描述你想做什麼操作,他不做任何實際的操作,僅僅描述什麼事情需要去做。

intentfilter用於宣告component處理哪些指定的intent。

12. 發起分享intent

intent i = new intent(intent.action_send);

i.settype(type);

i.putextra(intent.extra_subject, "subject:");

i.putextra(intent.extra_text,」abc」);

startactivity(intent.createchooser(i, "share deal ..."));

最後這一行**裡,通過intent.createchooser(i,"share deal …"))去建立了乙個chooser,"share deal …"會作為共享介面的title,並且會通過chooser挑出符合該intent的選項,並且不會出現選擇預設選項。如圖所示:

將上面的**改為下面的之後:

startactivity(i);

13. intent分類

1) 顯式的intent(explicit),這個一般用在應用的內部,需要知道component的具體名字以及類名。

2) 隱式的intent(implicit),跟外部的應用聯絡時,使用隱式的。

隱式intent通過action,data,type等屬性被平台解析找到相應的能處理的元件。

14. intent解析

這裡main和launcher用於宣告component能夠響應home按鈕。

這個intentfilter解析過程:

i. action(send)

ii. category(default),使用startactivity方法啟動乙個隱式的intent的時候,都會自動為其加乙個default的category

iii. data

android通過packagemanager去追蹤有哪些註冊的intentfilter。當乙個新應用安裝的時候,應用裡的intentfilter就被加到packagemanager,被解除安裝的時候就刪除。

16. connectivitymanager

this.cmgr = (connectivitymanager)this.getsystemservice(context.connectivity_service);

connectivitymanager是系統服務,可以通過它去檢查網路狀態

17.

第二學習筆記

我是在大話資料結構學的,所以可能會和培訓的不太一樣 用例子解釋資料的基本概念 資料物件就像是人類這個群體 資料元素就是全部人類中的乙個人 資料項就是乙個人的姓名,生日,身高等等特點。所以,資料項就像是集合裡的元素一樣,是資料不可分割的最小單位 所以,其實這些概念就是包含與被包含的關係,也就是集合 資...

第二週學習筆記

從課堂上的內容大體可以歸為如上,概念模型因為在具體使用當中較少接觸故簡單介紹其優點。下面將用較大篇幅詳細討論e r模型的實際使用和visio表示的意義。首先,要明白圖表中不同方框代表什麼,方框代表實體,而橢圓框代表屬性,那麼什麼是實體什麼又是屬性呢,那讓我們用乙個簡單的關係圖表來了解一下。這是乙個典...

第二章筆記

1.遞迴查詢和迭代查詢 遞迴查詢是一條環路,直接想成遞迴的定義就行,你想查乙個 的ip,首先將這個 傳給它的本地dns,然後認為本地dns可以直接將ip給你,然後本地dns為了知道這個ip又詢問下個dns伺服器。從此可以看出,增加了被涉及的伺服器的資料,所以一般用迭代查詢,迭代查詢是你詢問完後給你下...