• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Android的網(wǎng)絡(luò)資源應(yīng)用探析

      2016-04-14 13:36:23龍軍楊鵬
      電腦知識與技術(shù) 2016年5期
      關(guān)鍵詞:網(wǎng)絡(luò)資源

      龍軍 楊鵬

      摘要:該文就APP開發(fā)中本地應(yīng)用、Web應(yīng)用和混合應(yīng)用三種模式進(jìn)行研究,針對本地應(yīng)用和Web應(yīng)用調(diào)用網(wǎng)絡(luò)資源的主要技術(shù)進(jìn)行分析比較,提出對一些已使用應(yīng)用系統(tǒng)、建有豐富網(wǎng)絡(luò)資源的單位采用混合應(yīng)用模式的建議,即能實現(xiàn)App應(yīng)用功能,還可融合原有系統(tǒng)的資源,有效地拓展的應(yīng)用平臺的適用范圍和功能。

      關(guān)鍵詞:網(wǎng)絡(luò)資源;Native App;Web App;Hybrid App

      中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)05-0191-03

      目前智能手機(jī)、平板電腦已經(jīng)大眾化,App應(yīng)用也快速發(fā)展起來,越來越多的企事業(yè)單位開始建立自己的App應(yīng)用,將原有的業(yè)務(wù)系統(tǒng)、辦公管理系統(tǒng)、信息系統(tǒng)等拓展到App應(yīng)用已成為發(fā)展趨勢,如何將不同系統(tǒng)融合到App應(yīng)用中也是急解決的問題。

      1 移動設(shè)備應(yīng)用的主要技術(shù)

      移動設(shè)備的App應(yīng)用目前主要實現(xiàn)方式有本地應(yīng)用(Native App)、Web應(yīng)用(Web App)和混合應(yīng)用(Hybrid App)三種模式。

      Native App即原生應(yīng)用,是根據(jù)特定操作系統(tǒng)而采用相應(yīng)的語言、框架和開發(fā)套件進(jìn)行開發(fā),充分利用設(shè)備特性,性能優(yōu)越。通常由“云服務(wù)器數(shù)據(jù)+APP應(yīng)用端”構(gòu)成,APP應(yīng)用所有的UI元素、數(shù)據(jù)內(nèi)容、邏輯框架均安裝在手機(jī)終端上,利用設(shè)備資源完成優(yōu)質(zhì)的交互操作。

      Web App是一種框架型開發(fā)模式,通常由“HTML5云網(wǎng)站+APP應(yīng)用端”構(gòu)成,由于移動Web支持各種標(biāo)準(zhǔn)的協(xié)議,使用HTML5、CSS3、JavaScript技術(shù)可將各種移動交互與桌面任務(wù)有效地連接起來,跨平臺優(yōu)勢顯著。APP應(yīng)用端只需安裝應(yīng)用的框架部份,數(shù)據(jù)則是運行APP時通過云端服務(wù)將數(shù)據(jù)呈現(xiàn)給用戶。

      Hybrid App 是整合上述兩種模式優(yōu)勢的混合模式應(yīng)用,同時使用網(wǎng)頁語言與程序語言編寫,包含Native視圖和Web視圖兩種方式,分為多View混合型、單View混合型、Web主體型三種類型。多View混合型的基本信息用Native View, 復(fù)雜的數(shù)據(jù)體現(xiàn)直接用Web View,即Native App為主Web技術(shù)為輔。單View混合型同時包括Native View和Web View,且視圖間相互覆蓋,常用于Native View中部分?jǐn)?shù)據(jù)接口不方便實現(xiàn)的頁面。Web主體型是在Native外殼內(nèi)嵌入純Html網(wǎng)頁,與用手機(jī)瀏覽器操作接近,使用較少。

      2 Native App網(wǎng)絡(luò)資源應(yīng)用的主要技術(shù)

      Android平臺上Native應(yīng)用可采用套接字、HttpClient、JDBC等技術(shù)使用網(wǎng)絡(luò)資源、數(shù)據(jù)庫。

      2.1 套接字

      標(biāo)準(zhǔn)Java接口通過Java.net包中提供的ServerSocket和Socket兩個類構(gòu)建套接字,依據(jù)TCP/IP協(xié)議的傳輸層協(xié)議分為面向連接(TCP)和無連接(UDP)兩類。ServerSocket類用于面向連接應(yīng)用中服務(wù)器端構(gòu)造的等待連接套接字,在創(chuàng)建套接字時設(shè)置端口號參數(shù)同步綁定到指定端口,可設(shè)置客戶連接請求隊列長度、確定服務(wù)器能同時監(jiān)聽的客戶數(shù)等。Socket用于客戶端套接字或服務(wù)器端響應(yīng)連接請求時創(chuàng)建的套接字。

      采用TCP協(xié)議時要求App應(yīng)用一直在線且與服務(wù)器保持連接狀態(tài),消耗的資源較多,一般用在網(wǎng)絡(luò)游戲或適時在線的應(yīng)用開發(fā)中。采用UDP協(xié)議時由于數(shù)據(jù)不用確認(rèn),安全沒保證,常用在即時通訊應(yīng)用中。面向連接的App應(yīng)用端一般流程為用Socket連接服務(wù)器并創(chuàng)建套接字,基于該套接字創(chuàng)建用于接收數(shù)據(jù)的輸入流和用于發(fā)送數(shù)據(jù)的輸出流,并進(jìn)行數(shù)據(jù)的讀寫操作。

      Socket s=new Socket(“服務(wù)器端的IP地址”,端口);//創(chuàng)建客戶端套接字

      DataInputStream dis=new DataInputStream(new DataInputStream(s.getInputStream()));

      DataOutputStream dos=new DataOutputStream(s.getOutputStream()); //創(chuàng)建數(shù)據(jù)輸入、輸出流

      dis.readUTF();//讀數(shù)據(jù)

      dos.writeUTF(“要寫的的內(nèi)容”);//寫數(shù)據(jù)

      dos.flush();

      2.2 HttpClient或HttpURLConnection及Web Service的使用

      Android網(wǎng)絡(luò)應(yīng)用中使用最多的是Apache接口,核心的HttpClient類是一個完善的HTTP客戶端,提供了對HTTP協(xié)議的全面支持,通過HttpPost和HttpGet使用HTTP的GET和POST進(jìn)行訪問服務(wù)器。針對多個請求要使用多線程,通過getHttpClient()方法為HttpClient配置一些基本參數(shù),再用ThreadSafeClientManaget來創(chuàng)建線程安全的HttpClient。

      而HttpURLConnection是URLConnection的子類,在其基礎(chǔ)上增加了一些用于操作HTTP資源的方法。一般來說,簡單的應(yīng)用可用HttpURLConnection,復(fù)雜的用HttpClient。

      在服務(wù)器端可建立動態(tài)網(wǎng)站,再根據(jù)提交的參數(shù)返回XML、JSON格式數(shù)據(jù)或簡單字符串,如jsp文件中用request.getParameter(String)方法獲得App提交的參數(shù),進(jìn)行相應(yīng)數(shù)據(jù)處理后,用out.println(String)方法返回數(shù)據(jù)供客戶端使用。

      在服務(wù)器端也可建立用jsp、php、c++、C#等語言編寫的WebService,Web Service是一種基于可編程跨平臺的的web應(yīng)用程序,用于開發(fā)分布式、交互操作的應(yīng)用程序,可使用XML、XSD標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置應(yīng)用程序,使得運行在不同機(jī)器上的應(yīng)用可相互交換數(shù)據(jù)或集成。Web Service 的調(diào)用有HttpGet、HttpPost、HttpSoap三種方式。

      App應(yīng)用先創(chuàng)建HttpClient對象,再用要訪問的Web文件網(wǎng)址創(chuàng)建HttpPost對象,在進(jìn)行相應(yīng)的傳遞參數(shù)處理后,提交給服務(wù)器的網(wǎng)頁,并獲得返回的數(shù)據(jù)。這一過程中要注意Web文件和App文件的編碼處理,否則對中文會出現(xiàn)亂碼。Java在網(wǎng)絡(luò)中傳遞使用的是ISO-8859-1編碼,下面是android中通過HttpURLConnection獲得jsp網(wǎng)頁返回數(shù)據(jù)的核心代碼。

      String urlstr=new String("要訪問的網(wǎng)址".getBytes("utf-8"),"ISO-8859-1");//將網(wǎng)址轉(zhuǎn)碼

      URL url=new URL(urlstr);

      HttpURLConnection urlCon=(HttpURLConnection)url.openConnection();//打開網(wǎng)址

      nputStreamReader in=new InputStreamReader(urlCon.getInputStream());

      BufferedReader buf=new BufferedReader(in);

      while((line=buf.readLine())!=null) str+=line;//讀取Web返回的數(shù)據(jù)

      str=new String(str.getBytes("ISO-8859-1"),"utf-8");//將數(shù)據(jù)轉(zhuǎn)碼

      針對asp.net等使用utf-8編碼的Web應(yīng)用,可參照下面通過HttpClient獲得其返回的數(shù)據(jù)。

      String urlstr=new String("要訪問的網(wǎng)址".getBytes("utf-8"),"ISO-8859-1");//將網(wǎng)址轉(zhuǎn)碼

      HttpClient hc=new DefaultHttpClient();

      HttpGet get=new HttpGet(urlstr);//此處用get方式訪問網(wǎng)址

      HttpResponse hr=hc.execute(get);//獲得返回的數(shù)據(jù)

      HttpEntity he=hr.getEntity();

      str=EntityUtils.toString(he,"utf-8");//將數(shù)據(jù)轉(zhuǎn)碼

      2.3 JDBC

      JDBC是由一組用Java語言編寫的類和接口組成,為java層直接操作關(guān)系型數(shù)據(jù)庫提供了標(biāo)準(zhǔn)的API。用Android設(shè)備連接遠(yuǎn)程服務(wù)器上諸如MySQL、MS SQL server或Oracle等數(shù)據(jù)庫,建議用webservice在服務(wù)器端將數(shù)據(jù)庫中的數(shù)據(jù)用json或xml進(jìn)行封裝后發(fā)送給Android,當(dāng)然也可以用JDBC直接連接數(shù)據(jù)庫,就類似于原有的C/S架構(gòu)的應(yīng)用,安全性不高,數(shù)據(jù)量大時易出錯,且要求保持在線連接狀態(tài)。

      使用JDBC時首先在工程的“Java Build Path”中加入相關(guān)數(shù)據(jù)庫的驅(qū)動包,并在活動中用import導(dǎo)入,再用Class.forName(驅(qū)動類名)建立驅(qū)動,用DriverManager.getConnection(路徑,用戶名, 密碼)建立連接(Connection),最后進(jìn)行相關(guān)操作。

      3 Web App網(wǎng)絡(luò)資源應(yīng)用的主要技術(shù)

      隨著HTML5的發(fā)展及云服務(wù)普及,采用HTML5進(jìn)行Web App開發(fā)成為一種趨勢,由于目前高端智能手機(jī)的內(nèi)置瀏覽器都是基于Webkit內(nèi)核,WebKit對JavaScript 支持力度和運行速度都有所提高,在開發(fā)Web App時,使用HTML5和CSS3技術(shù)做UI布局,要避免延用以往web開發(fā)中使用的HTML4和CSS2技術(shù),因為很多效果如“自適應(yīng)網(wǎng)頁設(shè)計”是無法實現(xiàn)的。自適應(yīng)網(wǎng)頁設(shè)計即應(yīng)用能自動根據(jù)手機(jī)屏幕寬度、分辨率加載相應(yīng)的CSS文件、選擇不同的CSS規(guī)則,且布局、文本、圖片均能實現(xiàn)自動縮放,實現(xiàn)頁面在不同設(shè)備上均能正常的顯示。

      3.1 WebKit引擎和WebView組件

      Webkit是一個開源瀏覽器引擎,幾乎所有的網(wǎng)站和手機(jī)都支持,Android提供的WebView組件就是基于WebKit來加載顯示網(wǎng)頁的,使用便捷,非常適合將一些定制的網(wǎng)站或觸摸屏版網(wǎng)站應(yīng)用集成到App應(yīng)用中。

      WebView通過WebSettings類進(jìn)行屬性、狀態(tài)等的設(shè)置,WebViewClient類用于輔助WebView進(jìn)行處理各種通知、請求等事件,WebChormeClient類用來幫助WebView處理JavaScript的對話框、網(wǎng)站圖標(biāo)、加載進(jìn)度等。

      3.2 HTML5與CSS3

      HTML5提供了諸如地理位置感知 API、運動感應(yīng)事件、通用感應(yīng)器 API、觸控交互事件、WebSocket API、Messaging API 等支持Web 應(yīng)用擴(kuò)展的API。其離線應(yīng)用使WebApp在無網(wǎng)絡(luò)連接的情況下,仍然可以完成數(shù)據(jù)存儲及交換業(yè)務(wù),通過Navigator的屬性值和Online/Offline事件兩種方式進(jìn)行在線檢測,用Cache Manifest確定WebApp離線時所需的資源,提供了Web Storage(用key_value對的形式)和Web SQL Database(見下示代碼)兩種本地數(shù)據(jù)存儲。

      webSettings.setDatabaseEnabled(true);

      webSettings.setDatabasePath(this.getApplicationContext().getDir(數(shù)據(jù)庫, Context.MODE_PRIVATE).getPath());

      webSettings.setDomStorageEnabled(true);

      通過Device Description Repository API這一統(tǒng)一的服務(wù)器API和基于CSS的兩種設(shè)備適配技術(shù),達(dá)到兼容不同設(shè)備,用合適的頁面布局體現(xiàn)內(nèi)容。

      3. 3 Android與JavaScript的交互

      手機(jī)的Android應(yīng)用可通過Web頁面的JavaScript實現(xiàn)交互,完成相互的功能處理和數(shù)據(jù)傳遞。首先在Android程序中建立接口,通過WebView的WebSettings.setJavaScriptEnabled(true)啟動JavaScript。再在WebView中把一個實例添加到JavaScript的全局對象window中。

      WebView.addJavascriptInterface(new JavaScriptInterface(),實例名);

      并在JavaScriptInterface()類中定義方法public void runOnAndroidJavaScript(final String str){方法體}。最后在Web頁面的JavaScript中通過windows.實例名.runOnAndroidJavaScript(str)調(diào)用Android的函數(shù)。

      4 Native應(yīng)用與Web應(yīng)用比較

      1)Native App應(yīng)用與Web App應(yīng)用的特點

      Native App應(yīng)用可調(diào)用UI控件及UI方法,可直接使用諸如攝像頭、GPS、藍(lán)牙、傳感器等硬件設(shè)備,調(diào)用語音、短信、視頻、通信錄等資源。安裝包中有UI、框架及數(shù)據(jù),較大,升級也需根據(jù)版本下載更新,當(dāng)用戶無法上網(wǎng)時可訪問應(yīng)用中以前下載的數(shù)據(jù)。

      Web App應(yīng)用打開應(yīng)用均要通過APP框架向云網(wǎng)站索取UI及實時的最新云端數(shù)據(jù),訪問速度受手機(jī)終端上網(wǎng)的限制,每次使用均會消耗上網(wǎng)流量;安裝包只包含框架文件,數(shù)據(jù)內(nèi)容則放在云端,無須頻繁升級APP應(yīng)用,與云端實現(xiàn)的是實時數(shù)據(jù)交互。

      2)Native App應(yīng)用常用在游戲、電子雜志、管理應(yīng)用、物聯(lián)網(wǎng)等無需經(jīng)常更新程序框架的APP應(yīng)用開發(fā)中。由于游戲要使用許多設(shè)備API或平臺API,占用較多的資源,用戶對應(yīng)用的視覺和操作效果要求高,常采用Native App開發(fā)。使用攝像頭時,Native App開發(fā)可簡化拍攝的過程,先在手機(jī)上對照片做預(yù)處理,當(dāng)需要時再通過HTTP將照片上傳給服務(wù)器。要使用傳感器,如屏幕的旋轉(zhuǎn)、檢測移動、溫度、壓力等。訪問手機(jī)的文件系統(tǒng),啟用或保存本地數(shù)據(jù),如通訊錄、音頻、視頻、圖片、文件等。

      3)Web App應(yīng)用常用在電子商務(wù)、金融、新聞資訊、企業(yè)集團(tuán)需經(jīng)常更新內(nèi)容的APP應(yīng)用開發(fā)中。目前Web App提供了豐富的功能接口,使其擁有Native App一樣功能,還能跨平臺使用,但要考慮到適配不同平臺的網(wǎng)頁應(yīng)用設(shè)計,平衡平臺間軟硬件差異帶來的交互特性和系統(tǒng)習(xí)慣的差別,及不同設(shè)備的分辨率。

      最后,由于Hybrid App有Native APP調(diào)用終端設(shè)備、交互體驗及Web App跨平臺的優(yōu)勢,開發(fā)成本低、周期短,逐漸成為APP開發(fā)的主要模式,尤其針對諸如政府、高校、圖書館等已經(jīng)建設(shè)有較為豐富網(wǎng)絡(luò)資源的單位來說,采用這種模式可以用較小的成本進(jìn)行資源的拓展利用,并將一些共享資源做成公共的通用接口,供其他應(yīng)用使用、共享,提高資源的利用率。

      參考文獻(xiàn):

      [1] 姜文波, 龍軍. Android平臺的套接字應(yīng)用淺析[J].科技信息,2014(9).

      [2] 龍軍. 基于Java語言的流式套接字編程探析[J].電腦知識與技術(shù),2013,9(10).

      [3] 顧春來. APP應(yīng)用程序開發(fā)模式探究[J].硅谷,2014,5(149).

      [4] 周其飛. 基于Android平臺的Hybrid App開發(fā)[J].電腦編程技巧與維護(hù),2014,15(9).

      [5] 黃悅深. 基于HTML5的移動Web App開發(fā)[J].圖書館雜志,2014(7).

      猜你喜歡
      網(wǎng)絡(luò)資源
      網(wǎng)絡(luò)資源在阿拉伯語教學(xué)中的應(yīng)用及成效分析
      基于預(yù)測的虛擬網(wǎng)絡(luò)資源分配方法
      電子測試(2018年15期)2018-09-26 06:01:36
      網(wǎng)絡(luò)資源在高中班級管理中的運用
      談網(wǎng)絡(luò)資源在大學(xué)計算機(jī)教學(xué)中的應(yīng)用
      對等網(wǎng)絡(luò)資源搜索模型研究
      昌邑市| 大丰市| 南陵县| 通榆县| 孝感市| 宁陕县| 雷山县| 林西县| 新疆| 栖霞市| 嘉定区| 新疆| 伽师县| 阿合奇县| 永德县| 禹州市| 阿克陶县| 蒲城县| 徐汇区| 冕宁县| 琼结县| 济阳县| 曲靖市| 敦化市| 子长县| 平塘县| 萍乡市| 宁阳县| 美姑县| 晋江市| 茶陵县| 老河口市| 泰安市| 高清| 启东市| 桦甸市| 浦东新区| 长丰县| 水城县| 海淀区| 光山县|