第一篇:android天氣預報報告
Android天氣預報論文
學 院: 專 業(yè): 學 號: 學生姓名: 指導教師: 日 期:
電子信息工程學院 計算機應用 11033801135
郎紅 黃煒 2013年11月13
一、項目背景
現有的3G技術和移動互聯網技術的快速發(fā)展,智能手機功能的不斷增強,讓基于Android平臺的查詢需求越來越多。
本軟件就是利用現有的網絡快速獲取網絡上的天氣信息并顯示到手機終端上,為用戶提供實時的天氣查詢和近期天氣查詢服務,為工作、出行等帶來便利。通過Web Service等技術讓用戶體驗到前所未有的移動計算。
二、需求分析
(一)功能需求
在這個綜合示例中,有一個顯示天氣情況的用戶界面,可以通過圖片和文字顯示當前和未來幾天的天氣狀況,包括溫度、濕度、風向和雨雪情況等。這些天氣數據是通過后臺服務獲取的,這個后臺服務按照一定時間間隔,從搜索引擎上獲取天氣預報信息,并將天氣信息保存在后臺服務中。示例還需要提供基于SMS短信的天氣數據服務,其他手機用戶可以向本示例所在的手機上發(fā)送SMS短信,在短信中包含特定的關鍵字,則可以將已有的天氣情況通過SMS短信回復給用戶。最后,每個被發(fā)送的SMS短信都會被記錄下來,用戶可以瀏覽或刪除這些記錄信息。
(二)界面需求
從上面的描述中可以基本了解軟件的功能需求,但為了將需求分析過程變得簡單明了,首先找出用戶界面上需要顯示的內容。功能描述中有“顯示天氣情況的用戶界面”和“用戶可以瀏覽或刪除這些記錄信息”,除此以外,一般應用軟件還應有顯示配置信息的界面。因此,本示例應該包含三個用戶界面: 顯示天氣預報的用戶界面、顯示已發(fā)送SMS短信的用戶界面、瀏覽和設置配置信息的用戶界面
(三)內部功能
從用戶界面出發(fā),分析隱藏在界面后面的內部功能,這些功能則是程序正常運行的基礎(1)顯示天氣預報的用戶界面 ;
①獲取搜索引擎的天氣數據 ②保存天氣數據信息(2)顯示SMS短信的用戶界面
①根據關鍵字監(jiān)視SMS短信 ②發(fā)送包含天氣信息的SMS短信 ③將發(fā)送SMS短信的相關信息寫入數據庫(3)瀏覽和設置配置信息的用戶界面
①將用戶設置的配置信息保存到數據庫 ②啟動時讀取數據庫中的配置信息 ③支持恢復缺省設置
三、程序設計
(一)用戶界面設計
根據需求中的用戶界面分析,應用程序應包含三個主要的用戶界面,每個用戶界面的顯示內容
在“顯示天氣預報的用戶界面”中,顯示目標城市的當前的天氣狀況,包括城市名稱、溫度、濕度、風向、雨雪情況和獲取數據時間等信息。在界面的下方顯示未來四天的天氣狀況,但僅包括溫度和雨雪情況
在“顯示已發(fā)送SMS短信的用戶界面”中,顯示每個回復短信的時間、目標手機號碼、城市名稱、當天的天氣狀況和未來一天的天氣狀況
在“瀏覽和設置配置信息的用戶界面”中,顯示希望獲取天氣預報的城市名稱、獲取數據的頻率和短信監(jiān)視的關鍵字,并允許用戶設置是否提供短信服務,以及是否記錄回復短信信息
用戶界面草圖:
(二)數據庫設計
本示例主要有兩種數據需要存儲
配置信息:因為配置信息的數據量很小,從Android支持的存儲方式上分析,可以保存在SharedPreference、文件或SQLite數據庫中
SMS短信服務信息: SMS短信服務信息是一個隨著時間推移而不斷增加的數據,屬于文本信息,而且有固定的格式,因此適合使用SQLite數據庫進行存儲
綜合分析這兩個需要存儲的數據,選擇SQLite數據庫作為存儲數據的方法(1)配置信息:
配置信息中主要保存目標城市的名稱,訪問搜索引擎更新天氣信息的頻率,請求天氣信息服務短信的關鍵字,以及是否提供短信服務和是否記錄短信服務內容,配置信息的數據庫表結構
(2)SMS短信服務信息:
SMS短信服務信息主要保存請求天氣服務短信的發(fā)送者、短信內容、接收時間和回復信息的內容,SMS短信服務信息的數據庫表結構
(三)程序設計
程序模塊設計:
從功能需求上分析,可以將整個應用程序劃分為4個模塊,分別是用戶界面、后臺服務、數據庫適配器和短信監(jiān)聽器。下圖是模塊結構圖
從模塊結構圖中不難看出,后臺服務是整個應用程序的核心,主要包含數據獲取子模塊和短信服務子模塊。數據獲取子模塊負責周期性的從搜索引擎獲取天氣信息;短信服務子模塊則負責處理接收到的服務請求短信,并發(fā)送包含天氣信息的短信。
后臺服務由用戶界面通過Intent啟動,啟動后的后臺服務可以在用戶界面關閉后仍然保持運行狀態(tài),直到用戶通過用戶界面發(fā)送Intent停止服務,或系統(tǒng)因資源不足而強行關閉服務。
用戶界面從后臺服務獲取天氣信息,而沒有直接通過網絡訪問搜索引擎的天氣數據。一方面是因為后臺服務使用了工作線程,通過后臺服務獲取天氣數據可以避免因網絡通信不暢造成界面失去響應。另一方面,在用戶關閉界面后,后臺服務仍然需要更新天氣信息,以保證短信服務數據的準確性。用戶界面通過直接調用數據庫適配器,向SQLite數據庫中讀寫配置信息,或對SMS短信服務信息進行操作。
短信監(jiān)聽器是一個BroadcastReceiver,監(jiān)視所有接收到的短信。如果短信中包含用戶自定義的關鍵字,短信監(jiān)聽器則會認為這條短信是天氣服務請求短信,將短信的相關信息寫入后臺服務的短信服務隊列。如果用戶在配置信息中選擇無需提供短信服務,短信監(jiān)聽器仍然繼續(xù)監(jiān)聽所有短信,只是后臺服務不再允許將服務請求短信寫入服務隊列。
數據庫適配器封裝了所有對SQLite數據庫操作的方法,用戶界面和后臺服務會調用它實現數據庫操作。
四、項目功能描述
(一)系統(tǒng)主要功能
本軟件要完成在android手機上實現天氣的即時預報。所涉及的功能有: 1.啟動程序后可以進行城市、更新頻率的設置;
2.可以通過圖片和文字顯示當前和未來的天氣狀況,包括溫度、濕度、風向和雨雪情況等。使用效果圖實現與相應天氣的結合。
3.這些天氣數據是通過后臺服務獲取的,這個后臺服務可以按照一定的時間間隔,通過搜索引擎提供的公共接口獲取天氣預報信息,并將天氣信息保存在本地數據庫中。(二)工程結構
在程序開發(fā)階段,首先確定“天氣預報軟件”的工程名稱為WeatherDemo,包名稱為edu.hrbeu.WeatherDemo。然后根據程序模塊設計的內容,建立WeatherDemo示例,WeatherDemo示例源代碼的文件結構:
為了使源代碼文件的結構更加清晰,WeatherDemo示例設置了多個命名空間中,分別用來保存用戶界面、數據庫、后臺服務、SMS短信和天氣數據的源代碼文件,WeatherDemo示例的命名空間
WeatherDemo示例將不同用途的源代碼文件放置在不同的命名空間中。WeatherDemo示例的文件用途說明
Android資源文件保存在/res的子目錄中。/res/drawable目錄中保存的是圖像文件,/res/layout目錄中保存的是布局文件,/res/values目錄中保存的是用來定義字符串和顏色的文件,/res/xml目錄保存的是XML格式的數據文件。所有在程序開發(fā)階段可以被調用的資源都保存在這些目錄中,資源文件名稱與用途:
(三)數據庫適配器
數據庫適配器是最底層的模塊,主要用于封裝用戶界面和后臺服務對SQLite數據庫的操作。數據庫適配器的核心代碼主要在DBAdapter.java文件中 用戶保存配置信息的類文件Config.java Config.java文件的全部代碼如下: package edu.hrbeu.WeatherDemo.DB;2 3 public class Config { 4 public static String CityName;5 public static String RefreshSpeed;6 public static String ProvideSmsService;7 public static String SaveSmsInfo;8 public static String KeyWord;9 10 public static void LoadDefaultConfig(){ 11 CityName = “New York”;12 RefreshSpeed = “60”;13 ProvideSmsService = “true”;14 SaveSmsInfo = “true”;15 KeyWord = “NY”;16 }17 } 從代碼中不難看出,公有靜態(tài)屬性CityName、RefreshSpeed、ProvideSmsService、SaveSmsInfo和KeyWord,完全對應數據庫中保存配置信息表的屬性(參照表12.1)。在程序啟動后,保存在數據庫中的城市名稱、更新頻率、是否提供短信服務、是否保存短信信息和關鍵字等內容,將被讀取到這個Config類中,供其它模塊做邏輯判斷時使用。
代碼第10行的LoadDefaultConfig()函數,保存了程序內置的配置參數此函數會在兩個情況下被調用,用戶主動選擇“恢復缺省設置”;首次啟動程序時,用來初始化保存配置參數的數據庫,DBAdapter類與以往介紹過的數據庫適配器類相似,都具有繼承SQLiteOpenHelper的幫助類DBOpenHelper。DBOpenHelper在建立數據庫時,同時建立兩個數據庫表,并對保存配置信息的表進行了初始化。
在DBAdapter類中,用戶界面會調用SaveConfig()和LoadConfig(),從SQLite數據庫中保存和讀取配置信息。保存配置信息時,SaveConfig()函數會將Config類中的公有靜態(tài)屬性寫入數據庫;反之,LoadConfig()會將數據庫中的配置信息寫入Config類中的公有靜態(tài)屬性。
另一個會調用DBAdapter類的是后臺服務,即WeatherService類。后臺服務主要調用SaveOneSms(SimpleSms sms)、DeleteAllSms()和GetAllSms()函數,分別用來保存SMS短信記錄、刪除所有SMS數據記錄和獲取所有SMS數據記錄。在GetAllSms()函數中,調用了一個私有函數ToSimpleSms(Cursor cursor),用來將從數據庫獲取的數據轉換為SimpleSms實例數組。
(四)短信監(jiān)聽器
短信監(jiān)聽器本質上是BroadcastReceiver,用于監(jiān)聽Android系統(tǒng)所接收到的所有SMS短消息,可以在應用程序關閉后仍然繼續(xù)運行,核心代碼在SmsReceiver.java文件中。在介紹SmsReceiver類前,先說明用來保存SMS短信內容和相關信息的SimpleSms類。android.telephony.SmsMessage是Android提供的短信類,但這里需要一個更精簡、小巧的類,保存少量的信息,因此構造了SimpleSms類,僅用來保存短信的發(fā)送者、內容、接收時間和返回結果。這里的“返回結果”指的是返回包含天氣信息的短信內容。
SimpleSms.java文件完整代碼: package edu.hrbeu.WeatherDemo.SMS;2 import java.text.SimpleDateFormat;3 4 public class SimpleSms { 5 public String Sender;6 public String Body;7 public String ReceiveTime;8 public String ReturnResult;9 10 public SimpleSms(){ 11 } 12 public SimpleSms(String sender, String body){ 13 this.Sender = sender;14 this.Body = body;15
SimpleDateFormat tempDate = new SimpleDateFormat(“yyyy-MM-dd” + “ ” + “hh:mm:ss”);16 this.ReceiveTime = tempDate.format(new java.util.Date());17 this.ReturnResult = “";18 } 19 } 代碼第5行到第8行的屬性Sender、Body、ReceiveTime和ReturnResult,分別表示SMS短信的發(fā)送者、內容、接收時間和返回結果。第15行和第16行在SimpleSms類的構造函數中,直接將系統(tǒng)時間以“年-月-日 小時:分:秒”的格式保存在ReceiveTime屬性中。
SmsReceiver類繼承BroadcastReceiver,重載了onReceive()函數。系統(tǒng)消息的識別和關鍵字的識別并不復雜,只要接收android.provider.Telephony.SMS_RECEIVED類型的系統(tǒng)消息,則表明是Android系統(tǒng)接收到了短信。將短信的內容拆分后,判斷消息內容是否包含用戶定義的關鍵字,則可判斷該短信是否為天氣服務請求短信。
最后,在AndroidManifest.xml文件中注冊短信監(jiān)聽器SmsReceiver,并聲明可接收短信的用戶許可android.permission.RECEIVE_SMS。如果注冊的組件不在根命名空間中,則需要將子命名空間寫在類的前面,例如下面在代碼第1行中,因為SmsReceiver.java文件在edu.hrbeu.WeatherDemo.Service命名空間下,而不在根命名空間edu.hrbeu.WeatherDemo下,因此注冊組件時需要在類名SmsReceiver前添加.Service。
后臺服務是WeatherDemo示例的核心模塊,在用戶啟動后持續(xù)在后臺運行,直到用戶手動停止服務,后臺服務功能,發(fā)送包含天氣信息的SMS短信(短信發(fā)送子模塊,周期性的獲取搜索引擎的天氣數據(數據獲取子模塊)。
1.短信發(fā)送子模塊
后臺服務在單獨的線程上運行,首先調用ProcessSmsList()函數,檢查短信隊列中是否有需要回復的短信,然后調用Get搜索引擎WeatherData()函數獲取天氣數據,最后線程暫停1秒,以釋放CPU資源,WeatherDemo示例后臺服務的核心代碼在WeatherService.java文件中。下面是線程調用函數的部分代碼 :
private static ArrayList
private void ProcessSmsList(){ 2 if(smsList.size()==0){ 3 return;4 } 5 SmsManager smsManager = SmsManager.getDefault();6 PendingIntent mPi = PendingIntent.getBroadcast(this, 0, new Intent(), 0);7 while(smsList.size()>0){ 8 SimpleSms sms = smsList.get(0);9 smsList.remove(0);10
smsManager.sendTextMessage(sms.Sender, null, Weather.GetSmsMsg(), mPi, null);11 sms.ReturnResult = Weather.GetSmsMsg();12 SaveSmsData(sms);13 }14 } 發(fā)送短信是使用SmsManager對象的sendTextMessage()方法,該方法一共需要5個參數,第1個參數是收件人地址,第2個參數是發(fā)件人地址,第3個參數是短信正文,第4個參數是發(fā)送服務,第5個參數是送達服。sendTextMessage()方法的收件人地址和短信正文是不可為空的參數,而且一般GSM規(guī)范要求短信內容要控制在70個漢字以內。代碼第8行的Weather.GetSmsMsg(),用來獲得供回復短信使用的天氣信息,因為考慮到短信的字數限制,僅返回當天和未來一天的天氣狀況。
2.數據獲取模塊
天氣數據是從搜索引擎提供的Web Service中獲取的,調試WeatherDemo示例時需要網絡環(huán)境,數據的獲取地址是 http://004km.cn/ig/api?hl=en&weather=New%20York。New%20York表示獲取紐約(New York)的天氣數據,%20表示一個空格。讀者可以將上面提供的地址輸入到Web瀏覽器,在瀏覽器中直接看到XML格式的天氣數據。
WeatherAdapter類實現了利用URL獲取位圖的私有函數GetURLBitmap(),以及用來下載和解析XML數據的公有函數GetWeatherData()。后臺服務在調用GetWeatherData()函數解析搜索引擎提供的天氣數據時,會不斷調用GetURLBitmap()函數,將XML數據中的天氣圖標根據圖標地址下載到本地保存。GetURLBitmap()函數的代碼如下 :
private static Bitmap GetURLBitmap(String urlString){ 2 URL url = null;3 Bitmap bitmap = null;4 try { 5 url = new URL(”http://004km.cn" + urlString);6 } 7 catch(MalformedURLException e){ 8 e.printStackTrace();9 }10 11 try{ 12 HttpURLConnection conn =(HttpURLConnection)url.openConnection();13 conn.connect();14 InputStream is = conn.getInputStream();bitmap = BitmapFactory.decodeStream(is);16 is.close();17 }catch(IOException e){ 18 e.printStackTrace();19 } 20 return bitmap;21 } 第12行代碼構造了支持HTTP功能的URLConnection,第14行返回字節(jié)流,第15行使用字節(jié)流產生位圖,第16行關閉字節(jié)流。
GetWeatherData()函數首先根據指定的URL地址,從網絡獲取字節(jié)流數據,然后調用輕量級XML解析器XmlPullParser對天氣數據進行解析,并將解析結果保存在Weather類的公有靜態(tài)屬性中。
(六)用戶界面
在用戶界面設計上,采用可多分頁快速切換的TabHost控件。WeatherDemo示例TabHost控件的每個標簽頁與一個Activity相關聯,這樣就可以將不同標簽頁的代碼放在不同的文件中,而且每個標簽頁都可以有獨立的選項菜單。
WeatherDemo類是繼承TabActivity的Tab標簽頁,共設置3個標簽頁 TAB1的標題為“天氣預報”,關聯的Activity為WeatherActivity,TAB2的標題為“歷史數據”,關聯Activity為HistoryActivity,TAB2的標題為“系統(tǒng)設置”,關聯Activity為SetupActivity。
WeatherDemo.java中的代碼只是用戶界面的框架,設置了Tab標簽頁的圖標、標題和所關聯的Activity,標簽頁中的具體顯示內容還要依賴于每個Activity所設置的界面布局
界面布局包含 WeatherActivity、HistoryActivity、SetupActivity 1.WeatherActivity用戶界面
WeatherActivity在啟動時并不能直接顯示最新的天氣信息,用戶需要通過選項菜單的“啟動服務”開啟后臺服務,然后點擊“刷新”獲取最新的天氣狀況。
選項菜單還提供“停止服務”和“退出”選項。WeatherActivity使用的布局文件是tab_weather.xml,這是個較為繁瑣的界面布局,多次使用了垂直和水平的線性布局。
2.historyActivity界面
HistoryActivity主要用來顯示SQLite數據庫中的短信服務信息,顯示的內容包括發(fā)送者的手機號碼、時間和回復短信內容。為了能夠以列表的形式顯示多行數據,并且定制每行數據的顯示布局,這里使用了以往章節(jié)沒有介紹過的ListActivity(Android.app.ListActivity)。
ListActivity可以不通過setContentView()設置布局,也不必重載onCreate()函數,而直接將顯示列表加載到ListActivity,增加了使用的便利性。在WeatherDemo示例中,仍然使用setContentView()設置布局,這樣做的好處是可以在界面中設置更為復雜的顯示元素,例如在列表上方增加了提示信息“SQLite數據庫中的短信服務信息”。下方的代碼是HistoryActivity.java文件的onCreate()函數中的設置布局和加載適配器的關鍵代碼。1.setContentView(R.layout.tab_history);2 setListAdapter(dataAdapter);3.SetupActivity界面
SetupActivity主要用來保存和恢復用戶設置的運行參數,第一次啟動或恢復缺省設置(在選項菜單中)后,界面上會顯示系統(tǒng)的缺省設置,包括城市名稱、更新頻率、是否提供短信服務、是否記錄短信服務數據信息和短信服務的關鍵字。
SetupActivity.java文件中,主要功能集中在RestoreDefaultSetup()、UpdateUI()和SaveConfig()三個函數上。RestoreDefaultSetup()用來恢復系統(tǒng)的缺省配置 ;UpdateUI()會根據保存在Config類中的數據更新SetupActivity的界面控件,SaveConfig()根據界面配置更改Config類,然后調用數據庫適配器的DBAdapter.SaveConfig()函數,將Config類中的配置數據寫入數據庫。
五、總結
通過該項目的實戰(zhàn)演練讓我受益匪淺,在這個過程中,我學會了很多知識,比如Android環(huán)境的搭建、Activity、Service、ContentProvider、SQLite的用法等,但我學會的最重要的一點是,利用現有的資源去解決問題,在圖書館、網絡上尋找答案。
雖然,這個軟件目前運行良好,但是我認為代碼的健壯性還很差,在整個工程的構思方面也不足,用戶操作界面還不夠靈活,這些問題還需要今后逐一解決。
第二篇:Android 課程設計報告
課 程 設 計
課程名稱: 嵌入式技術課程設計 設計題目: 基于Android系統(tǒng)的小查詢工具 學 院: 信息工程與自動化學院 專 業(yè): 計算機科學與技術 年 級: 2010級 學生姓名: 指導教師: 日 期: 2013/7/8
教 務 處 制
課 程 設 計 任 務 書
信息工程與自動化 學院 計算機科學與技術 專業(yè) 2010 年級 學生姓名:
課程設計題目: 基于Android系統(tǒng)的小查詢工具 課程設計主要內容:
通過本課程設計,使學生鞏固軟件工程的基本概念、原理,熟悉安卓應用開發(fā)環(huán)境和技術,學會完成一個移動終端應用軟件的分析、設計、編碼測試和安裝,將理論與實際相結合,強化學生的項目開發(fā)和團隊意識,提高學生分析能力和創(chuàng)新能力
基本理論
1、Android系統(tǒng)的開發(fā)方法及基本原理
2、JavaEE應用程序設計開發(fā)技術 實驗方法與基本要求
要求學生掌握Windows環(huán)境下Android系統(tǒng)開發(fā)的一般方法,AndroidSdk 集成開發(fā)環(huán)境的構建及JavaEE應用程序的開發(fā)。整個設計過程必須由學生自己獨立完成,課程設計按二人一組,分組進行全過程的設計。
設計內容
1、Windows環(huán)境下構建Android系統(tǒng)的開發(fā)環(huán)境
2、基于Android模擬手機,設計手機應用程序
3、將程序下載的Android手機上應用
設 計 指 導 教 師(簽字): 教學基層組織負責人(簽字):
年 月 日
目錄
一、課程設計的目的及要求...................................3 1.1 課程設計的目的.......................................3 1.2 課程設計要求………………………………………………………………………3
二、Android應用程序開發(fā)背景....................................................................3 2.1開發(fā)背景...............................................3 2.2開發(fā)環(huán)境...............................................4
三、Android應用程序開發(fā)環(huán)境搭建............................5 3.1所需軟件的下載…………………………………………………………………… 5 3.2相應軟件的安裝.........................................5
四、“小查詢工具”的設計與實現???????????????10 1.總體設計??????????????????????? 10 1)界面設計?????????????????????10 2)功能設計?????????????????????12 2.詳細設計??????????????????????? 12 1)模塊設計?????????????????????12 2)編碼實現?????????????????????12 3.手機上運行截圖???????????????????? 14
五、總結與體會???????????????????????16
基于Android系統(tǒng)的小查詢工具設計
一、課程設計的目的及要求 1.1 課程設計的目的
1)復習、鞏固Java語言的基礎知識,進一步加深對Java語言的理解和掌握;搭建一個完整的安卓開發(fā)環(huán)境。
2)課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛煉學生的分析解決實際問題的能力,提高學生適應實際,實踐編程的能力;
3)培養(yǎng)學生在項目開發(fā)中團隊合作精神,創(chuàng)新意識及能力。
1.2 課程設計要求
1)通過Eclipse搭建一個完整的安卓開發(fā)環(huán)境。
2)在安卓開發(fā)環(huán)境上編寫一個簡單的安卓軟件,并且能夠在手機上運行。
二、Android應用程序開發(fā)背景 2.1開發(fā)背景
1.智能手機的市場
(1)功能多樣化的智能手機挑戰(zhàn)全球PC出貨量
移動互聯網時代的來臨,直接促進了搭載智能操作系統(tǒng)、具有強大擴展性的智能手機、平板電腦等移動終端產業(yè)的蓬勃發(fā)展。來自美國最大的風險投資機構KPCB的數據顯示,全球智能手機出貨量正在以遠高于臺式電腦、筆記本電腦出貨量的速度快速增長,該機構預計2013年全球智能手機出貨量將達到4.13億,超過臺式電腦與筆記本電腦出貨量的總和。
(2)智能手機的用戶使用數量正在高速增長。據市場調研機構Gartner信息,2011年全球智能手機的總出貨量將會達到4.68億部,相比2010年實現了57.7%的增長,而谷歌Android操作系統(tǒng)將會在今年之內成為全球最大的智能手機操作系統(tǒng)。另外,全球市場調研機構IDC預計未來5年中國手機市場上,智能手機替代傳統(tǒng)功能手機的趨勢將日益明顯,未來5年中國智能手機市場復合增長率將達到34.1%,人們對IT設備智能化的向往是這一增長率能夠實現的主要因素,并且與其他國家相比,中國智
在path變量(已存在不用新建)添加變量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin(注意變量值之間用“;”隔開)
檢驗環(huán)境變量是否配置成功:“開始”-->“運行”-->輸入“javac”-->“Enter”,如果能正常打印用法說明配置成功!
選擇目標工具所在的文件夾跳出安裝工具的目錄
勾選目錄點擊Next,即可開始安裝;安裝的詳細目錄:
安裝完成后,可以在Preference處查找到:
4.安裝SDK(SDK解壓即可使用)
安裝好以后,通過SDK下載開發(fā)所需的源文件包:
這個操作只有在聯網的時候才能進行下載。
四、“小查詢工具”的設計與實現
1.總體設計
1)界面設計
主界面:
02)功能設計
對于這次課程設計編寫的小查詢工具,我們需要它能夠幫助我們完成的功能為:手機歸屬地查詢、身份證信息查詢、區(qū)號郵編城市查詢。對于小查詢工具的每個查詢功能,當用戶點擊相應的功能時,它能夠幫助用戶查詢用戶所需要的信息。
2.詳細設計
1)模塊設計
I、主界面模塊(選題模塊)
該模塊是查詢軟件的主界面,在該模塊界面有三個功能:手機歸屬地查詢、身份證信息查詢、區(qū)號郵編城市查詢。用戶根據自己所要查詢的信息,選擇相應的功能就可以查詢用戶想知道的信息。II、手機歸屬地查詢模塊
在該模塊中,當用戶在輸入框中輸入一個正確的號碼時,點擊“開始查詢”按鈕,就可以查詢到該手機號碼的歸屬地。III、身份證信息查詢模塊
在該模塊中,當用戶在輸入框中輸入一個正確的身份證號碼時,再點擊“開始查詢”按鈕,就可以查詢到該身份證號碼所代表的人的生日、性別以及出生地址。IV、區(qū)號郵編城市查詢模塊
在該模塊中,當用戶在輸入框中輸入一個正確的區(qū)號或者郵編或者城市名稱時,點擊“開始查詢”按鈕,就可以查詢到其對應的省份、城市、區(qū)號、郵編以及歸屬地。
2)編碼實現:
各包內的JAVA源文件:
界面切換等活動的基本代碼:
3.手機上運行截圖
手機截圖:
516-
第三篇:android實習報告
實習報告
實習目的:
生產實習是計算機科學與技術專業(yè)重要的實踐性教學活動,其目的是使學生們進一步加深對所學知識的理解,理論聯系實際,鞏固所學有關計算機基礎理論知識和基本技能,學習有關計算機最新技術方面的應用,增強學生對計算機在社會生活,社會生產中應用的感性認識,深入了解計算機在各個領域中的應用狀況,學生在實習的同時,進行一定的社會實踐與調查活動,對于提高學生的綜合能力和全面素質具有重要意義。
實習內容:
Android主要有四大組件,分別為:Activity 活動、Service 服務、Broadcast receivers 廣播接受者、Content Provider 內容提供者。還有上激活組件Intent。
1.Activity
Activity就是一個用戶可以直接接觸并看到的窗口,當新建一個Android Project后可以
看到在工程文件下的src中有一個已建好的java類FirstActivity,系統(tǒng)也會自動為他配備一個布局文件main.xml,并在AndroidManifest中對此Activity進行注冊。
用戶想要自己創(chuàng)建一個Activity,首先創(chuàng)建一個java類繼承自Activity,可以為他配備一個布局文件用來顯示Activity創(chuàng)建后的布局。最后在主配置文件manifest.xml中對創(chuàng)建的Activity進行注冊,這一步是必不可少的,沒有注冊Activity無法運行。
在manifest.xml中會有許多的Activity,但系統(tǒng)一次只能運行一個Activity,因此必須修選定一個最先運行的Activity。在注冊Activity是加入
可指定當前的Activity為主Activity最先被執(zhí)行。其他Activity可借助激活組件Intent
進行啟動。通過Intent還可實現來了兩個Activity之間傳遞數據
Activity具有生命周期,他有三種狀態(tài):運行狀態(tài)、暫停信息和停止狀態(tài)。運行態(tài)是在屏幕臺前位于當前任務堆棧的頂部,即獲取焦點的Activity。暫停信息是指失去了焦點但對于用戶仍可見,此狀態(tài)下當程序處于低內存是仍有可能被消除。停止狀態(tài)是指完全被另一個Activity覆蓋,但他仍然保留所有的信息與狀態(tài)。
2.Android圖形設計UI
Android UI控件一般寫在布局文件中,此次實習所學控件主要有:TextView,EditText
Button、AlertDialog、RadioButton、CheckBox、Spinner和TableRow等。將這些控件及相應的屬性寫在layout下的布局文件中就可在與其綁定的Activity中顯示相應的對話框,文本框,按鈕等。
Android的界面布局是為了使控件能夠更友好的呈現在用戶的眼中。主要有:絕對布局Absolutelayout、線形布局LinearLayout、框架布局FramLayout、相對布局RelativeLayout和
表格布局TableLayout。其中框架布局適合于單張圖片的顯示。
3.Service 服務
Service事實運行在后臺的一段代碼。他與Activity一樣有相似的生命周期,但不同的是他不能自己運行,必須通過某一個Activity或者其他的Context對象來調用。
Service可通過調用Context.StartService()啟動,還可以通過ServiceConnection來訪問Service??梢詫⑵渌慕M件綁定到Service上。
4.數據存儲
Activity提供了openFileOutput()方法可以用于把數據輸出到文件中,具體的實現過程與在J2SE環(huán)境中保存數據到文件中是一樣的。
openFileOutput()方法的第一參數用于指定文件名稱,不能包含路徑分隔符“/”,如果文件不存在,Android 會自動創(chuàng)建它。創(chuàng)建的文件保存在/data/data/
/files目錄,如: /data/data/cn.itcast.action/files/itcast.txt,通過點擊Eclipse菜單“Window”-“Show View”-“Other”,在對話窗口中展開android文件夾,選擇下面的File Explorer視圖,然后在File Explorer視圖中展開/data/data/
/files目錄就可以看到該文件。
openFileOutput()方法的第二參數用于指定操作模式,有四種模式android有一套自己的安全模型,當應用程序(.apk)在安裝時系統(tǒng)就會分配給他一個userid,當該應用要去訪問其他資源比如文件的時候,就需要userid匹配。默認情況下,任何應用創(chuàng)建的文件,sharedpreferences,數據庫都應該是私有的(位于/data/data/
/files),其他程序無法訪問。除非在創(chuàng)建時指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,只有這樣其他程序才能正確訪問。
實習流程:
2月18——2月27日,老師對于ANDROID開發(fā)進行了詳細的講解,其內容包括:ANDROID 的背景介紹,發(fā)展過程,自身的優(yōu)勢與不足.Android的控件、布局、Activity、Service等一系列基礎知識,對整個Android的開發(fā)有了大致的了解
2月28日——3月2日: 學生自己開發(fā)ANDROID 3GABS項目,老師答疑及驗收
實習心得:
時間過的飛快,半個月的實習就要結束了,在這次實習中我們不僅學習了相關的專業(yè)知識而且讓我對Android系統(tǒng)又有了一個更加深入的了解,它也是我們計算機專業(yè)的一個新的方向并且發(fā)展很迅速,為了今后的發(fā)展我們還需不斷努力學習!我國的信息產業(yè)還很落后,隨著社會的發(fā)展和國家的支持,手機上網是社會發(fā)展的趨勢,到時候手機上網將無處不在!之前我對Android系統(tǒng)的了解之停留在應用的層次上,對于更深層次的了解是很少的,通過這次實習,讓我對Android系統(tǒng)有了一個更深層次的了解,同時它頁使我意識到無論朝哪個方向發(fā)展,主要還是要扎實深刻地學習,同時也得不斷努力探索!
IT業(yè)發(fā)展速度一直都是相當驚人的,不想被社會淘汰,我們就得必須不斷地學習,現在的社會不再是一勞永逸,其他行業(yè)也是如此,我們必須不斷地拿知識來武裝自己,不然被淘汰那是肯定的!現在就業(yè)難原因其實在于競爭的家具,為了在競爭中得到成功,我們必須時時刻刻學習,還學到了很多做人做事的道理,不僅懂得了要想在計算機這一行立足必須具備扎實的技術理論知識,還必須學會與人溝通,合作的能力,同時更懂得了嘗試的重要性,很多事情不是聽說是困難的它就是困難的,只有親自去做親自去體會才知道,其實它并沒有那么困難,這就是實踐的重要性!無論做什么事情都必須要堅持,只有堅持下去,才會成功!事在人為,就怕不做!我們不能怕失敗,關鍵是要從失敗中總結經驗,帶著勇氣,帶著自信,堅持不懈,踏踏實實。這一次的實習是短暫的,但我收獲良多?;仡櫼郧八哌^的路,太多的無奈和迷茫,這次實習就像是我人生道路上的航標,為我指明了前景的方向,是我對自己的前途充滿了信心,我不僅知道了在人生的岔道口更適合朝哪個方向前進!更知道了在今后的道路上怎么去武裝自己!
實習結果:
第四篇:商務天氣預報監(jiān)測報告
*年4月,*商務局網站正式開通,同時,商務天氣預報欄目也正式開始運行。
一、商務天氣預報分為三大類別
1、動態(tài)分析
動態(tài)分析欄目主要以發(fā)布全國及奈曼地區(qū)的行情動態(tài)為主,內容包括監(jiān)測的各個領域
2、農產品類
農產品類目前共包含九個子類:蔬菜類、糧油類、種子類、糧食類、農藥類、水果類、肉類、魚類、蛋類,以上九個子類里一共監(jiān)測著130多種消費品和生產資料。發(fā)布周期分為周報、半月報和月報。從*年開始,為了可以使用戶查詢到的數據更加及時和準確,除種子類和農藥類(時節(jié)性較強)采用原有的報送周期外,其它類別將全部采用周報制度。
3、機電化工類
目前本類只包括一個子類別,即燃油類。燃油類的上報周期為即時的,當監(jiān)測企業(yè)的燃油價格出現變化時,即刻采取上報制度,并在網站首頁添加新聞或進行告知。
后期隨著監(jiān)測企業(yè)的增加,機電化工類將會增加其它子類別。
二、商務天氣預報的報送形式
*商務天氣預報目前采取的報送形式為表格式,按監(jiān)測類別和監(jiān)測時間進行上報,查詢者可查詢到各類消費品和生產資料最近五次的監(jiān)測數據,用戶可以從例次的監(jiān)測數據看出各類別的價格走勢及變化規(guī)律。上報表格緊湊,最新的監(jiān)測數據采用高亮度顯示,較為醒目,方便查詢。
*年4月開始運行以來,商務天氣預報已運行了八個多月,在此期間,各類別總的點擊率達到近3000,雖然不是很高,但在運行初期,有這個成績,可以看出這個欄目大家還是需要的,對大家還是有幫助的。*年,在原有的基礎上會增加一些類別和功能,讓這個欄目更好的服務于社會。
第五篇:Android實訓報告
時間過得飛快,一週的實訓馬上就要結束了。在這次實訓中我不僅學習了相關的專業(yè)知識,而且讓我對Android系統(tǒng)有了一個更加深入的瞭解,它也是我們專業(yè)的一個新的方向並且發(fā)展很迅速,為了今後的發(fā)展我們還需不斷努力學習!我國的信息產業(yè)還很落後,隨著社會的發(fā)展及國家的支持,手機上網必然是社會發(fā)展的趨勢,到時候手機上網將無處不在!我對Android系統(tǒng)的瞭解只停留在應用的層次上,對於更深層次的瞭解是很少的,通過這次實訓讓我對Android系統(tǒng)有了一個更深層次的瞭解,同時它也使我意識到無論朝哪個方向發(fā)展,主要還是得扎實、深刻的學習,同時也得不斷努力探索。
IT業(yè)的發(fā)展速度一直都是相當驚人的,不想被社會淘汰,我們就必須不斷的學習,現在的社會不再是一勞永逸,其它行業(yè)也是如此,我們必須不斷的拿知識來武裝自己,不然被淘汰那是肯定的!現在就業(yè)難的原因其實在於競爭的加劇,為了在競爭中取得成功,我們必須時時刻刻刻學習!
在Android編程過程中鞏固熟悉了Java的編程。由於Android應用程序的開發(fā)離不開Java的支持,所以基礎的Java知識是必須的。Android系統(tǒng)是基於Linux的手機操作系統(tǒng)平臺,要深入學習Android,不僅僅是有Java和Android應用開發(fā),必須要具備Linux,C/C++高級編程才能深入的涉及Android Framework和Android內核開發(fā)。成為Android開發(fā)的高素質人才。所以,在後續(xù)對Android的學習中可能會看一些較底層的書籍。
由於這次實訓時間較短,對於Android應用程序的高級編程學的很少,是這次實訓中的不足。要想開發(fā)一些好的應用程序,還需要更多的知識支持。在實訓時,遇到了很多平時沒有遇到或者沒有特別關注的問題。這些問題只有自己在實際開發(fā)中才能體會到並且解決。
通過對java以及Android的學習,讓我又學會了一門編程語言,這對於我以後的學習工作都會有很大的幫助?;仡櫼郧八叩穆?,太多的是無奈和迷茫,這次實訓就像是我人生道路上的航標,為我指明了前進的方向,使我對自己的前途充滿了信心,同時也知道了自己的前進方向。