




已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
智能終端軟件開發(fā)設計報告班 級: 姓 名:劉佳慧()周林() 指導老師: 徐戰(zhàn)亞 中國地質(zhì)大學(武漢)信息工程學院 2014年1月一、 項目背景和意義尿急是一個麻煩的問題,每個人都可能遇到,然而在陌生環(huán)境中強忍內(nèi)急苦苦尋找?guī)遣簧偃硕荚羞^的尷尬經(jīng)歷。當然,把千辛萬苦找到的廁所標記出來,讓更多的人輕松的找到,是再好不過了。所以我們設計并開發(fā)了一款可以快速定位附近公廁,打發(fā)蹲坑時間的實用好玩的基于android的手機軟件窩粑粑。二、 軟件簡介軟件架構(gòu)1、 界面設計采用了新穎的win8風格的界面,主頁面布局了軟件的幾個主要功能。頁面可以側(cè)滑,側(cè)滑后是賬戶界面和軟件維護界面。 2、 軟件功能周邊的坑:廁所的具體位置用經(jīng)緯度坐標表示并且在地圖上顯示出來,用戶還可以自定義搜索的范圍,更快更高效的尋找合適的廁所,同時還有導航功能,使用戶在陌生的環(huán)境中也能快速的找到廁所。 我發(fā)現(xiàn)的坑:用戶可以將已找到的廁所地址信息上傳到在線地圖并標記,方便自己方便他人。 廁所的前世今生:廁所文化是一個很寬泛的話題,古今中外都有不同的看法,這里介紹了廁所文化的由來和一些歷史上關(guān)于廁所的趣聞軼事。廁所是使人放松、振奮和感到享受的圣地。人們必須關(guān)注所有公共廁所設施的更新改造,使人們的生活質(zhì)量不斷提高。一個良好的廁所環(huán)境體現(xiàn)了對于使用者的尊重,反過來,使用者也會尊重它,這樣,人們的舉止也相應地變得越來越文明。 萌馬桶:隨著科技的發(fā)展和生活水平的提高,人們對生活環(huán)境的要求也越來越高,在舒適健康的前提下,新奇有趣的造型更能令人們身心愉快。這里展示了最近幾年的高科技新型馬桶和一些世界各地的趣味馬桶。廁所有鬼:在一些影視作品和民間傳說中,廁所是十分容易鬧鬼的一個場所??膳碌母阈Φ陌г沟母鞣N鬼怪故事讓人害怕之余又忍不住想探究更多,在此奉上幾篇經(jīng)典鬼故事,因為是實習作業(yè),時間和能力有限搜集的鬼故事不是很多。 手紙的學問:衛(wèi)生紙雖然不起眼,但談起衛(wèi)生紙生產(chǎn)廠家的數(shù)量,單單就北京就有97家之多,如此驚人的數(shù)量,行業(yè)競爭的激烈程度,可見一斑。如此激烈的行業(yè)競爭,衛(wèi)生紙的品質(zhì)更是參差不齊,然而,這衛(wèi)生紙里又有多少玄機呢?這里告訴大家選購衛(wèi)生紙的基本常識和一些實惠安全的衛(wèi)生紙品牌。 粑粑好才是真的好:糞便是最能直接反應消化系統(tǒng)各器官組織功能狀況的一面“鏡子”,大便的形態(tài)顏色可以“隱喻”我們身體的一些病理變化。這里簡單的闡述了其間的相應關(guān)系。3、技術(shù)難點和介紹主要用到的技術(shù)有andriod移動開發(fā)技術(shù)、百度地圖android SDK的使用和android服務端相應功能應用。選擇Android操作系統(tǒng)Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領(lǐng)導及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。 2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放手機聯(lián)盟共同研發(fā)改良 Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機發(fā)布于2008 年10月。Android逐漸擴展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機、游戲機等。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。 2012年11月數(shù)據(jù)顯示,Android占據(jù)全球智能手機操作系統(tǒng)市場76%的份額,中國市場占有率為90%。2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設備數(shù)量已經(jīng)達到10億臺。當前的Android操作系統(tǒng)具有以下幾個功能:顯示布局:Android操作系統(tǒng)支持更大的分辨率,VGA,2D顯示,3D顯示都給予OpenGL ES 3.0標準規(guī)格(4.3版本開始支持OpenGL ES 3.0),并且支持傳統(tǒng)的智能手機。數(shù)據(jù)存儲:Android操作系統(tǒng)內(nèi)置SQLite小型關(guān)聯(lián)式資料庫管理系統(tǒng)來負責存儲數(shù)據(jù)。網(wǎng)絡:Android操作系統(tǒng)支持所有的網(wǎng)絡制式,包括GSM/EDGE、IDEN、CDMA、EV-DO、UMTS、Bluetooth、Wi-Fi、LTE、NFC和WiMAX。信息:作為原設計給智能手機使用的操作系統(tǒng),Android操作系統(tǒng)原生支持短信和郵件,并且支持所有的云信息和服務器信息。語言:Android操作系統(tǒng)支持多語言。瀏覽器:Android操作系統(tǒng)中內(nèi)置的網(wǎng)頁瀏覽器基于WebKit核心,并且采用了Chrome V8引擎。在Android 4.0內(nèi)置的瀏覽器測試中,HTML5和Acid3故障處理中均獲得了滿分,并且于2.2版及之后能原生支持Flash,4.0版本后去除對Flash的支持。支持Java:雖然Android操作系統(tǒng)中的應用程序大部分都是由Java編寫的,但是Android卻是以轉(zhuǎn)換為Dalvik executables的文件在Dalvik虛擬機上運行的。由于Android中并不自帶Java虛擬機,因此無法直接運行Java程序。不過Android平臺上提供了多個Java虛擬機供用戶下載使用,安裝了Java虛擬機的Android系統(tǒng)可以運行Java_ME的程序。媒體支持:Android操作系統(tǒng)本身支持以下格式的音頻/視頻/圖片媒體:WebM、H.263, H.264(in 3GP or MP4 container)、MPEG-4 SP、AMR, AMR-WB(in 3GP container)、AAC, HE-AAC(in MP4 or 3GP container)、MP3、MIDI、Ogg Vorbis、FLAC、WAV、JPEG、PNG、GIF、BMP。如果用戶需要播放更多格式的媒體,可以安裝其他第三方應用程序。流媒體支持:Android操作系統(tǒng)支持RTP/RTSP(3GPP PSS, ISMA)的流媒體以及(HTML5 )的流媒體,同時還支持Adobe的Flash,在安裝了RealPlayer之后,還支持蘋果公司的流媒體。硬件支持:Android操作系統(tǒng)支持識別并且使用視頻/照片攝像頭,多點電容/電阻觸摸屏,GPS,加速計,陀螺儀,氣壓計,磁強計,鍵盤,鼠標,USB Disk,專用的游戲控制器,體感控制器,游戲手柄,藍牙設備,無線設備,感應和壓力傳感器,溫度計,加速2D位位塊傳輸(硬件方向,縮放,像素格式轉(zhuǎn) 換)和3D圖形加速。多點觸控:Android支持本地的多點觸摸,在最初的HTC Hero智能手機上即有這個功能。該功能是內(nèi)核級別(為了避免對蘋果公司的觸摸屏技術(shù)造成侵權(quán))。藍牙:Android支持A2DP,AVRCP,發(fā)送文件(OPP),訪問電話簿(PBAP),語音撥號和發(fā)送智能手機之間的聯(lián)系。同時支持鍵盤,鼠標和操縱桿(HID)。多任務處理:Android操作系統(tǒng)支持本地的多任務處理。語音功能:除了支持普通的電話通話之外,Android操作系統(tǒng)從最初的版本開始就支持使用語音操作來使用Google進行網(wǎng)頁搜索等功能。而從Android OS v2.2開始,語音功能還可以用來輸入文字、語音導航等功能。無線共享功能:Android操作系統(tǒng)支持用戶使用本機充當“無線路由器”,并且將本機的網(wǎng)絡共享給其他智能手機,其他機器只需要通過WiFi查找到共享的無線熱點,就可以上網(wǎng)。而在Android OS v2.2版本之前的操作系統(tǒng)則需要通過第三方應用或者其他定制版系統(tǒng)來實現(xiàn)這個功能。截圖功能:從Android OS v4.0版本開始,Android操作系統(tǒng)便支持截圖功能,該功能允許用戶直接抓取智能手機屏幕上的任何畫面,用戶還可以通過編輯功能對截圖進行處理,還 可以通過藍牙/E-mail/微博/共享等方式發(fā)送給其他用戶或者上傳到網(wǎng)絡上,也可以拷貝到計算機中選擇百度地圖android SDK當初在谷歌地圖和百度地圖之前選擇了好久,最后選擇了百度地圖。這里結(jié)合受眾反映針對android版的百度地圖作出了一些分析:1、界面:百度地圖很多都是在顯眼位置用文字做提示,一目了然,谷歌界面有點炫,很多用圖標來表示,但是用起來相對復雜,不熟悉的用戶需要確定這個圖標是否是所需要選擇的。 而百度地圖搜索框下就直接有“公交”“駕車”的選項,界面簡潔直接很多,谷歌地圖需要點擊獲取路線,再點擊小圖標來選擇“公交”這些選項,而且圖標不夠引 人注目,使用起來相對復雜些,試想一個很少用網(wǎng)絡地圖的人分別使用二者地圖,那個更方便呢?應該是百度,大多數(shù)用戶通過地圖是查詢位置-這個地方在哪,周 圍有什么地物,查詢路線-從一個方到另一個地方如何到達,用百度地圖,這些問題很容易解決,而用谷歌地圖得擺弄一會兒。 2、百度地圖的查詢路線更好,首先還是界面更簡潔直接,然后是數(shù)據(jù)的問題,先不管為他們提供數(shù)據(jù)的公司如何,剛剛特意同時查了下,同樣地起點和終點,百度地 圖給出了5條路線,谷歌地圖給出的是4條路線,而且百度地圖路線的選擇時可以選擇“較快捷”“少換乘”“少步行”三種方式,更方便。打車費用也直接顯示出 來,而且個人體會10元內(nèi)的打車費用基本正確。 3、百度地圖有個視野內(nèi)搜索功能,可以很方便地查找到目標位置,谷歌地圖沒有。這個很重要。 4、一個重要界面布局問題,百度地圖是地圖視野在左,而谷歌地圖是地圖視野在右,我們現(xiàn)在時喜歡從左到右看東西啊,這點百度地圖更符合用戶習慣。 (當然也可能是我常用百度地圖,所以這么覺得) 5、百度地圖已經(jīng)和都市圈合作推出了部分城市如北京、上海、深圳、廣州的三維地圖,谷歌地圖沒有。 6、百度地圖地圖視野上方有個截圖功能,可以直接拉框截圖,谷歌地圖沒有。 7、使用百度的占大多數(shù),經(jīng)常可以聽到“百度一下啊”的話語。隨之帶來百度地圖的使用率 也相對較高。劣勢: 1、如果需要從網(wǎng)絡地圖上獲取數(shù)據(jù)的話,谷歌地圖完勝,而且還有谷歌地球在一旁輔助,如虎添翼,從網(wǎng)上各種各樣的谷歌地圖相關(guān)工具軟件就可以看出。 2、路線查詢時輸入地點名稱卻有多個符合條件時,會給出一個下拉菜單給予選擇,同一地點谷歌地圖提供的數(shù)據(jù)精確到街道,而百度地圖精確到區(qū)。 3、谷歌地圖可以將側(cè)邊欄隱藏起來,看到更大的地圖視野,而百度地圖是點擊全屏來顯示更大的視野,兩種切換方式比起來谷歌的更舒服。 4、谷歌地圖的分享鏈接提供“粘貼 HTML 以便嵌入到網(wǎng)站”這一功能,百度沒有。 5、界面布局百度地圖更簡潔,但是色彩搭配上和畫面感上谷歌地圖更好。 6、谷歌的品牌形象占優(yōu)。Android服務端開發(fā)XML與JSON 解析:JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C+, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。Servlet:servlet是在服務器上運行的小程序。這個詞是在Javaapplet的環(huán)境中創(chuàng)造的,Java applet是一種當作單獨文件跟網(wǎng)頁一起發(fā)送的小程序,它通常用于在客戶端運行,結(jié)果得到為用戶進行運算或者根據(jù)用戶互作用定位圖形等服務。服務器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫的程序。這些通常是使用公共網(wǎng)關(guān)接口(CGI(Common Gateway Interface))應用程序完成的。然而,在服務器上運行Java,這種程序可使用Java編程語言實現(xiàn)。在通信量大的服務器上,Javaservlet的優(yōu)點在于它們的執(zhí)行速度更快于CGI程序。各個用戶請求被激活成單個程序中的一個線程,而無需創(chuàng)建單獨的進程,這意味著服務器端處理請求的系統(tǒng)開銷將明顯降低。MySQL數(shù)據(jù)庫:MySQL是一個開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。由于時間以及人力有限,服務器端尚未將開發(fā)方案付諸實踐,為便于客戶端程序的測試,采用sqlite數(shù)據(jù)庫存儲數(shù)據(jù)。三、 程序設計實現(xiàn)軟件功能模塊實現(xiàn):主頁面:布局文件: 周邊的坑:廁所的具體位置用經(jīng)緯度坐標表示并且在地圖上顯示出來,用戶還可以自定義搜索的范圍,更快更高效的尋找合適的廁所,同時還有導航功能,使用戶在陌生的環(huán)境中也能快速的找到廁所。代碼實現(xiàn):public class SearchPOI_Activity extends Activity DBAdapter GeoPoiDB;private int distance=0;/ 地圖顯示相關(guān)private MapView mMapView = null;/ 地圖顯示圖層private MKSearch mSearch = null; / 搜索模塊,也可去掉地圖模塊獨立使用private MapController mMapController = null;/ 地圖控制private MyPoiOverlay poiOverlay = null;/ 搜索結(jié)果圖層/ 定位相關(guān)LocationClient mLocClient;LocationData locData = null;public MyLocationListenner myListener = new MyLocationListenner();/ 定位圖層MyLocationOverlay myLocationOverlay = null;/ 定位圖層boolean isRequest = false;/ 是否手動觸發(fā)請求定位boolean isFirstLoc = true;/ 是否首次定位private GeoPoint mGeoPoint;/當前位置變量private GeoPoint endGeoPoint;/ 自定義坐標點poi相關(guān)private MyOverlay mOverlay = null;/ 自定義poi圖層private PopupOverlay pop = null;/ 彈出圖層private ArrayList mItems = null;private ArrayList mPoiMSG = null;private TextView popupText = null;private View viewCache = null;private View popupInfo = null;private View popupLeft = null;private View popupRight = null;private Button button = null;private MapView.LayoutParams layoutParam = null;private OverlayItem mCurItem = null;/ UI相關(guān)private Button requestLocBtn;Button map_bigger = null;/ 地圖放大按鈕Button map_smaller = null;/ 地圖縮小按鈕private int maxZoomLevel;private int minZoomLevel;String SearchKeyTex = 廁所;private EditText SearchDistance;int mapstyle = 0;Overridepublic boolean onCreateOptionsMenu(Menu menu) / TODO 自動生成的方法存根/ 第一個參數(shù)是menugroup值;第二個參數(shù)是每個menu的值,int類型;第三個參數(shù)表示menu顯示的順序;第四個參數(shù)是menu的顯示內(nèi)容menu.add(0, 1, 1, 實景地圖).setIcon(R.drawable.changemap);menu.add(0, 2, 2, 搜索).setIcon(R.drawable.searchpoi);return super.onCreateOptionsMenu(menu);Overridepublic boolean onMenuItemSelected(int featureId, MenuItem item) / TODO 自動生成的方法存根if (item.getItemId() = 1) if (mapstyle = 0) mMapView.setSatellite(true);mapstyle = 1;item.setTitle(二維地圖); else mMapView.setSatellite(false);mapstyle = 0;item.setTitle(實景地圖); else if (item.getItemId() = 2) distance=getDistance();mSearch.poiSearchNearBy(SearchKeyTex, mGeoPoint,distance);addPoitoListArr(null);resetOverlay(null);return super.onMenuItemSelected(featureId, item);Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);DemoApplication app = (DemoApplication) this.getApplication();if (app.mBMapManager = null) app.mBMapManager = new BMapManager(this);app.mBMapManager.init(DemoApplication.strKey,new DemoApplication.MyGeneralListener();setContentView(R.layout.activity_poisearch);CharSequence titleLable = 周邊的坑;setTitle(titleLable);GeoPoiDB = new DBAdapter(this);mItems = new ArrayList();/ 地圖初始化mMapView = (MapView) findViewById(R.id.bmapView);mMapController = mMapView.getController();mMapController.enableClick(true);/mMapView.setBuiltInZoomControls(true);mMapView.getController().setZoom(15);/ 定位初始化mLocClient = new LocationClient(this);locData = new LocationData();mLocClient.registerLocationListener(myListener);LocationClientOption option = new LocationClientOption();option.setOpenGps(true);/ 打開gpsoption.setCoorType(bd09ll); / 設置坐標類型option.setScanSpan(1000);mLocClient.setLocOption(option);mLocClient.start();/ 定位圖層初始化myLocationOverlay = new MyLocationOverlay(mMapView);/ 設置定位數(shù)據(jù)myLocationOverlay.setData(locData);/ 添加定位圖層myLocationOverlay.enableCompass();/ 初始化搜索模塊,注冊搜索事件監(jiān)聽mSearch = new MKSearch();MKSearch.setPoiPageCapacity(50);/設置次顯示50個搜索結(jié)果mSearch.init(app.mBMapManager, new MKSearchListener() Overridepublic void onGetPoiResult(MKPoiResult res, int type, int error) / 錯誤號可參考MKEvent中的定義if (error != 0 | res = null) /Toast.makeText(SearchPOI_Activity.this, 抱歉,未找到結(jié)果,/Toast.LENGTH_LONG).show();return;/ 將poi結(jié)果顯示到地圖上poiOverlay = new MyPoiOverlay(SearchPOI_Activity.this,mMapView, mSearch);poiOverlay.setData(res.getAllPoi();/ 獲取所有poi搜索結(jié)果mMapView.getOverlays().clear();addOverlays();mMapView.refresh(););requestLocBtn = (Button) findViewById(R.id.locationbtn);map_bigger = (Button) findViewById(R.id.poi_mapbiggerbtn);map_smaller = (Button) findViewById(R.id.poi_mapsmallerbtn);map_bigger.setOnClickListener(new OnClickListener() public void onClick(View v) controlMapView(true););map_smaller.setOnClickListener(new OnClickListener() public void onClick(View v) controlMapView(false););requestLocBtn.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) / 手動定位請求requestLocClick(););/ 初始化自定義overlyinitOverlay();/ 添加所有overlay到MapView中addOverlays();/* * 刷新地圖 */mMapView.refresh(); initWheel(R.id.passw_2); initWheel(R.id.passw_3); initWheel(R.id.passw_4); initWheel(R.id.passw_5); 我發(fā)現(xiàn)的坑:用戶可以將已找到的廁所地址信息上傳到在線地圖并標記,方便自己方便他人。代碼實現(xiàn):public class Location_Activity extends Activity DBAdapter GeoPoiDB;/ 數(shù)據(jù)庫相關(guān)/ 定位相關(guān)LocationClient mLocClient;LocationData locData = null;/ 定位坐標數(shù)據(jù)private GeoPoint mGeoPoint;String address = null;public MyLocationListenner myListener = new MyLocationListenner();/ 定位圖層locationOverlay myLocationOverlay = null;/ 彈出泡泡圖層private PopupOverlay pop = null;/ 彈出泡泡圖層,瀏覽節(jié)點時使用private TextView popupText = null;/ 泡泡viewprivate View viewCache = null;/ 地圖相關(guān),使用繼承MapView的MyLocationMapView目的是重寫touch事件實現(xiàn)泡泡處理/ 如果不處理touch事件,則無需繼承,直接使用MapView即可MyLocationMapView mMapView = null; / 地圖Viewprivate MapController mMap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 核子儀器倫理與社會責任考核試卷
- 《農(nóng)產(chǎn)品的質(zhì)量檢測》課件
- 裝飾材料企業(yè)品牌形象塑造考核試卷
- 《農(nóng)村家禽飼養(yǎng)技術(shù)》課件
- 學校安全教育主要內(nèi)容
- 紡織品的智能生產(chǎn)成本控制考核試卷
- 毛皮服裝生產(chǎn)設備選型與采購考核試卷
- 燃氣熱水器安裝與調(diào)試考核試卷
- 核電工程施工過程中的質(zhì)量控制點管理考核試卷
- 建筑造型設計原理
- 地鐵站裝修報價
- 《寄冰》-完整版課件
- 內(nèi)科學-骨髓增生異常綜合征(MDS)
- 辦公室事故防范(典型案例分析)
- 地球的不同圈層英文版
- 八年級下冊英語七選五專項講練一
- 兩班倒排班表excel模板
- ISO31000風險管理標準中文版
- 《S7-1200-PLC-編程及應用技術(shù)》試題試卷及答案2套
- 電土施表4-18混凝土結(jié)構(gòu)工程養(yǎng)護記錄.docx
- 醫(yī)療質(zhì)量與安全管理委員會組成與職責
評論
0/150
提交評論