亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2016-04-14 13:36:23龍軍楊鵬
        電腦知識(shí)與技術(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)用模式的建議,即能實(shí)現(xiàn)App應(yīng)用功能,還可融合原有系統(tǒng)的資源,有效地拓展的應(yīng)用平臺(tái)的適用范圍和功能。

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

        中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 移動(dòng)設(shè)備應(yīng)用的主要技術(shù)

        移動(dòng)設(shè)備的App應(yīng)用目前主要實(shí)現(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)成,由于移動(dòng)Web支持各種標(biāo)準(zhǔn)的協(xié)議,使用HTML5、CSS3、JavaScript技術(shù)可將各種移動(dòng)交互與桌面任務(wù)有效地連接起來,跨平臺(tái)優(yōu)勢顯著。APP應(yīng)用端只需安裝應(yīng)用的框架部份,數(shù)據(jù)則是運(yùn)行APP時(shí)通過云端服務(wù)將數(shù)據(jù)呈現(xiàn)給用戶。

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

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

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

        2.1 套接字

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

        采用TCP協(xié)議時(shí)要求App應(yīng)用一直在線且與服務(wù)器保持連接狀態(tài),消耗的資源較多,一般用在網(wǎng)絡(luò)游戲或適時(shí)在線的應(yīng)用開發(fā)中。采用UDP協(xié)議時(shí)由于數(shù)據(jù)不用確認(rèn),安全沒保證,常用在即時(shí)通訊應(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類是一個(gè)完善的HTTP客戶端,提供了對HTTP協(xié)議的全面支持,通過HttpPost和HttpGet使用HTTP的GET和POST進(jìn)行訪問服務(wù)器。針對多個(gè)請求要使用多線程,通過getHttpClient()方法為HttpClient配置一些基本參數(shù),再用ThreadSafeClientManaget來創(chuàng)建線程安全的HttpClient。

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

        在服務(wù)器端可建立動(dòng)態(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)方法返回?cái)?shù)據(jù)供客戶端使用。

        在服務(wù)器端也可建立用jsp、php、c++、C#等語言編寫的WebService,Web Service是一種基于可編程跨平臺(tái)的的web應(yīng)用程序,用于開發(fā)分布式、交互操作的應(yīng)用程序,可使用XML、XSD標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置應(yīng)用程序,使得運(yùn)行在不同機(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文件的編碼處理,否則對中文會(huì)出現(xiàn)亂碼。Java在網(wǎng)絡(luò)中傳遞使用的是ISO-8859-1編碼,下面是android中通過HttpURLConnection獲得jsp網(wǎng)頁返回?cái)?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ù)量大時(shí)易出錯(cuò),且要求保持在線連接狀態(tài)。

        使用JDBC時(shí)首先在工程的“Java Build Path”中加入相關(guān)數(shù)據(jù)庫的驅(qū)動(dòng)包,并在活動(dòng)中用import導(dǎo)入,再用Class.forName(驅(qū)動(dòng)類名)建立驅(qū)動(dòng),用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 支持力度和運(yùn)行速度都有所提高,在開發(fā)Web App時(shí),使用HTML5和CSS3技術(shù)做UI布局,要避免延用以往web開發(fā)中使用的HTML4和CSS2技術(shù),因?yàn)楹芏嘈Ч纭白赃m應(yīng)網(wǎng)頁設(shè)計(jì)”是無法實(shí)現(xiàn)的。自適應(yīng)網(wǎng)頁設(shè)計(jì)即應(yīng)用能自動(dòng)根據(jù)手機(jī)屏幕寬度、分辨率加載相應(yīng)的CSS文件、選擇不同的CSS規(guī)則,且布局、文本、圖片均能實(shí)現(xiàn)自動(dòng)縮放,實(shí)現(xiàn)頁面在不同設(shè)備上均能正常的顯示。

        3.1 WebKit引擎和WebView組件

        Webkit是一個(gè)開源瀏覽器引擎,幾乎所有的網(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ùn)動(dòng)感應(yīng)事件、通用感應(yīng)器 API、觸控交互事件、WebSocket API、Messaging API 等支持Web 應(yīng)用擴(kuò)展的API。其離線應(yīng)用使WebApp在無網(wǎng)絡(luò)連接的情況下,仍然可以完成數(shù)據(jù)存儲(chǔ)及交換業(yè)務(wù),通過Navigator的屬性值和Online/Offline事件兩種方式進(jìn)行在線檢測,用Cache Manifest確定WebApp離線時(shí)所需的資源,提供了Web Storage(用key_value對的形式)和Web SQL Database(見下示代碼)兩種本地?cái)?shù)據(jù)存儲(chǔ)。

        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實(shí)現(xiàn)交互,完成相互的功能處理和數(shù)據(jù)傳遞。首先在Android程序中建立接口,通過WebView的WebSettings.setJavaScriptEnabled(true)啟動(dòng)JavaScript。再在WebView中把一個(gè)實(shí)例添加到JavaScript的全局對象window中。

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

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

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

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

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

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

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

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

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

        參考文獻(xiàn):

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

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

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

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

        [5] 黃悅深. 基于HTML5的移動(dòng)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ò)資源在高中班級(jí)管理中的運(yùn)用
        談網(wǎng)絡(luò)資源在大學(xué)計(jì)算機(jī)教學(xué)中的應(yīng)用
        對等網(wǎng)絡(luò)資源搜索模型研究
        女人下面毛多水多视频| 亚洲av天堂在线免费观看| 亚洲中文字幕剧情类别| 丰满少妇人妻无码专区| 性饥渴艳妇性色生活片在线播放| 在线丝袜欧美日韩制服| 女同重口味一区二区在线| av大全亚洲一区二区三区| 亚洲午夜精品a片久久www慈禧| 欧美a视频在线观看| 国产av一区二区三区在线| 国产手机在线观看一区二区三区| 人妻少妇精品中文字幕av| 水蜜桃久久| 又爽又猛又大又湿的视频| 久久久精品视频网站在线观看| 人妻丰满熟妇av无码区不卡| 精品亚洲日韩国产一二三区亚洲| 国产熟女精品一区二区| 国产毛片av最新视频| 国产suv精品一区二区6| 久久成人永久免费播放| 精品久久中文字幕一区| 国产激情一区二区三区| 欧美 国产 日产 韩国 在线| 欧美成人a视频免费专区| 亚洲自拍偷拍一区二区三区 | 激情人妻另类人妻伦| 永久免费观看国产裸体美女| 成人午夜视频一区二区无码| 国产一区在线视频不卡| 曰韩无码无遮挡a级毛片| 97精品伊人久久大香线蕉app| 亚洲熟女国产熟女二区三区| 日韩亚洲无吗av一区二区| 久久久日韩精品一区二区三区 | 一二三四视频社区在线| 精品国产AⅤ一区二区三区V免费| 国产一级黄色片在线播放| 日本乱偷人妻中文字幕| 欧美日韩亚洲国产千人斩|