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

正文內(nèi)容

基于android的天氣預(yù)報(bào)系統(tǒng)設(shè)計(jì)說明-文庫吧

2025-06-11 13:20 本頁面


【正文】 第二章 平臺(tái)及關(guān)鍵技術(shù)介紹 Android 介紹Android 一詞的本義指“機(jī)器人” ,同時(shí)也是谷歌在 2022 年 11 月發(fā)布的基于 Linux 平臺(tái)的開源操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成 [11]。Android 實(shí)質(zhì)上是一個(gè)完整的手機(jī)操作系統(tǒng),其核心是 Linux(安全管理、內(nèi)存管理、進(jìn)程管理、電源管理、硬件驅(qū)動(dòng)) ,它作為應(yīng)用程序與安卓設(shè)備硬件的中間件,為用戶提供了相對(duì)友好的展現(xiàn)界面 [12]。同時(shí),Android 也集成了一些關(guān)鍵的應(yīng)用程序。Android 是一種基于 Linux 的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由 Google 公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。Android 操作系統(tǒng)最初由 Andy Rubin 開發(fā),主要支持手機(jī)。2022 年 8 月由 Google 收購注資。2022 年 11 月,Google 與 84 家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android 系統(tǒng)。隨后 Google 以 Apache 開源許可證的授權(quán)方式,發(fā)布了 Android 的源代碼。第一部 Android 智能手機(jī)發(fā)布于 2022 年 10 月。Android 逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2022 年第一季度,Android 在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2022 年的第四季度,Android 平臺(tái)手機(jī)的全球市場份額已經(jīng)達(dá)到 %。2022 年 09 月 24 日谷歌開發(fā)的操作系統(tǒng) Android 在迎來了 5 歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到 10 億臺(tái)。2022 第一季度 Android 平臺(tái)已占所有移動(dòng)廣告流量來源的 %,首度超越 iOS。但運(yùn)營收入不及 iOS。截止 2022 年,主流的手機(jī) OS 為:iOS,Android。下圖為市場占有比重 [13]。圖 21 Android 市場份額. . . . 參考 Android 與其他平臺(tái)的比較根據(jù)圖 21 所示,目前市面上最常用的手機(jī)操作系統(tǒng)就是 Android 和 iOS。iOS 是由蘋果公司開發(fā)的移動(dòng)操作系統(tǒng)。蘋果公司最早于 2022 年 1 月 9 日的 Macworld大會(huì)上公布這個(gè)系統(tǒng),最初是設(shè)計(jì)給 iPhone 使用的,后來陸續(xù)套用到 iPod touch、iPad以及 Apple TV 等產(chǎn)品上 [14]。iPhone 作為 iOS 的代表作,自然免不了與 Android 的對(duì)比。下圖是兩者開發(fā)的對(duì)比。表21 Android和iPhone的開發(fā)比較Android iPhone可以在 PC,MAC 和 Linux 下開發(fā) 只能在 MAC 下開發(fā)以 Linux 為基礎(chǔ) 以 MAC OS 為基礎(chǔ)Java Objective C每年 25 美元 每年 99 美元可以通過 Web 下載應(yīng)用程序 只能在 App Store 下載應(yīng)用程序支持 flash 不支持 flashGoogle、ARM、高通、三星…… Apple Android 基礎(chǔ)知識(shí) 四大組件(1)Activity1)一個(gè) Activity 通常就是一個(gè)單獨(dú)的屏幕(窗口) 。2)Activity 之間通過 Intent 進(jìn)行通信。3)Android 應(yīng)用中每一個(gè) Activity 都必須要在 配置文件中聲明,否則系統(tǒng)將不識(shí)別也不執(zhí)行該 Activity。做一個(gè)完整的 Android 程序,基本上都會(huì)用到 Activity,因?yàn)?Activity 是 Android程序與用戶交互的窗口。在我看來,從這個(gè)層面的視角來看,Android 的 Activity 就像網(wǎng)站的頁面。Activity 在四大組件中,無疑是最復(fù)雜的。Android 開發(fā)中,一旦和界面掛上了勾,都簡化不了,想一想,獨(dú)立做一個(gè)應(yīng)用有多少時(shí)間淪落在了界面上,就能琢磨清楚了。從視覺效果來看,一個(gè) Activity 占據(jù)當(dāng)前的窗口,響應(yīng)所有窗口事件,具備有控件,菜單等界面元素。從內(nèi)部邏輯來看,Activity 需要為了保持各個(gè)界面狀態(tài),需要做很多持久化的事情,還需要妥善管理生命周期,和一些轉(zhuǎn)跳邏輯。對(duì)于開發(fā)者而言,就需要派生一個(gè)Activity 的子類,然后實(shí)現(xiàn)上述事情。(2)serviceservice 組件主要用于后臺(tái)處理耗時(shí)請(qǐng)求。詳情見第五章的第四小節(jié)。(3)content provider1) android 平臺(tái)提供了 Content Provider 使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。其他應(yīng)用可以通過 ContentResolver 類從該內(nèi)容提供者中獲取或存入數(shù)據(jù)。2)只有需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。例如,通訊錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中。它的好處是統(tǒng)一數(shù)據(jù)訪問方式。3)ContentProvider 實(shí)現(xiàn)數(shù)據(jù)共享。ContentProvider 用于保存和獲取數(shù)據(jù),并使其對(duì)所有應(yīng)用程序可見。這是不同應(yīng)用程序間共享數(shù)據(jù)的唯一方式,因?yàn)?android 沒有提供所有應(yīng)用共同訪問的公共存儲(chǔ)區(qū)。. . . . 參考4)開發(fā)人員不會(huì)直接使用 ContentProvider 類的對(duì)象,大多數(shù)是通過ContentResolver 對(duì)象實(shí)現(xiàn)對(duì) ContentProvider 的操作。5)ContentProvider 使用 URI 來唯一標(biāo)識(shí)其數(shù)據(jù)集,這里的 URI 以 綴,表示該數(shù)據(jù)由 ContentProvider 來管理。(4)broadcast receiver1)你的應(yīng)用可以使用它對(duì)外部事件進(jìn)行過濾,只對(duì)感興趣的外部事件(如當(dāng)電話呼入時(shí),或者數(shù)據(jù)網(wǎng)絡(luò)可用時(shí))進(jìn)行接收并做出響應(yīng)。廣播接收器沒有用戶界面。然而,它們可以啟動(dòng)一個(gè) activity 或 service 來響應(yīng)它們收到的信息,或者用 NotificationManager 來通知用戶。通知可以用很多種方式來吸引用戶的注意力,例如閃動(dòng)背燈、震動(dòng)、播放聲音等。一般來說是在狀態(tài)欄上放一個(gè)持久的圖標(biāo),用戶可以打開它并獲取消息。2)廣播接收者的注冊(cè)有兩種方法,分別是程序動(dòng)態(tài)注冊(cè)和 AndroidManifest 文件中進(jìn)行靜態(tài)注冊(cè)。3)動(dòng)態(tài)注冊(cè)廣播接收器特點(diǎn)是當(dāng)用來注冊(cè)的 Activity 關(guān)掉后,廣播也就失效了。靜態(tài)注冊(cè)無需擔(dān)憂廣播接收器是否被關(guān)閉,只要設(shè)備是開啟狀態(tài),廣播接收器也是打開著的。也就是說哪怕 app 本身未啟動(dòng),該 app 訂閱的廣播在觸發(fā)時(shí)也會(huì)對(duì)它起作用。(5)四大組件總結(jié)四大基本組件都需要注冊(cè)才能使用,每個(gè) Activity、service、Content Provider 都需要在 AndroidManifest 文件中進(jìn)行配置。AndroidManifest 文件中未進(jìn)行聲明的activity、服務(wù)以及內(nèi)容提供者將不為系統(tǒng)所見,從而也就不可用。而 broadcast receiver 廣播接收者的注冊(cè)分靜態(tài)注冊(cè)(在 AndroidManifest 文件中進(jìn)行配置)和通過代碼動(dòng)態(tài)創(chuàng)建并以調(diào)用 ()的方式注冊(cè)至系統(tǒng)。需要注意的是在AndroidManifest 文件中進(jìn)行配置的廣播接收者會(huì)隨系統(tǒng)的啟動(dòng)而一直處于活躍狀態(tài),只要接收到感興趣的廣播就會(huì)觸發(fā)(即使程序未運(yùn)行) 。 六大布局聲明 Android 程序布局有兩種方式:(1)使用 XML 文件描述界面布局;(2)在 Java 代碼中通過調(diào)用方法進(jìn)行控制。我們既可以使用任何一種聲明界面布局的方式,也可以同時(shí)使用兩種方式。使用 XML文件聲明有以下 3 個(gè)特點(diǎn):(1)將程序的表現(xiàn)層和控制層分離;(2)在后期修改用戶界面時(shí),無須更改程序的源程序;(3)可通過可視化工具直接看到所設(shè)計(jì)的用戶界面,有利于加快界面設(shè)計(jì)的過程。建議盡量采用 XML 文件聲明界面元素布局。在程序運(yùn)行時(shí)動(dòng)態(tài)添加界面布局會(huì)大大降低應(yīng)用響應(yīng)速度,但依然可以在必要時(shí)動(dòng)態(tài)改變屏幕內(nèi)容。首先得明確,界面布局類型的嵌套越多越深越復(fù)雜,會(huì)使布局實(shí)例化變慢,使Activity 的展開時(shí)間延長。建議盡量減少布局嵌套,盡量減少創(chuàng)建 View 對(duì)象的數(shù)量。(1)減少布局層次,可考慮用 RelativeLayout 來代替 LinearLayout。通過 Relative的相對(duì)其他元素的位置來布局,可減少塊狀嵌套;(2)另一種減少布局層次的技巧是使用 merge / 標(biāo)簽來合并布局;(3)重用布局。Android 支持在 XML 中使用 include / 標(biāo)簽, include / 通過指定 android:layout 屬性來指定要包含的另一個(gè) XML 布局。 五大存儲(chǔ)在 Android 中,可供選擇的存儲(chǔ)方式有 SharedPreferences、文件存儲(chǔ)、SQLite 數(shù)據(jù)庫方式、內(nèi)容提供器(Content provider)和網(wǎng)絡(luò)存儲(chǔ) [15]。(1) SharedPreferences. . . . 參考Android 提供用來存儲(chǔ)一些簡單的配置信息的一種機(jī)制,例如,一些默認(rèn)歡迎語、登錄的用戶名和密碼等。其以鍵值對(duì)的方式存儲(chǔ),使得我們可以很方便的讀取和存入。SharedPreferences 是以 XML 的格式以文件的方式自動(dòng)保存的,在 DDMS 中的 File Explorer 中展開到/data/data/packagename/shared_prefs 下。此外,需要注意的是,SharedPreferences 只能在同一個(gè)包內(nèi)使用,不能在不同的包之間使用。(2)文件存儲(chǔ)在 Android 中,其提供了 openFileInput 和 openFileOuput 方法讀取設(shè)備上的文件。文件存儲(chǔ)方式只支持讀取該應(yīng)用目錄下的文件,讀取非其自身目錄下的文件將會(huì)拋出異常。需要提醒的是,如果調(diào)用 FileOutputStream 時(shí)指定的文件不存在,Android 會(huì)自動(dòng)創(chuàng)建它。另外,在默認(rèn)情況下,寫入的時(shí)候會(huì)覆蓋原文件內(nèi)容,如果想把新寫入的內(nèi)容附加到原文件內(nèi)容后,則可以指定其模式為 。(3)SQLite 數(shù)據(jù)庫方式SQLite 是 Android 所帶的一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫,它支持 SQL 語句,它是一個(gè)輕量級(jí)的嵌入式數(shù)據(jù)庫。一個(gè) SQLiteDatabase 的實(shí)例代表了一個(gè) SQLite 的數(shù)據(jù)庫,通過 SQLiteDatabase 實(shí)例的一些方法,我們可以執(zhí)行 SQL 語句,對(duì)數(shù)據(jù)庫進(jìn)行增、刪、查、改的操作。需要注意的是,數(shù)據(jù)庫對(duì)于一個(gè)應(yīng)用來說是私有的,并且在一個(gè)應(yīng)用當(dāng)中,數(shù)據(jù)庫的名字也是惟一的。(4)內(nèi)容提供器(Content provider)方式在 Android 的設(shè)計(jì)“哲學(xué)”里是鼓勵(lì)開發(fā)者使用內(nèi)部類的,這樣不但使用方便,而且執(zhí)行效率也高。數(shù)據(jù)在 Android 當(dāng)中是私有的,當(dāng)然這些數(shù)據(jù)包括文件數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)以及一些其他類型的數(shù)據(jù)。難道兩個(gè)程序之間就沒有辦法對(duì)于數(shù)據(jù)進(jìn)行交換?解決這個(gè)問題主要靠ContentProvider。 一個(gè) Content Provider 類實(shí)現(xiàn)了一組標(biāo)準(zhǔn)的方法接口,從而能夠讓其他的應(yīng)用保存或讀取此 Content Provider 的各種數(shù)據(jù)類型。也就是說,一個(gè)程序可以通過實(shí)現(xiàn)一個(gè)Content Provider 的抽象接口將自己的數(shù)據(jù)暴露出去。外界根本看不到,也不用看到這個(gè)應(yīng)用暴露的數(shù)據(jù)在應(yīng)用當(dāng)中是如何存儲(chǔ)的,或者是用數(shù)據(jù)庫存儲(chǔ)還是用文件存儲(chǔ),還是通過網(wǎng)上獲得,這些一切都不重要,重要的是外界可以通過這一套標(biāo)準(zhǔn)及統(tǒng)一的接口和程序里的數(shù)據(jù)打交道,可以讀取程序的數(shù)據(jù),也可以刪除程序的數(shù)據(jù),當(dāng)然,中間也會(huì)涉及一些權(quán)限的問題。(5)網(wǎng)絡(luò)存儲(chǔ)HttpUrlConnection 是 包中提供的 API,我們知道 Android SDK 是基于 Java的,所以當(dāng)然優(yōu)先考慮 HttpUrlConnection 這種最原始最基本的 API,其實(shí)大多數(shù)開源的聯(lián)網(wǎng)框架基本上也是基于 JDK 的 HttpUrlConnection 進(jìn)行的封裝罷了。HttpClient 是開源組織 Apache 提供的 Java 請(qǐng)求網(wǎng)絡(luò)框架,其最早是為了方便 Java服務(wù)器開發(fā)而誕生的,是對(duì) JDK 中的 HttpUrlConnection 各 API 進(jìn)行了封裝和簡化,提高了性能并且降低了調(diào)用 API 的繁瑣,Android 因此也引進(jìn)了這個(gè)聯(lián)網(wǎng)框架,我們?cè)俨恍枰獙?dǎo)入任何 jar 或者類庫就可以直接使用,值得注意的是 Android 官方已經(jīng)宣布不建議使用HttpClient 了。HttpClient 和 HttpUrlConnection 的兩種網(wǎng)絡(luò)訪問方式編寫網(wǎng)絡(luò)代碼,需要自己考慮很多,獲取數(shù)據(jù)或許可以,但是如果要將手機(jī)本地?cái)?shù)據(jù)上傳至網(wǎng)絡(luò),根據(jù)不同的 web 端接口,需要組織不同的數(shù)據(jù)內(nèi)容上傳,給手機(jī)端造成了很大的工作量。. . . . 參考 Android 基本架構(gòu)Android 其本質(zhì)就是在標(biāo)準(zhǔn)的 Linux 系統(tǒng)上增加了 Java 虛擬機(jī) Dalvik,并在 Dalvik虛擬機(jī)上搭建了一個(gè) JAVA 的 application framework,所有的應(yīng)用程序都是基于 JAVA 的application framework 之上。Androi
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1