freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的五子棋游戲的設(shè)計(jì)——doc畢業(yè)設(shè)計(jì)(doc畢業(yè)設(shè)計(jì)論文)(已改無(wú)錯(cuò)字)

2022-07-26 02:12:03 本頁(yè)面
  

【正文】 層協(xié)議層 ”,它是網(wǎng)景公司提出的基于 WEB 應(yīng)用的安全協(xié)議,當(dāng)前版本為 。SSL 協(xié)議指定了一種在應(yīng)用程序協(xié)議 (如 HTTP、Tele、NMTP 和 FTP 等) 和 TCP/IP 協(xié)議之間提供數(shù)據(jù)安全性分層的機(jī)制,它為 TCP/IP 連接提供數(shù)據(jù)加密、服務(wù)器認(rèn)證、消息完整性以及可選的客戶(hù)機(jī)認(rèn)證。它已被廣泛地用于 Web 瀏覽器與服務(wù)器之間的身份認(rèn)證和加密數(shù)據(jù)傳輸。SSL 協(xié)議位于 TCP 膽協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL 協(xié)議可分為兩層:SSL 記錄協(xié)議 (SSL Record Proto col):它建立在可靠的傳輸協(xié)議( 如 TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL 握手協(xié)議 (SSL Hand shake proto col):它建立在 SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開(kāi)始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。SSL 協(xié)議提供的服務(wù)主要有: ①認(rèn)證用戶(hù)和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶(hù)機(jī)和服務(wù)器。②加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取。③維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過(guò)程中不被改變。(7)SQLite:SQLite 是一套開(kāi)放性的關(guān)聯(lián)式資料庫(kù),能夠被所有應(yīng)用程序使用的輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù)引擎。(8)web Kit:是一個(gè)先進(jìn)的網(wǎng)頁(yè)瀏覽器引擎,被用來(lái)構(gòu)建 Android 瀏覽器和內(nèi)嵌的 web 視圖,也可以讓開(kāi)發(fā)者利用這個(gè)引擎來(lái)做不同的應(yīng)用。(9)lib c:就是一個(gè) BSD 標(biāo)準(zhǔn) C 類(lèi)庫(kù)。但是,針對(duì) Linux 嵌入式裝置進(jìn)行過(guò)最佳化的調(diào)整。 Android 運(yùn)行時(shí)的組件雖然 Android 是用 Java 語(yǔ)言來(lái)開(kāi)發(fā)、撰寫(xiě)應(yīng)用程序,但卻不使用 Java 運(yùn)行時(shí)組件來(lái)執(zhí)行 Java 程序,而是使用了由 Google 自行研發(fā)的 Android 運(yùn)行時(shí)組件來(lái)執(zhí)行程序。 Android 運(yùn)行時(shí)組件包括兩個(gè)重要的部分,一個(gè)是核心類(lèi)庫(kù),另一個(gè)是 Dalvik 虛擬機(jī)。 Android 應(yīng)用的構(gòu)成和工作機(jī)制對(duì)于一個(gè) Android 應(yīng)用程序來(lái)說(shuō),是由 Activity、IntentReceiver 、Service 、Content Provider 四部分組成,但并不是每一個(gè) Android 應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時(shí),需要在配置文件 中進(jìn)行配置。這個(gè)配置文件是每個(gè) Android 應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等。Android 應(yīng)用的構(gòu)成和工作流程如圖 22: 圖 22 Android 的構(gòu)成和工作流程4 Android 應(yīng)用程序架構(gòu)結(jié)構(gòu)剖析本章將會(huì)詳細(xì)敘述 Android 的應(yīng)用程序所包括的基本組件,還有這些組件之間的溝通方式—Intent(除了 Contentprovider),同時(shí)講解一下 Android 應(yīng)用程序的生命周期(Activity)—這是其他智能收與 Android 手機(jī)平臺(tái)最顯著不同的地方。最后將介紹在 Android 的應(yīng)用程序中如何利用下載外部資源。 應(yīng)用程序基礎(chǔ)Android 的應(yīng)用程序全部都是用 Java 編程語(yǔ)言所寫(xiě)的。編譯后的 Java 代碼——包括應(yīng)用程序要求的任何數(shù)據(jù)和資源文件,是通過(guò) aapt 工具捆綁成一個(gè) Android 包, 為后綴。這個(gè)文件是分發(fā)應(yīng)用程序和安裝到移動(dòng)設(shè)備的中介或者是工具,用戶(hù)下載這個(gè)文件到他們自己的設(shè)備上。一 文件中的所有代碼就會(huì)被認(rèn)為是一個(gè)應(yīng)用程序。aapt 是 Android Asset Packaging Tool 的首寫(xiě)字母的縮寫(xiě),這個(gè)工具包是含在 SDK 的 tools/目錄下的。查看、創(chuàng)建、更新與 zip 兼容的歸檔文件(zip、jar 、 apk) 。它也能將資源文件編譯成二進(jìn)制包。雖然你可能不會(huì)經(jīng)常直接使用 appt,但構(gòu)建腳本(build scripts)和 IDE 插件會(huì)使用這個(gè)工具打包成 apk 文件,構(gòu)成一個(gè) Android 的應(yīng)用程序。下面是更詳細(xì)的使用細(xì)節(jié),首先打開(kāi)一個(gè)終端,進(jìn)入 tools/目錄下,運(yùn)行命令:Linux 或 Mac 操作系統(tǒng):./aapt ,如果是 Windows: 。在這里注意的是:tools/ 目錄指的是 android SDK 目錄下的/platforms/androidX/tools/。在很多的方面,每個(gè) Android 的應(yīng)用程序是生活在它自己的世界。默認(rèn)的情況下,任何一個(gè)應(yīng)用程序是運(yùn)行在它自己的 Linux 進(jìn)程中。而當(dāng)應(yīng)用程序中的任何代碼需要被執(zhí)行時(shí)候,Android 將啟動(dòng)進(jìn)程;當(dāng)它不再需要和系統(tǒng)資源不會(huì)被其他應(yīng)用程序所請(qǐng)求時(shí),Android 就會(huì)關(guān)閉進(jìn)程這個(gè)進(jìn)程。每一個(gè)應(yīng)用程序都有自己的 Java 虛擬機(jī)(VM) ,所以應(yīng)用程序的代碼是獨(dú)立于其他所有的應(yīng)用程序代碼的運(yùn)行。在默認(rèn)情況下,每一個(gè)應(yīng)用程序分配一個(gè)唯一的 Linux 用戶(hù) ID。權(quán)限被設(shè)置為每一個(gè)應(yīng)用程序的文件僅對(duì)用戶(hù)和應(yīng)用程序自己本身可見(jiàn)。雖然有一些方法也可以暴露他們給其他應(yīng)用程序。也有可能的是設(shè)置兩個(gè)應(yīng)用程序共享一個(gè)用戶(hù) ID,這種情況下,他們能夠看到對(duì)方的文件。為了節(jié)省系統(tǒng)資源的占用,具有相同 ID 的應(yīng)用程序最好可以安排在同一個(gè) Linux 進(jìn)程中,共享同一個(gè) VM。 應(yīng)用程序組件Android 的一個(gè)主要特點(diǎn)是,一個(gè)應(yīng)用程序可以利用其他應(yīng)用程序的元素(假設(shè)這些應(yīng)用程序允許的話(huà)) 。例如,如果你的應(yīng)用程序需要顯示一個(gè)圖像的滾動(dòng)列表,且其他應(yīng)用程序已經(jīng)開(kāi)發(fā)了一個(gè)合適的滾動(dòng)條并可以提供給別的應(yīng)用程序用,你可以調(diào)用這個(gè)滾動(dòng)條來(lái)工作,而不用自己開(kāi)發(fā)一個(gè)。你的應(yīng)用程序不用并入其他應(yīng)用程序的代碼或鏈接到它。相反,當(dāng)需求產(chǎn)生時(shí)它只是啟動(dòng)其他應(yīng)用程序塊。對(duì)于這個(gè)工作,當(dāng)應(yīng)用程序的任何部分被請(qǐng)求時(shí),系統(tǒng)必須能夠啟動(dòng)一個(gè)應(yīng)用程序的進(jìn)程,并實(shí)例化該部分的 Java 對(duì)象。因此,不像其他大多數(shù)系統(tǒng)的應(yīng)用程序, Android 應(yīng)用程序沒(méi)有一個(gè)單一的入口點(diǎn)(例如,沒(méi)有 main()函數(shù)) 。相反,系統(tǒng)能夠?qū)嵗瓦\(yùn)行需要幾個(gè)必要的組件。有四種類(lèi)型的組件:活動(dòng)(Activities ) 服務(wù)(Services) 廣播接收者(Broadcast receivers) 內(nèi)容提供者(Content providers) 然而,并不是所有的應(yīng)用程序都必須包含上面的四個(gè)部分,你的應(yīng)用程序可以由上面的一個(gè)或幾個(gè)來(lái)組建。當(dāng)你決定使用以上哪些組件來(lái)構(gòu)建 Android 應(yīng)用程序時(shí),你應(yīng)該將它們列在 AndroidManife 文件中,在這個(gè)文件中你可以聲明應(yīng)用程序組件以及它們的特性和要求。關(guān)于 AndroidManifest.xml 在 Android 開(kāi)發(fā)之旅:HelloWorld 項(xiàng)目的目錄結(jié)構(gòu)的 、 簡(jiǎn)單介紹了一下,你可以參考一下,下篇也將介紹它。 活動(dòng)(Activities) 一個(gè)活動(dòng)表示一個(gè)可視化的用戶(hù)界面,關(guān)注一個(gè)用戶(hù)從事的事件。例如,一個(gè)活動(dòng)可能表示一個(gè)用戶(hù)可選擇的菜單項(xiàng)列表,或者可能顯示照片連同它的標(biāo)題。一個(gè)文本短信應(yīng)用程序可能有一個(gè)活動(dòng),顯示聯(lián)系人的名單發(fā)送信息;第二個(gè)活動(dòng),寫(xiě)信息給選定的聯(lián)系人;其他活動(dòng),重新查看舊信息或更改設(shè)置。雖然他們一起工作形成一個(gè)整體的用戶(hù)界面,但是每個(gè)活動(dòng)是獨(dú)立于其他活動(dòng)的。每一個(gè)都是作為 Activity 基類(lèi)的一個(gè)子類(lèi)的實(shí)現(xiàn)。 類(lèi):因?yàn)閹缀跛械幕顒?dòng)(activities)都是與用戶(hù)交互的,所以 Activity 類(lèi)關(guān)注創(chuàng)建窗口,你可以用方法 setContentView(View)將自己的 UI 放到里面。然而活動(dòng)通常以全屏的方式展示給用戶(hù),也可以以浮動(dòng)窗口或嵌入在另外一個(gè)活動(dòng)中。有兩個(gè)方法是幾乎所有的 Activity 子類(lèi)都實(shí)現(xiàn)的:onCreate(Bundle):初始化你的活動(dòng)( Activity) ,比如完成一些圖形的繪制。最重要的是,在這個(gè)方法里你通常將用布局資源(layout resource)調(diào)用 setContentView(int)方法定義你的 UI,和用 findViewById(int)在你的 UI 中檢索你需要編程地交互的小部件( widgets) 。setContentView 指定由哪個(gè)文件指定布局( ) ,可以將這個(gè)界面顯示出來(lái),然后我們進(jìn)行相關(guān)操作,我們的操作會(huì)被包裝成為一個(gè)意圖(Intent) ,然后這個(gè)意圖對(duì)應(yīng)有相關(guān)的 activity 進(jìn)行處理。 onPause():處理當(dāng)離開(kāi)你的活動(dòng)時(shí)要做的事情。最重要的是,用戶(hù)做的所有改變應(yīng)該在這里提交(通常 ContentProvider 保存數(shù)據(jù)) 。 生命周期如圖 31圖 31Android 的生命周期每一個(gè)應(yīng)用程序可能只包含一個(gè)活動(dòng),或者是像短信應(yīng)用程序一樣,它可能會(huì)包含幾個(gè)活動(dòng)。這些活動(dòng)分別是什么,以及有多少,這個(gè)當(dāng)然取決于它的應(yīng)用程序自己的設(shè)計(jì)。根據(jù)一般情況來(lái)說(shuō),當(dāng)一個(gè)應(yīng)用程序被啟動(dòng)的時(shí)候,會(huì)被標(biāo)記為第一個(gè)的活動(dòng),應(yīng)該展示給用戶(hù)。從一個(gè)活動(dòng)轉(zhuǎn)移到另外一個(gè)活動(dòng)由當(dāng)前的活動(dòng)完成從而開(kāi)始下一個(gè)。每一個(gè)活動(dòng)都會(huì)有一個(gè)默認(rèn)的窗口。根據(jù)一般情況來(lái)說(shuō),窗口是會(huì)填滿(mǎn)整個(gè)屏幕的,但是它也有可能比屏幕小或者是浮在其他窗口上,這個(gè)就是程序員代碼的編寫(xiě)情況了。一個(gè)活動(dòng)還可以使用額外窗口。比如彈出式對(duì)話(huà)框,或者是當(dāng)一個(gè)用戶(hù)選擇屏幕上一個(gè)特定的項(xiàng)時(shí),會(huì)跳出一個(gè)窗口來(lái)顯示給用戶(hù)重要的信息。窗口的可視化內(nèi)容是由繼承自接口為 View 基類(lèi),一個(gè)分層的視圖 —對(duì)象提供。每個(gè)可視化控件是窗口內(nèi)的一個(gè)特定的矩形空間。父視圖包含和組織子女視圖的布局。葉子視圖分層的底層。繪制的矩形會(huì)直接控制和響應(yīng)用戶(hù)的操作。所以,一個(gè)視圖活動(dòng)是與用戶(hù)發(fā)生交互的地方。比如說(shuō),一個(gè)視圖顯示一個(gè)小的圖片和當(dāng)用戶(hù)點(diǎn)擊圖片時(shí)發(fā)起一個(gè)動(dòng)作行為。Android 有一些現(xiàn)成的可視化控件你可以使用,其中包括按鈕(buttons) 、圖片按鈕(ImageButton ) 、文本域(text fields) 、可編輯文本控件(EditText) 、菜單項(xiàng)( menu items) 、仿真時(shí)鐘(AnalogClock )滾動(dòng)條(scroll bars) 、開(kāi)關(guān)按鈕(ToggleButton) 、復(fù)選按鈕(check boxes)等等。通過(guò) () 方法來(lái)設(shè)置一個(gè)視圖層次在我們的活動(dòng)窗口中。內(nèi)容視圖(content view)是層次結(jié)構(gòu)的根視圖對(duì)象。層次結(jié)構(gòu)如下圖 32 所示:圖 32 View 的層次結(jié)構(gòu)()方法:public void setContentView (int layoutResID):根據(jù)布局資源的設(shè)置活動(dòng)界面。資源將會(huì)被夸大,添加布局資源文件中的所有的最高層的視圖( toplevel views )到活動(dòng). 服務(wù)(Services)與 Activity 相反,Service 是沒(méi)有可視化的用戶(hù)界面,但是 Service 的特點(diǎn)是能長(zhǎng)時(shí)間在后臺(tái)運(yùn)行的。所以,也可以這樣去理解,Service 是具有一段較長(zhǎng)生命周期而且沒(méi)有用戶(hù)界面的程序。比如說(shuō)一個(gè)服務(wù)可能要播放背景音樂(lè)但是用戶(hù)做可以去做其他一些事情,或者它也可能從網(wǎng)絡(luò)獲取數(shù)據(jù),也或者是計(jì)算一些東西并會(huì)提供一個(gè)結(jié)果給需要的活動(dòng)(activities) 。每一個(gè)服務(wù)都繼承自 Service 基類(lèi)。每一個(gè)服務(wù)類(lèi)都惠子在 中有自己相應(yīng)的service聲明。服務(wù)必須可以通過(guò) C()或者 ()啟動(dòng)因?yàn)?service 是有兩個(gè)不同的生命周期的。一個(gè)非常典型的例子是媒體播放器播放一個(gè)播放列表中的歌曲文件。該播放器應(yīng)用程序?qū)⒖赡苡幸粋€(gè)或者是多個(gè)活動(dòng)(activities ) ,可以允許用戶(hù)選擇要聽(tīng)的歌曲和開(kāi)始播放。然而,音樂(lè)播放本身就不會(huì)被一個(gè)活動(dòng)處理,因?yàn)橛脩?hù)是希望保持音樂(lè)一直播放的,當(dāng)用戶(hù)離開(kāi)播放器的時(shí)候而去做其他事情。為了保持音樂(lè)能夠繼續(xù)播放,媒體播放器活動(dòng)可以啟動(dòng)一個(gè)服務(wù)運(yùn)行在后臺(tái)的運(yùn)行。系統(tǒng)將會(huì)保持音樂(lè)播放服務(wù)運(yùn)行,甚至媒體播放器離開(kāi)屏幕的時(shí)候??梢赃B接到(綁定到)一個(gè)持續(xù)運(yùn)行的服務(wù)(并啟動(dòng)服務(wù),如果它尚未運(yùn)行) 。連接之后,你可以通過(guò)服務(wù)暴露的接口與服務(wù)交流。對(duì)于音樂(lè)服務(wù),這個(gè)接口可以允許用戶(hù)暫停、倒帶、停止和重新播放。像活動(dòng)(activities)和其他組件一樣,服務(wù)( services)運(yùn)行在應(yīng)用程序進(jìn)程中的主線(xiàn)程中。因此,他們將不會(huì)阻止其他組件或用戶(hù)界面,他們往往產(chǎn)生其他一些耗時(shí)的任務(wù)(如音樂(lè)播放) 。 廣播接收者(Broadcast receivers) 一個(gè)廣播接收者是這樣一個(gè)組件,它不做什么事,僅是接受廣播公告并作出相應(yīng)的反應(yīng)。許多廣播源自于系統(tǒng)代碼,例如公告時(shí)區(qū)的改變、電池電量低、已采取圖片、用戶(hù)改變了語(yǔ)言偏好。應(yīng)用程序也可以發(fā)起廣播,例如為了他其他程序知道某些數(shù)據(jù)已經(jīng)下載到設(shè)備且他們可以使用這些數(shù)據(jù)。一個(gè)應(yīng)用程序可以有任意數(shù)量的廣播接收者去反應(yīng)任何它認(rèn)為重要的公告。所有的接受者繼承自BroadcastReceiver 基類(lèi)。BroadcastReceiver 類(lèi):是接受 sendBroadcast()發(fā)送的意圖(intents )的基類(lèi)??梢杂?erReceiver()動(dòng)態(tài)地注冊(cè)這個(gè)類(lèi)的實(shí)例,或者通過(guò) 中receiver標(biāo)簽靜態(tài)發(fā)布。注意:如果你在 () 注冊(cè)一個(gè)接受者,你應(yīng)該在 ()注銷(xiāo)它。因?yàn)楫?dāng)暫停時(shí)你不會(huì)收到意圖,注銷(xiāo)它將削減不必要的系統(tǒng)開(kāi)銷(xiāo)。不要在 ()中注銷(xiāo)它,因?yàn)樗鼘⒉粫?huì)被調(diào)用,如果用戶(hù)移動(dòng)到先前的堆棧。有兩種主要的可接受廣播類(lèi)型:正常廣播(由 發(fā)送)是完全異步的。所有的廣播接收者以無(wú)序方式運(yùn)行,往往在同一時(shí)間接收。這樣效率較高,但是意味著接受者不能使用結(jié)果或終止廣播數(shù)據(jù)傳播。 有序廣播(由 發(fā)送)一次傳遞給一個(gè)接收者。由于每個(gè)接收者依次執(zhí)行,因此它可以傳播到下一個(gè)接收器,也可以完全終止傳播以便他不會(huì)傳
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1