Android應用程式設計原理及天氣實況預報系統的具體實現

2020-12-04 Allen陌路

對於一個Android 應用程式,通常由Activity、Intent Receiver、Service、Content Provider四種功能組件構成。但是,並不是每一個Android 應用程式都需要這四種功能組件,而是使用上述四種功能組件的某些組合。Activities是最基本的Android 應用程式組件。在應用程式中,一個Activities通常就是一個單獨的屏幕,大多數應用由多個屏幕顯示組成。每一個Activities都被實現為一個獨立的類,並且從Activities基類中繼承而來,Activities類將會顯示由視圖控制項組成的用戶接口,並對事件做出響應。Android 使用Intent 這個特殊類,實現在屏幕與屏幕之間移動。通過解析各種Intent,從一個屏幕導航到另一個屏幕是很簡單的。當向前導航時,activity 將會調用startActivity(Intent myIntent)方法。然後,系統會在所有安裝的應用程式中定義的IntentFilter 中查找, 找到最匹配myIntent 的Intent 對應的activity。

新的activity 接收到myIntent 的通知後, 開始運行。當startActivity 方法被調用時將觸發解析myIntent 的動作,這個機制具有兩點優勢:一是能夠重複利用從其它組件中以Intent 形式產生的一個請求;二是可以在任何時候被一個具有相同IntentFilter的新Activity 取代。通過IntentReceiver 實現應用能夠對一個外部的事件做出響應論文網,Intent Receiver 在AndroidManifest.xml 中註冊,也可以在代碼中使用Context.registerReceiver()進行註冊。當一個Intent Receiver 被觸發時,應用不必對請求調用IntentReceiver,系統會在需要的時候啟動應用。各種應用還可以通過使用Context.broadcastIntent()將它們自己的Intent Receiver廣播給其它應用程式。

一個Service 是一段長生命周期的、沒有用戶界面的程序。例如媒體播放器這個Activity 會使用Context.startService()來啟動一個Service,從而可以在後臺保持音樂的播放。同時,系統也將保持這個Service 一直執行,直到這個Service 運行結束。通過使用Context.bindService()方法,連接到一個Service 上(如果這個Service 還沒有運行將啟動它)。當連接到一個Service 之後,還可以Service 提供的接口與它進行通信。就媒體播放器來說,還可以進行暫停、重播等操作。Android應用程式能夠將它們的數據保存到文件、SQL 資料庫中,甚至是任何有效的設備中。Content Provider 實現了應用數據與其它的應用程式的共享。一個ContentProvider 類實現一組標準的方法,從而能夠讓其它的應用程式保存或讀取此ContentProvider 處理的各種數據類型。數據是應用程式的核心。

在Android 中,默認使用SQLite 作為系統資料庫,但在Android 中,使用方法略有不同。在Android 中每一個應用程式都運行在各自的進程中,當應用程式需要訪問其他應用程式的數據時論文網,需要數據在不同的虛擬機之間傳遞,這樣的情況操作起來可能會有些困難(正常情況下,不能讀取其他應用程式的資料庫文件),Content Provider 正是用來解決在不同的應用包之間共享數據的工具。基於Android 平臺的智慧型手機訪問伺服器的主要內容是其數據交互方法。基於Android作業系統的天氣實況預報系統設計的核心是通過調用通信協議SOAP(SimpleObject Access Protocol)的接口,從Web Service提供商中提取天氣預報的數據信息,為客戶端服務。

其基本功能是當用戶運行天氣預報系統程序時,在手機屏幕上顯示出中國的城市名稱,用戶單擊任意一個城市名,可獲得該城市的天氣實況預報信息;用戶也可以輸入城市名稱,點擊查詢獲得天氣預報信息。Android提供的可變化的用戶界面(UI)開發模塊是基於XML文件的。這些XML文件放在工程/res/layout 下面。這個目錄可包含所有應用程式所需的非碼部分,比如圖片、字符串、xml文件。當要使用到這些資源時,在代碼目錄中打開R.java文件即可。在XML文件裡編輯代碼進行界面的現實,實現起來不僅方便,使用時也會更加靈活。在Android程序設計中要用到一些基本的Android UI元素,通過使用Views、View Groups和layouts為Activity創建功能的、富有直觀力的UI。

通常是使用Android SDK中提供的一些控制項,進行布局、擴展和定製這些控制項論文網,並使用View Groups去組合Views,創建由相互作用的子控制項組成的原子的、重複利用的UI元素,也可以創建自己的Views,來實現顯示數據和與用戶交互的新途徑。或使用一些繼承自View Group的Layout 管理器來組織Android UI中的單個元素到屏幕上。在一個Android應用中,用戶界面由View 和View Group對象構建。View與ViewGroup有很多種類,而它們都是View類的子類。View對象是Android平臺中用戶界面體現的基礎單位。View類是它稱為「widgets(工具)」的子類的基礎,它們提供了諸如文本輸入框和按鈕之類的UI對象的完整實現。

View Group類同樣為其被稱為「Layouts(布局)」的子類奠定了基礎,它們提供了諸如流式布局、表格布局以及相對布局之類的布局架構。View對象是一個數據體,它的屬性存儲了用於屏幕上一塊矩形區域的布局參數及內容。並負責這塊它所轄的這個矩形區域之中所有測量、布局、焦點轉換、捲動以及按鍵/觸摸手勢的處理。作為一個用戶界面對象,View同時也擔任著用戶交互關鍵點以及交互事件接受者的角色。由於天氣實況預報系統程序功能比較單一,其UI也相對比較簡單,只要有一個輸入框、一個查詢按鈕以及一個顯示所有中國城市信息的列表即可。

首先,在Package Explorer窗口中展開Layout新建.xml文件,用來對窗口界面進行布局,主要有系統運行的主配置文件main.xml和result.xml。Layout 是一類特殊的ViewGroup控制項,它們本身沒有任何可顯示內容,形如透明的玻璃盒子論文網,存在的唯一原因就是其中的內部結構,能夠更好的擺放它的子控制項。比如線性的Layout、LinearLayout。放入這個Layout 的子控制項,會按水平或垂直方向排列,一個挨著一個按順序排列下去。TableLayout,可以將子控制項按照表格的形式,一枚枚放置好。RelativeLayout 更靈活,可以設定各個控制項之間的對齊和排列關係,適合定製複雜的界面。有了Layout 的存在,控制項和控制項之間不再割裂的存在,而是更有機的結合在一起,設定起來也更為方便。

城市天氣實況預報系統的相關編碼完成後對其測試運行結果如下。在Eclipse的Package Explorer窗口中右鍵選擇CitiesWeatherForecast工程名,在彈出的窗口中選擇「Run As」→「Android Application」安裝該應用程式到Android模擬器並啟動它。然後單擊所要查詢的城市名稱列表項,稍等片刻便會顯示出該城市的天氣實況信息。也可以在文本框中直接輸入所要查詢的城市名稱,單擊「Search」同樣會獲得相應城市的天氣預報信息。Android 平臺具有極大的開放性和兼容性,並且本身大量使用開原始碼庫,深為開發人員所喜愛。

Android智慧型手機應用程式開發涉及它的整個體系結構,是一項非常複雜的工程。本文在介紹基於Android平臺的應用程式設計原理的基礎上,主要討論提出了Android 用戶界面設計、獲取並解析列表數據的一種方法,給出了在用戶界面上呈現數據的原理與設計過程;最後通過模擬器實現了應用程式的運行結果。當然, 基於Android 平臺的開發技術還需要進一步完善, 需要在日後的工作中不斷探索、研究, 以形成實用的城市天氣實況預報系統。隨著Google公司大力推廣Android平臺和Android智慧型手機的推出, 該系統會有很好的應用發展前景。


相關焦點

  • 天氣實況、天氣預報、免費天氣接口、空氣品質各類天氣數據
    根據鄉鎮天氣id獲取鄉鎮實況、逐小時預報、周邊鄉鎮預報53.根據縣id獲取天氣網數據124. 根據當前縣天氣id獲取當前月份40天預報155.根據月份年份縣天氣id獲取40天預報186.根據經緯度獲取未來兩小時逐5分鐘降水預報217. 根據經緯度獲取實況228.
  • 採用google地圖的Android系統導航應用設計
    四、GPS 定位功能實現  全球衛星定位系統(Global Positioning System,GPS)是一個中距離圓型軌道衛星導航系統,它可以為地球表面超98%的地區提供準確的定位、測速和高精度的時間標準服務,在各個領域都有廣泛的應用。
  • 「五一」出行遊玩天氣如何?來問「冰城問天氣」小程序吧
    東北網4月28日訊(韓基良 記者 劉嘉) 28日,記者從哈爾濱市氣象科技服務中心獲悉,近日,由哈爾濱市氣象局研發的「冰城問天氣」微信小程序在「哈爾濱氣象」微信訂閱號正式上線運行。「冰城問天氣」小程序依託智能網格預報,利用微信平臺將基於位置的「智慧氣象」融入其中。
  • 智能氣象,讓天氣預報更精準
    讓天氣預報更精準  今年7月,受連續降雨影響,湖南省常德市石門縣潘坪村突發山體滑坡。滾滾泥沙瞬間衝毀了道路,造成數棟民房坍塌。所幸山體滑坡並未造成人員傷亡。原來,依靠北鬥衛星監測系統發布的橙色預警,當地居民早已提前撤離。  隨著新一代信息技術在氣象領域的深入應用,天氣預報預警變得越來越精準。
  • 廣東在全國率先開展智能網格天氣預報 降雨預報「分鐘級」 災害...
    原標題:我省在全國率先開展智能網格天氣預報  降雨預報「分鐘級」 災害天氣「不漏網」  公眾所在的位置實時定位,當前的氣溫、風力、降雨實況在手機頁面中一目了然,在精細預報中,還可查閱逐小時的天氣和空氣品質預報
  • 氣象衛星在天氣分析和預報業務中的應用
    如今,氣象衛星已廣泛地應用於我國的天氣預報業務中。  氣象衛星雲圖在我國天氣分析和預報業務中的應用開始於70年代初。當時的中央氣象臺、中國科學院大氣物理研究所和北京大學地球物理系聯合衛星雲圖接收和分析小組,最早開始研究探索衛星雲圖在業務中的應用。以後,很快就在全國進行應用培訓和推廣。
  • 天氣預報準確率不斷提高 應用場景進一步拓展
    本報記者 郭靜原攝我國已建成世界上規模最大、覆蓋最全的綜合氣象觀測系統和先進的氣象信息系統,建成了無縫隙智能化的氣象預報預測系統,還將進一步加快科技創新,做到監測精密、預報精準、服務精細,提高氣象服務保障能力,推動氣象事業高質量發展。「受偏南暖溼氣流和冷空氣的共同影響,12月15日,本市將有大雪、道路結冰和大霧天氣。
  • 更精準的天氣預報是這樣「煉」成的
    系統以「現在天氣」「綜合觀測」「監測預警」為三條主線,形成了重要天氣和氣象要素的多源觀測產品,覆蓋八大類氣象觀測設備數據,並具備個性化深度定製區域監測預警信息和多雷達流數據產品同步顯示功能。目前,該系統已在全國範圍內實現應用。「觀測設備更新換代,我們提供的觀測信息也不再是簡單的氣溫、氣壓、風速、溼度等,而是通過多源融合等方式,開發多種強天氣識別特色產品。」
  • 關注唐山5.1級地震,最新天氣實況及預報「出爐」丨服務快報
    中國氣象數據網聯合氣象科學專業知識服務系統,基於國家氣象信息中心提供的氣象數據,為大家提供當前和未來的天氣情況分析。最新天氣預報天氣實況與預報唐山市天氣實況與預報預計河北省唐山市未來24小時(12日09時~13日08時)天氣以多云為主,最高氣溫28.0℃
  • 全球客觀天氣預報產品投入業務運行 覆蓋全球11621個城市
    中國氣象報記者谷星月報導近日,中國氣象局自主研發的全球客觀天氣預報產品(簡稱「全球預報產品」)投入業務化應用,可實時提供未來10天逐3小時全球10公裡網格預報、全球11621個城市精細化天氣預報以及當地時間的逐12小時天氣預報。
  • 氣象錦囊——人工智慧賦能數值天氣預報
    天氣預報需要大量的、多種多樣的資料,而人工智慧天生就是處理大數據的工具;現有資料的時空數據密度均不夠,而人工智慧技術卻具有根據不完全不確定信息推斷的能力;人工智慧不僅可以總結專家知識經驗,提高平均預測水平,還可以充分利用統計與數值模式中無法利用的抽象預報知識。那麼人工智慧技術是如何在數值天氣預報中實現的呢?首先讓我們說說人工智慧的概念。1、什麼是人工智慧?
  • 自動化觀測讓天氣預報更精準
    這其中,人工觀測涉及氣溫、氣壓、溼度、風向、風速、降水、雲、能見度、天氣現象等氣象要素及其變化過程,同時還需開展系統連續的觀察測定、數據收集及處理工作。這些不同類別的氣象觀測信息都得準確記錄在觀測記錄簿上。從1982年開始,地面觀測業務採用PC-1500袖珍計算機,觀測資料的計算、統計、編報實現了自動化。
  • 基於Android的嵌入式Web伺服器設計
    本文主要論述了基於Android系統環境,在家庭網關中實現嵌入式Web伺服器的設計方法,介紹了i-jetty嵌入式Web伺服器,及其Web應用功能的實現。由於Android作業系統能方便地將各種應用程式嵌入網絡,以及開放性好、支持硬體豐富的特點,本文選擇Android作業系統作為家庭網關設計的軟體平臺來建立Web伺服器。1 Android系統介紹 Android行動裝置平臺是基於Linux內核再度開發的一個開源的作業系統和軟體平臺,最早期由Google公司進行研究和開發的。
  • 這套精準天氣預報系統有多厲害 預報網格細至500米 溫差不超2℃
    為了進一步提升預報準確率,睿圖短期預報子系統已經陸續加進了多個衛星和多部天氣雷達的觀測資料信息。陳敏透露:「京津冀地區原來只有7部雷達,從去年開始,全國135部天氣雷達拼圖數據半小時更新一次,滿足了睿圖模式實時同化應用的業務需求。」數值天氣預報的關鍵之一是如何把計算機裡的大氣狀態設計,調整為最接近真實情況的大氣狀態。二者越接近,預報才能越準確。
  • 數值天氣預報(GRAPES)發展規劃
    TL639L60 可用預報時效達到6.5天以上,預報產品在業務中得到廣泛的應用;GRAPES中尺度數值預報系統2004年實現業務化;GRAPES全球中期數值天氣預報系統2009年3月實現準業務運行;全球檯風路徑預報能力逐步提高,颱風路徑距離誤差24小時預報在125公裡以內,48小時預報在220公裡以內,72小時預報在330公裡以內。
  • 天氣預報還要分長短?
    於是,在該部門當中的「氣象員們」開始逐日記錄雨、雪、風、雷等天氣現象。慢慢地,數值天氣預報誕生了,於是乎,產生了如今的現代化天氣預報。中國人製作的第一張天氣圖科技在進步,時代在發展,當然天氣預報的種類也越來越多,根據時效,大概可以分為以下5類。
  • 基於Qt環境下物理實驗數據處理系統的設計與實現
    全篇以麥可遜實驗數據處理軟體實例作為個案來展開,具體描述整個軟體的設計與開發。Qt作為系統開發的環境,具有不可替代的優勢。Qt提供的C++應用程式開發框架,可以輕鬆實現「一次編寫,隨處編譯」的跨平臺解決方案,編寫的應用程式能完美運行於從windows 98到windows 7,從Mac OSX到Linux,從Solaris,HP—UX到其他基於X11的眾多Unix平臺上。這讓編寫的應用程式可以運行在不同的系統,方便移植,甚至能夠在經過簡單的修改後輕鬆移植至應用廣泛的android平臺。
  • 新版中國天氣網亮相 天氣預報時效達15天
    新版中國天氣網亮相 天氣預報時效達15天中央政府門戶網站 www.gov.cn 2014-07-28 16:50 來源: 氣象局網站新版網站將天氣預報時效從原來的7天延長至15天,並增加了未來三天逐3小時預報、景點天氣預報、空氣品質實況等信息。   據悉,中國天氣網由中國氣象局公共氣象服務中心運行維護。自2008年7月28日正式上線運行以來,經過六年的發展,中國天氣網的影響力不斷擴大。
  • Android最強保活黑科技的最強技術實現
    我覺得這是一個Android設計的不合理的地方,路子可以堵,但還是有必要留一個統一的保活接口的。這個接口由Google實現也好,廠商來實現也好,總好過現在很笨拙的系統自啟動管理或者是JobScheduler。我覺得本質上來說,讓應用開發者想盡各種辦法去做保活,這個事情是沒有意義的,保活的路子被封了,但保活還是需要做,保活的成本也提高了,簡直浪費生命。
  • 「南昌汛息·動態」南昌市天氣實況與天氣預報
    一、 天氣實況7 月 10 日 08~14 時,我市出現大到暴雨,局部大暴雨。三、天氣預報預計今天下午我市陰有大雨,部分暴雨,局地大暴雨;晚上我市西北部有中雨,局部大雨,其他地區陰天多雲有陣雨。累計雨量 30~50 毫米,局地 80 毫米以上。