999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的無憂出行應用軟件設計與實現

2018-09-04 09:37:16賴盛鑫高建華
軟件導刊 2018年6期

賴盛鑫 高建華

摘 要:移動互聯網時代,用戶可通過手機隨時隨地從互聯網上獲取信息。基于安卓手機系統和百度地圖軟件開發工具包,分析人們生活出行時的各種需求,充分運用九宮格手勢密碼、Java語言和SharePreference等基本技術,對無憂出行應用軟件進行功能模塊設計。該系統實現了二維碼電子名片取代傳統名片的發放,具備查詢全國城市天氣預報和公交車路線功能,能調用百度地圖SDK獲得周圍商家數據信息。應用實驗表明,該軟件與同類APP相比,更加注重用戶體驗,使用方便,具有較強的通用性。

關鍵詞: 安卓應用程序;百度地圖;二維碼名片;天氣預報

DOI:10.11907/rjdk.181061

中圖分類號:TP319

文獻標識碼:A 文章編號:1672-7800(2018)006-0106-05

Abstract:The advent of the era of mobile Internet, the user through the phone can access to real-time information from the Internet at any time, anywhere. The article based on the android mobile phone system software development kit and Baidu map, analyzes the diverse needs of people travel life, uses of the Jiugongge gesture password, Java language, SharePreference and other basic theory of the functional module design. The application achieves a two-dimensional code electronic business card to replace the traditional business card issuance in the technical innovation; Completed the query the national city weather forecast and the function of the bus route query; Call Baidu map SDK to obtain merchants data, and obtain corresponding stores information such as the telephone and so on. The application experiment shows that the software, compared with the similar APP on the market, pays more attention to user experience, and easy to use, strong commonality.

Mobile phone users can obtain information from Internet anywhere at any time in this mobile Internet era. People's various travel needs are analyzed by Android mobile system and Baidu Map kit. Technologies including Sudoku gesture codes, Java language and SharePreference are employed for function module design of worry-free trip application software. Traditional business cards are replaced by two-dimensional code eletrical business cards in the APP. It also provides nationwide weather report and bus route query and employs Baidu Map SDK to obtain nearby merchants' information. According to the usability testing, the APP is more focused on users' experience, user-freindly and of stronger commonality compared with other similar APPs.

Key Words:Android application (App); Baidu map; QR-core card; weather forecast

0 引言

隨著信息技術的迅猛發展,移動設備已成為日常交流的工具[1]。Android平臺憑借系統版更新周期短、開源等優勢,吸引越來越多的開發者或企業參與到手機應用開發中,開發出了眾多對生活出行非常實用的應用軟件,如支付寶、大眾點評、美團、百度地圖等,但這些軟件功能過于臃腫且植入廣告眾多,運行速度慢,用戶體驗不佳。鑒于以上不足,本文綜合現有研究成果[2-4],利用Android studio工具環境[5-6],充分研究平臺測試[7-8]、安全[9]等方面因素,設計并實現了一款更實用的系統軟件。

系統實現如下功能:九宮格手勢解鎖密碼、電子二維碼名片生成、城市天氣查詢、公交線路查詢、搜索用戶所在地點周圍2km內所有商家和公共設施并顯示路線地圖。

(1)任何擁有Android智能手機的用戶都可以使用該應用軟件,為出行生活提供暢行無憂的貼心指導。

(2)九宮格手勢密碼設置,不僅提供獨一無二的軟件用戶使用權,還能根據用戶的喜好設置解鎖圖案,在用戶手機上實現創建、修改、找回密碼功能,節省郵箱等驗證找回密碼的時間,增強了用戶體驗感,提高了軟件使用的安全性。

(3)二維碼電子名片取代了傳統的紙質名片,方便快捷,既順應移動互聯網電子二維碼盛行的潮流,又符合當下低碳環保理念。

(4)用戶可以隨時隨地查看全國各主要城市未來3天天氣情況,全國各主要城市公交車線路情況,為人們提供出行參考。

(5)用戶可查詢附近所有的商家和公共設施詳情,并通過地圖規劃選擇最優路徑。

(6)主頁面周圍商家圖片生動形象,UI界面運行流暢,采用主流的主頁切換模式,無商業廣告信息。

1 相關理論與關鍵技術

1.1 九宮格手勢密碼原理

本系統通過一個九宮格圖案進行登錄密碼設置。九宮格圖案是一個3行3列的二維矩陣[10],當用戶指尖劃過一個數字時,系統就記錄了該數字,隨后將該數字利用SharePreference存儲技術保存到手機內存,在登錄前進行數據比對驗證。同類APP中大多建立后端數據庫調取數據,在網絡條件較差時常常出現調取失敗現象,本文采用的技術與同類APP相比,提高了運行速度,避免了APP程序崩潰的風險。

通常情況下,繪制一個九宮格圖案最短的只繪制一個點,最長可以繪制連接9個點。根據數學排列組合原理可知,如果從只繪制一個點到9個點共有A9-9+A8-9+A7-9+A6-9+A5-9+A4-9+A3-9+A2-9+A1-9=986 409種繪制方法,增強了安全性。

1.2 二維碼生成原理

二維碼(Two-dimension code)是用矩陣符號組成的[11],并以特定的幾何圖形按一定規律在平面上(二維方向)分布的黑白相間的圖形記錄符號[12]。二維碼主要分為堆疊式/行排式和矩陣式[13]。矩陣式中的QR-CODE,即快速回復二維碼,是目前最為流行的一種。QR-CODE具有存儲信息量大、識讀速度快、糾錯能力強等優點,廣泛應用于支付生活等領域。

本文設計的電子二維碼即采用QR-CODE,對其編碼并加以改進,通過識別并存儲用戶輸入的數據字符,從而轉換成二維數組。然后根據編碼規范,使用繪圖功能繪制二維碼,最后生成標準的QR-CODE。

1.3 數據調取關鍵技術

1.3.1 百度地圖API及定位

百度地圖API主頁[14]提供給開發者各種資源,其中百度地圖Android開發功能板塊提供了地圖、定位、導航以及全景SDK。

手機定位分為4種方式:①衛星定位(GPS、北斗、伽利略、Glonass);②移動基站定位;③WiFi輔助定位;④AGPS定位[15]。本文運用前3種定位技術實現本地定位:獲本地天氣和POI搜索必須先獲取用戶所在地的經緯度,可導入百度地圖相關應用開發包(百度地圖API官網可下載),然后通過運營商的數據流量、WiFi方式,調用開發包提供的類方法定位出經緯度。

1.3.2 百度地圖POI搜索及路徑規劃技術

百度POI(Point of Interest:興趣點)搜索:支持周邊檢索、區域檢索和城市內檢索。

周邊檢索:以某一點(用戶所在地)為中心,指定距離為半徑(本文采用2km),根據用戶輸入的關鍵詞進行POI檢索,可獲得附近的POI,如超市、餐廳、ATM、KTV等信息;區域檢索:在指定矩形區域內根據關鍵詞進行POI檢索;城市內檢索:根據用戶輸入的關鍵字進行POI檢索;POI詳情檢索:根據POI的ID信息檢索該興趣點詳情。

本系統可對公交詳細信息進行查詢:公交換乘查詢:根據起、終點進行線路規劃(支持設置途經點);步行路徑檢索:支持步行路徑規劃。

1.4 即時獲取近3天天氣預報

(1)獲取定位地址天氣:高德地圖雖然提供了獲取天氣預報接口數據信息,但更新十分緩慢或幾乎不更新??紤]到百度地圖地理位置反編碼時和原有開發類包發生不兼容的現象,在技術實現過程中使用高德地圖天氣預報功能獲取用戶城市中文名稱,根據高德地圖獲取到的中文城市名再到新浪天氣平臺獲取詳細天氣信息。

(2)獲取其它城市天氣:從中國天氣網接口獲得省份及城市名稱,從而獲取查詢的城市天氣信息。

2 系統軟件設計

2.1 MVC設計模式

Android界面布局方式分為兩種:①直接在程序代碼中對UI(User Interface:用戶界面)進行布局;②依據MVC(Model View Controller:即模型-視圖-控制器)模式進行設計(目前因其擴展性較好成為主流的布局方法)。

本文設計的系統工程文件中有個res包,內容包括圖片、顏色、布局文件等資源,在不同的xml分布著各式各樣的組件,各組件間具有嚴格的層次關系。布局完成之后在代碼中利用setContentView()方法可以將xml加載到程序中,利用代碼控制頁面。圖1是系統用到的所有XML文件。

以上每一個xml并不都對應一個頁面,有的實現一條分割線作用,有的只是實現下拉加載作用等。在功能設計上,以找回密碼頁activity_findpwd.xml為例說明。

圖3為人們熟悉的用戶交互頁面,而圖2是圖3的布局代碼塊,從代碼映射到布局,綜合運用了Android特色布局技術及特色組件功能。想了解更多的布局方式和組件請查看文獻[16]。

2.2 系統程序架構

本文設計的Android手機無憂出行應用系統軟件分為6個模塊,如圖4所示。

設計圖中各功能的應用場景:

手勢密碼模塊,程序流程如圖5所示。

新用戶第一次登錄時先看到引導頁面(推薦該軟件功能的一些截圖提示),開啟體驗后跳轉到創建密碼頁面,設置完用戶繪制的手勢密碼進入登錄密碼頁面,如果是老用戶登錄可直接進入登錄密碼頁面,繪制專屬自己的手勢密碼后方能登錄成功進入主頁面。此外,用戶可以修改手勢解鎖密碼,但是要在用戶輸入之前的密碼匹配成功后才能重新繪制新的密碼,否則提示“與原始密碼不一致”并提供4次機會。若繼續輸錯后則將手勢密碼鎖住(讓繪制手勢密碼界面不再出現繪制軌跡,并且沒有任何數據傳輸功能),60s后方能修改。若用戶忘記密碼,可通過找回密碼頁面輸入第一次創建密碼時輸入的特殊數字。若匹配成功,便能重新創建密碼,否則提示“未能準確匹配,請重新輸入”。

二維碼名片模塊:在EditText輸入姓名、公司、職位、電話號碼、郵箱等信息后點擊生成二維碼,供對方友人掃描添加。

天氣預報模塊:主頁面顯示本地今日天氣,包括城市名稱、天氣情況圖標和中文漢字、溫度、風向參數。主頁面還實現全國各主要城市的天氣預報,天氣預報除了上述天氣參數外,還有之后兩天的天氣情況(沒有風向參數)。

公交路線查詢模塊:在主頁面實現一個跳轉的按鍵功能,跳轉到全國各地公交線路查詢頁面,在EditTex中輸入要查詢的城市和公交線路(如:上海市,763路),點擊“查詢”按鈕后便能在地圖上顯示公交車的行駛路線,包括每一個??空军c。

POI搜索:點擊主頁面提供的商家或景點類型,用戶也可自己輸入關鍵字進行搜索,便能獲得該類型周圍2km的所有商家,在ListView列表逐一顯示。若商家數量較多,利用線程加載逐一顯示;否則提示“未找到結果”字樣,并隱藏加載條。

路徑規劃:在POI搜出商家信息后可隨意點擊任意一商家,進入到商家詳情信息,顯示百度地圖本地定位范圍,并通過“顯示路線”按鈕在地圖上顯示起點和終點路線。

3 系統軟件實現

3.1 手勢密碼模塊實現

如圖6、圖7所示,出現在用戶第一次使用該軟件或者忘記密碼后輸入匹配值重新設置密碼時都會出現該頁面。在EditText輸入格式的屬性設置為:android:inputType="numberPassword",限制鍵盤彈出格式即為數字鍵盤,輸入的類型為數字加密型以提高安全性,此數值利用SharePreference保存到本地,作為找回密碼的依據,屬于必填項,建議用戶輸入記憶較深的數值,比如用戶的手機號碼等。記錄九宮格手勢的方式是利用數字記錄,9個

圓圈分別標號為0-9,如圖5繪制的手型,即為“03678”字符。創建密碼時九宮格手勢可以任意繪制,但點擊保存時,寫入系統的SharePreference數值是以最后一次繪制的手勢記錄并鎖住鍵盤,若想更改繪制的手勢點擊“取消”按鈕即可。以上操作繪制完成后點擊保存。

3.2 主頁及其它頁面功能

主頁采用側滑功能,相比于騰訊QQ主頁效果更具時尚感,主頁布局采用圖形方塊布局,形象生動,如圖8、圖9所示。

3.3 左側滑動頁面功能

二維碼電子名片模塊功能效果如圖10所示。

生成二維碼核心代碼:

public Bitmap qr_code(String string,BarcodeFormat format)

throws WriterException {

MultiFormatWriter writer=new MultiFormatWriter();

Hashtable hst=new Hashtable();

hst.put(EncodeHintType.CHARACTER_SET, "UTF-8");

BitMatrix matrix=writer.encode(string, format, 400, 400, hst);

int width=matrix.getWidth();

int height=matrix.getHeight();

int[] pixels=new int[width*height];

for (int y=0; y

for (int x=0; x

if (matrix.get(x, y)) {

pixels[y*width+x]=0xff000000;

}

}

}

Bitmap bitmap=Bitmap.createBitmap(width, height,Bitmap.Config.ARGB_8888);

//通過像素數組生成bitmap,具體參考api

bitmap.setPixels(pixels,0,width,0,0,width,height);

return bitmap;}

其中傳入的string值為String contents="BEGIN:VCARD\\nVERSION:3.0\\n"+"N:"+name+"\\nORG:"+company+"\\nTITLE:"+position+"\\nNOTE:"+note+"\\nTEL:"+phone+"\\nADR:"+add+"\\nURL:"+web1+"\\nEMAIL:"+email+"\\nEND:VCARD";都是用戶輸入的數據,當對方掃描時所有信息都會顯示在對方手機上,并且能夠導入通訊錄,方便快捷。

天氣預報查詢模塊實現效果如圖11所示。

天氣查詢模塊顯示今、明、后天3天的天氣實況。

公交車路線查詢功能實現效果如圖12所示。

本功能實現的核心代碼:

EditText editCity=(EditText) findViewById(R.id.city);

EditText editSearchKey=(EditText) findViewById(R.id.searchkey);

// 發起百度地圖poi搜索,并從百度地圖數據庫中獲得所有的公交線路類

// 類型的POI,再使用該poi唯一標識uid進行公交詳情搜索

mSearch.searchInCity((new PoiCitySearchOption()).city(

editCity.getText().toString()).keyword(editSearchKey.getText().toString()));

3.4 主體頁面功能

以點擊第一張小圖片(餐飲)為例,跳轉到商戶界面。

圖13是實現頁面跳轉后加載出來的商家信息,圖14是上拉加載后更多的商家信息。POI搜索功能模塊的關鍵代碼:

mPoiSearch.searchNearby(new PoiNearbySearchOption()

.location(new LatLng(lat, lng)).pageNum(10).keyword(keyWord).radius(2000).pageNum(num));

必須在類中實現OnGetPoiSearchResultListener的接口,還有定位獲得的經緯度數據。上述代碼中keyWord即為“餐飲美食”、“銀行”、“景點”等關鍵詞,可搜出用戶周圍2km以內的商家。

此外,在左側滑動效果“周圍商家”字樣中,可進一步根據用戶需求進行POI搜索,如圖15所示。

3.5 商家詳情功能模塊

要想進一步了解更多的商家信息,直接點擊圖16中的商家即可,點擊后顯示路線功能模塊。

實現此模塊功能前要先實現百度地圖SDK開發包中的一個重要接口,即OnGetRoutePlanResultListener()接口。

實現功能主要代碼:

PlanNode stNode=PlanNode.withLocation(new LatLng(sLat, sLng));

PlanNode enNode=PlanNode.withLocation(new LatLng(eLat, eLng));

mSearch.walkingSearch((new WalkingRoutePlanOption()).from(stNode).to(enNode));

4 結語

基于Android的無憂出行應用軟件系統,實現了二維碼名片、天氣查詢、公交車查詢以及附近商家及路線搜索功能。后續可根據用戶體驗意見,改正不足之處,拓展更多功能,更好地服務于大眾。

參考文獻:

[1] NUR ROKHMAN, LUBAB SAIFUDDIN. Location and time based reminder system on android mobile device[C]. Vienna, Austria,2016 2nd International Conference on Science in Information Technology(ICSITech). Piscataway, New Jersey:IEEE Press,2016:147-151.

[2] SHABTAI A, FLEDEL Y, ELOVICI Y. Securing Android-Powered mobile devices Using SELinux[J]. IEEE Security & Privacy,2010,8(3):36-44.

[3] SHAO G H. Application development research based on android platform[C]. International Conference on Intelligent Computation Technology and Automation. IEEE,2015:579-582.

[4] ADDANKI N. Android application for USDA (U.S. Department of Agriculture) structural design software[EB/OL]. http://www.doc88.com/p-0344526320714.html.

[5] ZAPATA B C. Android studio application development[EB/OL]. https://baike.so.com/doc/24014075-24591709.html.

[6] ROGERS R. Android application development[M]. O′Reilly, 2009.

[7] TAKALA T, KATARA M, HARTY J. Experiences of system-level model-based GUI testing of an android application[C]. IEEE International Conference on Software Testing, IEEE Computer Society, 2011:377-386.

[8] YAN D, YANG S, ROUNTEV A. Systematic testing for resource leaks in Android applications[C].IEEE, International Symposium on Software Reliability Engineering, IEEE, 2013:411-420.

[9] ENCK W, ONGTANG M, MCDANIEL P. Understanding android security[J]. IEEE Security & Privacy,2009,7(1):50-57.

[10] 唐誠.枚舉Android系統九宮格密碼[J].廈門城市職業學院學報,2013,15(2): 48-50.

[11] ISO/IEC 18004:2000(E)[S].Information technology-automatic identification and data capture techniques-Bar code symbology-QR,2000-6-15.

[12] 肖洪磊.濰坊二維碼門戶管理系統的設計與實現[D].濟南:山東大學,2012.

[13] 馬鳴,李海波.基于Android的二維碼的生成與識別系統的設計與實現[J].電腦知識與技術,2012,8(9X):6353-6356.

[14] Android地圖SDK[EB/OL]. http://developer.baidu.com/map/index.php?title=androidsdk.

[15] 常見手機定位方式淺談[EB/OL]. http://www.cnblogs.com/syfwhu/p/5084115.html.

[16] 郭宏志.Andorid應用開發詳解[M].北京:電子工業出版社,2010.

(責任編輯:杜能鋼)

主站蜘蛛池模板: 国产精品一区二区久久精品无码| 色噜噜狠狠狠综合曰曰曰| 国产精品深爱在线| 国产成人精品一区二区三在线观看| 超碰精品无码一区二区| 国产鲁鲁视频在线观看| 99久久亚洲精品影院| 国产精品精品视频| 人妻91无码色偷偷色噜噜噜| 国产资源免费观看| 成人午夜视频网站| www.91中文字幕| 免费看a级毛片| 国产成人福利在线| 国产亚洲欧美在线视频| 成人在线欧美| 男女猛烈无遮挡午夜视频| 日韩毛片免费视频| 久久精品这里只有精99品| 亚洲国产黄色| 国产综合精品一区二区| 国产成人精品一区二区三区| 亚洲日韩精品综合在线一区二区 | 中文字幕中文字字幕码一二区| 黄色网站不卡无码| 在线国产资源| 456亚洲人成高清在线| 国产精品无码翘臀在线看纯欲| 久久久精品国产SM调教网站| 久久香蕉欧美精品| 免费毛片视频| 国产性猛交XXXX免费看| 久久99久久无码毛片一区二区| 欧美国产日本高清不卡| hezyo加勒比一区二区三区| 狼友av永久网站免费观看| 黄色网页在线观看| 日本少妇又色又爽又高潮| 91免费观看视频| 毛片大全免费观看| 久久午夜夜伦鲁鲁片无码免费| 毛片在线看网站| 天天躁夜夜躁狠狠躁图片| 午夜毛片福利| 色婷婷在线影院| 日本人妻丰满熟妇区| 欧美啪啪精品| 国产香蕉97碰碰视频VA碰碰看 | 国产乱子伦无码精品小说| 国产原创演绎剧情有字幕的| 亚洲综合精品第一页| 久久青草热| 午夜国产精品视频| 中文字幕日韩丝袜一区| 超碰aⅴ人人做人人爽欧美| 久久人搡人人玩人妻精品| 先锋资源久久| 久久人午夜亚洲精品无码区| 丁香五月婷婷激情基地| www.91中文字幕| 一本久道久久综合多人| 亚洲视频影院| 亚洲成a∧人片在线观看无码| 成年女人18毛片毛片免费| 狼友av永久网站免费观看| 黄色在线网| 国产乱码精品一区二区三区中文 | 又爽又黄又无遮挡网站| 在线观看免费黄色网址| 性喷潮久久久久久久久| 国产SUV精品一区二区6| 久久久精品国产亚洲AV日韩| 久久国产精品麻豆系列| 日韩在线2020专区| 5388国产亚洲欧美在线观看| 国产第一页屁屁影院| 久久国产V一级毛多内射| 亚州AV秘 一区二区三区| 熟妇丰满人妻| 农村乱人伦一区二区| 精品国产电影久久九九| 国产男人的天堂|