當前位置:首頁 » 安卓系統 » androidweb開發

androidweb開發

發布時間: 2022-12-06 06:30:18

A. android 開發 與 javaweb開發 區別

首先這個問題是個范圍問題。
android開發是java開發的一個分支。你說的java類庫是指標准類庫吧。android種的類庫有一部分和java類庫基本一致,也就是類名一致。比如String,Integer這些,但是具體的實現都是改過的(還好改過的,不然和甲骨文打官司就慘了)。不過java種的swing這些類庫在android種就沒有了,也就是說android種只用了java種的常用的類庫。你對java開發了解的話那麼android很快就可以上手,只是熟悉api的一個過程而已。而且android開發比你用java開發web要簡單容易很多,因為你不必了解太多的東西,只需要了解android方面就可以了,而不像做web你除了java還需要html,css,javascript,sql,甚至ssh框架,太繁瑣了。說了這么多也就是說明android其實比一般的java開發還容易。區別不大,而且更簡單。
現在分別理解一下什麼是安卓開發和Java開發。
Android 平台是 Open Handset Alliance 的成果,Open Handset Alliance 組織由一群共同致力於構建更好的移動android開發。
android開發電話的公司組成。這個組織由 Google 領導,包括移動運營商、手持設備製造商、零部件製造商、軟體解決方案和平台提供商以及市場營銷公司。從軟體開發的觀點看,Android 正處在開源領域的中心位置。
市場上第一款支持 Android 的手機是由 HTC 製造並由 T-Mobile 供應的 G1。這款設備從設想到推出花了大約一年的時間,惟一可用的軟體開發工具是一些實行增量改進的 SDK 發行版。隨著 G1 發行日的臨近,Android 團隊發布了 SDK V1.0,用於這個新平台的應用程序也浮出水面。
為了鼓勵創新,Google 舉辦了兩屆 「Android Developer Challenges」,為優勝的參賽作品提供數百萬美金的獎勵。G1 問世幾個月之後,隨後就發布了 Android Market,它使用戶可以瀏覽應用程序,並且可以將應用程序直接下載到他們的手機上。經過大約 18 個月,一個新的移動平台進入公眾領域。
2003年10月,Andy Rubin等人創建Android公司,並組建Android團隊。
2005年8月17日,Google低調收購了成立僅22個月的高科技企業Android及其團隊。安迪魯賓成為Google公司工程部副總裁,繼續負責Android項目。
2007年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統,並且在這天谷歌宣布建立一個全球性的聯盟組織,該組織由34家手機製造商、軟體開發商、電信運營商以及晶元製造商共同組成,並與84家硬體製造商、軟體開發商及電信營運商組成開放手持設備聯盟(Open Handset Alliance)來共同研發改良Android系統,這一聯盟將支持谷歌發布的手機操作系統以及應用軟體,Google以Apache免費開源許可證的授權方式,發布了Android的源代碼。
2008年,在GoogleI/O大會上,谷歌提出了Android HAL架構圖,在同年8月18號,Android獲得了美國聯邦通信委員會(FCC)的批准,在2008年9月,谷歌正式發布了Android 1.0系統,這也是Android系統最早的版本。
2009年4月,谷歌正式推出了Android 1.5這款手機,從Android 1.5版本開始,谷歌開始將Android的版本以甜品的名字命名,Android 1.5命名為Cupcake(紙杯蛋糕)。該系統與Android 1.0相比有了很大的改進。
2009年9月份,谷歌發布了Android 1.6的正式版,並且推出了搭載Android 1.6正式版的手機HTC Hero(G3),憑借著出色的外觀設計以及全新的Android 1.6操作系統,HTC Hero(G3)成為當時全球最受歡迎的手機。Android 1.6也有一個有趣的甜品名稱,它被稱為Donut(甜甜圈)。
2010年2月份,Linux內核開發者Greg Kroah-Hartman將Android的驅動程序從Linux內核「狀態樹」(「staging tree」)上除去,從此,Android與Linux開發主流將分道揚鑣。在同年5月份,谷歌正式發布了Android 2.2操作系統。谷歌將Android 2.2操作系統命名為Froyo,翻譯完名為凍酸奶。
2010年10月份,谷歌宣布Android系統達到了第一個里程碑,即電子市場上獲得官方數字認證的Android應用數量已經達到了10萬個,Android系統的應用增長非常迅速。在2010年12月,谷歌正式發布了Android 2.3操作系統Gingerbread (姜餅)。
2011年1月,谷歌稱每日的Android設備新用戶數量達到了30萬部,到2011年7月,這個數字增長到55萬部,而Android系統設備的用戶總數達到了1.35億,Android系統已經成為智能手機領域佔有量最高的系統。
2011年8月2日,Android手機已佔據全球智能機市場48%的份額,並在亞太地區市場占據統治地位,終結了Symbian(塞班系統)的霸主地位,躍居全球第一。
2011年9月份,Android系統的應用數目已經達到了48萬,而在智能手機市場,Android系統的佔有率已經達到了43%。繼續在排在移動操作系統首位。在9月19號,谷歌將會發布全新的Android 4.0操作系統,這款系統被谷歌命名為Ice Cream Sandwich(冰激凌三明治)。
2012年1月6日,谷歌Android Market已有10萬開發者推出超過40萬活躍的應用,大多數的應用程序為免費。Android Market應用程序商店目錄在新年首周周末突破40萬基準,距離突破30萬應用僅4個月。在2011年早些時候,Android Market從20萬增加到30萬應用也花了四個月。
第二:關於javaweb的開發:
詹姆斯·戈士林博士以"Java技術之父"聞名於世。
他是Java技術的創始人, 作為Sun研究院院士,他親手設計了Java語言,完成了Java技術的原始編譯器和虛擬機。在他的帶領下,Java現已成為互聯網的標准編程模式以及分布式企業級應用的事實標准,其跨平台的技術優勢為網路計算帶來了劃時代的變革。戈士林博士積極致力於軟體開發工具的研究,以使軟體開發工具的功能更強大,更容易為開發人員所使用,確保應用、服務開發的迅速完成。
Java技術是Sun公司在1995年5月正式推出的。八年多來,Java已從編程語言發展成為全球第一大通用開發平台。Java技術已為計算機行業主要公司所採納,同時也被越來越多的國際技術標准化組織所接受。1999年,Sun推出了以Java 2平台為核心的J2EE、J2SE和J2ME三大平台。隨著三大平台的迅速推進,在世界上形成了一股巨大的Java應用浪潮。同時,Java技術還引發了一場無法停止的大變革,為整個Java社團帶來了巨大的潮水般的商業機會。
Java技術及其應用將有更大的發展。據IDC預計,自2001年起的其後5年內,採用Java的IT產品的價值將翻番,在2006年將達到4.53億美元,年增長率為14.9%。截止到2003年5月,注冊Java Developer Connection (JDC)的Java開發商超過300萬人,對JRE(Java運行環境)的下載達7,200萬次。Sun在JavaOne 2003大會上確定的目標是,在3~5年內使Java技術開發商從今天的300萬發展到1,000萬,以支持Java技術這一全球領先技術平台的顯赫地位。

B. 關於Android WebView的那些事

[TOC]

Webkit是一個開源瀏覽器項目,其中,對Android開發者來說,或多或少的都有些接觸。 在應用層來看,最經常使用無非這么幾個類:WebView(Android中最為復雜,也是最為簡單的一個View,繼承自AbsoluteLayout),WebViewClient、WebChromeClient(作為回調控制類)、WebSettings(進行設置項的配置)等;Webkit內部包含了網路請求、頁面渲染、Js引擎等等。在Android4.4之前的版本中,系統使用的是Webkit內核,其後,切換到Google的Chromium內核。本文主要介紹的是在Android中,如何使用Webkit進行H5頁面的展現,以及常見問題的分析手段。

下面的內容抄自網路 & 亂七八糟的地方,簡單了解一下。

<b><i>前面都是吹牛逼的信息,如何使用Webkit來更好的搬磚? 且聽如下分解</i></b>

XML布局中丟一個 <WebView> 標簽,然後再 Activity 或者 Fragment 中 findViewById ,進而 loadUrl ,一般也沒人這么簡單的用,除非寫Demo。很簡單,它就是一個Layout,提供了一個調用載入頁面的介面,不寫範例了,能看到這篇文章的都看過Google的API說明。

主要涉及到WebView和WebSettings兩個類。

例如:

其實就是WebView的父類ViewGroup和View的方法,不多說了。不過需要注意的是,不是所有的View或ViewGroup的方法對WebView都生效。

列舉幾類常用的,幾乎所有App的 WebView 都會設置的屬性:

</br>

如何處理頁面跳轉以及特殊 Scheme

這個回調可以說是最容易出問題的一個回調,表示什麼? 字面意思,讓你重寫這個URL 的loading,比如點擊html打電話的一個 <a href=「tel:110」> 標簽,作為一個有節操、有責任心的瀏覽器,你需要處理 H5常用的幾個Scheme :

除此之外,還有各個應用自定義的scheme ,舉個例子,支付寶的支付Scheme : alipay: 。 這里的返回值,就代表你有沒有能力處理這個url,沒有的話Webkit就默認處理了。
需要注意的是,這個回調的觸發的絕大多數情況是點擊頁面的 <a href="xxxx"> a標簽,在Android中 loadUrl("http://www..com") ,是不會回調的,為什麼不會回調,各位自行理解吧。

超鏈接 <a> 標簽怎麼寫: 點我
特別說下窗口常見的兩種打開方式:

針對單頁模式的WebView框架(所有的html窗口均使用同一個WebView實例),不需要關注target的。
如果作為一個成熟的瀏覽器框架的話,是需要支持Html、JavaScript使用新窗口打開頁面,需要實現如下回調:

還有一個相關設置項: WebSettings.
此時,系統將不會再回調 shouldOverrideUrlLoading 。新窗口邏輯的具體實現機制,可以參考系統browser實現邏輯。

<b> 這里有個坑 </b>
Android 4.4版本 ,如果實現了onCreateWindow,也就是說頁面 <a> 標簽是這么寫的: <a href="http://www..com" target="_blank"> ,點擊此鏈接打開的新WebView窗口,此窗口中的url點擊,是不會觸發 shouldOverrideUrlLoading 。 這是剛替換成Chrominum內核出的一個bug。本人並沒在新版本上驗證是否已經修復。

另外,根據不同的Rom,底層實現是不一樣的,有的ROM會幫你處理各種調起scheme,也就是startActivity,有的ROM點一個url,就會拋一個intent出來,讓用戶選擇系統瀏覽器進行載入。

系統默認,提供了一個介面:

有什麼安全隱患呢?
戳這里

如果不知道Js怎麼寫, 請戳我

用PC的截圖意思一下,看出區別了吧。 這里確定、取消點擊以後就得調用 JsResult、JsPromptResult 的 confirm或者cancel。

因為安全問題,大一些的App Native與Js通信都不再用 WebView.addJavascriptInterface(Object) 了,都改用JsPrompt,因為JsPrompt中有message、有JsPromptResult可以返回給Js一些信息,所以橋選中了JsPrompt,另一個備選方案是JsConsole。

大體有這么幾種方式進行傳遞

具體方案實現時,多方面考慮使用何種方式。

還有一個比較牛逼的

系統源碼中均有方法注釋,怎麼用自己看吧。
那麼問題來了

查了下,只有這兩個相關的:
WebBackForwardList BackForwardList()
void clearHistory()
系統提供的關於歷史記錄的操作並不多,因為,不支持單條刪除啊,啊啊啊!
WebViewClient中,還有一個相關callback,當系統更新歷史記錄時回調:
void doUpdateVisitedHistory(WebView view, String url, boolean isReload)

<b>相關問題分析法:歷史棧回退錯誤的定位</b>

絕大多數回退錯誤是由於介面調用、回調中邏輯執行時序錯誤。
定位方法:利用 BackForwardList , doUpdateVisitedHistory 兩個介面在 loadUrl、onPageStart、onPageFinish 以及邏輯相關的地方調用,打log,查看歷史棧,這里注意下由於loarl是非同步的,需要考慮是否加延遲等等保證調用時機的准確。
本人曾經遇到一個問題:在WebChromeClient中的 JsPrompt回調中,直接進行WebView.goBack操作,結果發現WebView確實回退到上一個頁面,但是BackFowardList當前頁面的index未更新的問題,具體見另一個篇blog。

網上有很多關於WebView內存泄露的討論,據傳,老版本的WebView在展示大量圖片的時候,即使 WebView.destory() WebView=null ,也不會銷毀。
在新版本上,實際測試結果:compileSDKVersion 23 不會泄露。
一般,我們如何銷毀WebView比較保險?

這個問題好大。。。
暫時不介紹,另起blog進行說明。

解決方案:
實現回調 void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)

首先,提幾個需要注意的點:

個人歸納總結幾點:

step1 進入開發者模式,勾選「顯示布局邊界」;
step 2,回到你想查看的界面; step 3 假如內容區只有一層基本就是H5 WebView的,多個層級,就是Native。

看到左右圖的差異了吧。
還有另一種方法,RD屌絲們看這里,特別說明,這種方法不太適合瀏覽器。 (自有內核,可能會不準確)

好了,就介紹到這里,零零散散的幾年前寫的文章,第一篇blog,如有不對的地方,還懇請大家指正。

C. 請問安卓開發和web開發哪個是趨勢

如果你己經有了Java SE基礎,那繼續學Android是推薦的,這條學習路線過渡非常自然,Android工作機會不能說很多,但總還是有的。掌握Android之後,可以向兩條線擴展自己的職業技能,一條是進一步學習Java Web後端開發(推薦),這個工作崗位不少並且人才需求相當穩定持續,另一條是橫向遷移到Web前端,能掌握Android開發技術的人,再學JS和那些前端框架花不了多少時間,兩者並不沖突而是相互促進的,並且你會在求職時比那些只會Web前端的人有一定的優勢。

如果你是零基礎起步,那還是從前端入手吧,學習曲線比較平滑,Web前端工作機會不少,但現在入這個領域的人越來越多,競爭激烈。

建議最後還是要向成為Web全棧工程師方向努力,就業機會和職業發展機遇才多。

D. 搞Android開發需要熟練掌握Web開發么

Android 開發主要分為兩類:

native APP開發,web APP開發。native APP開發主要調用的都是安卓自帶的api進行開發,一般不需要掌握web知識,如果你們項目里需要用到mysql資料庫存儲數據,需要配合服務端開發的,就要懂些web開發才行,正常都是會調用Android API就可以了。

web APP開發,需要掌握web知識。現在很多應用都是用html5+Android開發出來的,混合式的APP開發,以安卓框架作為外殼,裡面具體的實現用的都是html5,PhoneGap也是一個類似的項目,這個開源項目用於幫助開發者在iPhone、Android以及BlackBerry設備上開發Native Apps,並且能夠模擬設備上的功能(如定位功能和文件系統)供Web Apps調用。這些代碼可以在各個設備的應用商店中發布並且出售,但是他們使用的通用代碼和設計是可以共享的。由於開發的是一個Web App,開發者可以為低端的移動瀏覽器開發一個簡化版的應用。只用開發一次,就可以部署在多個平台上了。

一般我們開發APP都是開發的Android原生的,那就不需要掌握多少web知識了,但是如果你是做混合開發的,web知識是必備的。最後,一般大公司都會分模塊的,個人負責不同模塊,小公司就有可能要包攬全部。

E. Android開發之WebView(一)配置&小技巧

背景:原生時間緊沒時間開發任務量大的任務,而前端又閑著打醬油

方案:原生+webview混合開發

缺點:對於比較復雜的頁面,webview在性能上力不從心;且與原生通信頻繁也增加了隱藏的工作量

優點:能自帶支持動態更新(js),能充分利用人力

webview是一個基於webkit引擎,展示web頁面的控制項。Android上的webview在低版本和高版本採用了不同的webkit版本內核,Android4.4(19)後直接使用了Chrome內核;WebView控制項功能強大,除了具有一般View的屬性和設置外,還可以對url請求,頁面載入,渲染,頁面交互進行強大的處理。一般來說webview可單獨使用,也可聯合其工具類一起使用

移動應用的主體是webview,主要以網頁語言編寫,穿插Native功能的Hybrid App開發類型。激活webview為活躍狀態,能正常執行網頁的響應;當webview 的頁面被失去焦點切換到後台不可見狀態onPause時,需要通知自己暫停所有的動作,比如DOM的解析,plugin的執行,JavaScript的執行等

1,顯示和渲染web頁面

2,直接使用本地assets或者網路上的html文件作為布局

3,可和JavaScript進行互相調用

1,直接在布局文件里寫死

2,動態添加進viewgroup中

註:不管以哪種方式,都必須注意webview的銷毀,否則可能會造成內存泄漏最終導致內存溢出crash

下面是WebView的一些常用的方法列舉,一些已經過時的方法未列出

下面是WebSettings的一些常用的方法列舉,一些已經過時的方法就沒有寫出來了

一般不管是動態生成還是xml寫死,只要處理好了引用持有問題,就能有效的避免內存泄漏;下面是我嘗試的方案,在工具類WebViewUtils.java里封裝好,在activity銷毀的時候調用

1,清除webview緩存和記錄

2,可以設置不啟用緩存

3,H5的一些控制項標簽不支持導致的白屏

4,xml啟用軟體加速

5,通過menifest的來配置,在目標webview的activity設置

解決方案:

解決方案:

解決方案:

上一篇: Flutter入門-01-工程創建&目錄介紹

F. 安卓開發和web前端哪個好

android開發是指android平台上應用的製作,Android早期由"Android之父"之稱的Andy Rubin創辦,Google於2005年並購了成立僅22個月的高科技企業Android,展開了簡訊、手機檢索、定位等業務,基於Linux的通用平台進入了開發。

軟體開發需要掌握的知識體系有:Unix/Linux平台技術、企業級資料庫技術、Java 語言核心技術、軟體工程和設計模式、Android應用開發基礎、互聯網核心技術、Android系統級開發、JavaEE核心技術。

Web前端開發工程師是一個很新的職業,是從事Web前端開發工作的工程師。主要進行網站開發,優化,完善的工作。網頁製作是Web 1.0時代的產物,那時網站的主要內容都是靜態的,用戶使用網站的行為也以瀏覽為主。

前端的難度相對要小很多,很多人都不認為前端算是程序員(歧視鏈的底部,僅專略高於美工UI),覺得那屬不過是HTML+。

不過同級別的薪資也不如安卓、ios開發。但是人才市場上前端更稀缺,因為從業者相對於需求來說更少,很少專門的培訓班,主要要靠興趣+自學。

如果有耐心和毅力,長遠上看iOS開發更好,iphone開發未來幾年還是很被重視的,程序員可以升級到CTO等高官級別。如果想快速的話就前端吧。當然先前端後再學手機開發也可以,技多不壓身。

G. web前端開發和安卓開發哪個更難

這個肯定是安卓開發難了,web前端說白了就是網頁內容的展示,雖然web前端有很多框架,但是框架都是基於javaScript 只要掌握js其他框架學習起來很容易
安卓軟體的范圍就更大了,前端後端都要了解,sqllite資料庫,Kotlin、java兩門語言必須掌握,掌握Linux原理、軟體運行機制,硬體層面還需要C語言,網路協議

H. web跟Android初學者來說哪個畢業設計哪個難

web前端比較容易入門。
對於當前要進入前端領域發展的初學者來說,可以先從Web前端開始學起,一方面Web前端的入門相對比較容易,能夠快速建立起學習的成就感,另一方面Web前端的崗位需求量比較大,就業相對容易一些。在從事Web前端開發的過程中,可以逐漸擴展自身的知識面,比如學習移動端開發知識,以便於提升自己的職場價值。

I. 做Web開發和Android服務端開發有什麼不同

java web 與java android 是兩個不同的領域。
1、java web是java網路開發,一般是使用ssh框架構將網路項目。
2、java android 則是利用java語言對android系統進行開發,android是移動平台的操作系統,對android的開發不僅包含單機開發,還囊括了網路開發。
兩者大體上是不同的,但是android的網路開發中部分包含了java webkai開發。

J. android開發中,webview常用於顯示網頁或h5頁面,一個遇到跨域方面的坑。

1.跨域cookie讀取

什麼是跨域,簡單的說就是不同的域名,我們都知道在pc上我們用瀏覽器訪問網址,不同的網址都會在本地存儲一些cookie信息,這樣就可以實現比如自動登錄等功能,在pc上不同域名是不能相互讀取其他域下的cookie信息的(非web專業開發人員,如果理解有誤,歡迎指出)。

但是在 android 上在api 23之前,是可以跨域讀取cookie的,比如A域寫入一個userId的cookie,B域可以讀取該值。但是在23時,系統將該值設置成了false,不再讓跨域讀取了。如果你的應用有跨域讀取需求,怎麼辦?可以採用如下方式進行開啟:

/*** 設置跨域cookie讀取*/

public final void setAcceptThirdPartyCookies() {

//target 23 default false, so manual set true

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            CookieManager.getInstance().setAcceptThirdPartyCookies(webView,true);       

}  

}

2.http/https混合載入

在現階段,很多網站都改成了https進行訪問,https可以提升訪問網站的安全性,防止信息被竊取,如果所有的網頁都是https且網頁內的鏈接也是都是https,那就沒有混合載入(文本區域https,圖片文件http載入)的問題了。但是很多資源現階段還沒有改變成https訪問,往往頁面都嵌入了http的鏈接。這種混合網頁如果不進行處理,直接載入是會出現錯誤的。怎麼解決這個問題?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 

webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

}

這也是一個分版本的函數,在api23之前,默認是可以混合載入的,但是在23時,默認值改成了MIXED_CONTENT_NEVER_ALLOW,因此如果你有混合載入的需求,設置setMixedContentMode為MIXED_CONTENT_ALWAYS_ALLOW。

3.無法解決跨域訪問問題,可以嘗試給webview設置如下配置,已解決該問題;

if (Build.VERSION.SDK_INT >= 16) {

Class clazz =webView.getSettings().getClass();

Method method = clazz.getMethod("", boolean.class);

if (method != null) {

method.invoke(webView.getSettings(), true);

}

}

} catch (IllegalArgumentExceptione) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

}

熱點內容
建立多級文件夾 發布:2025-03-13 00:13:34 瀏覽:723
存儲器價格 發布:2025-03-13 00:12:14 瀏覽:759
編譯原理上下文無關文法例題 發布:2025-03-13 00:12:12 瀏覽:93
微視頻腳本怎麼寫 發布:2025-03-12 23:59:54 瀏覽:609
蘋果手機文件夾管理 發布:2025-03-12 23:59:12 瀏覽:98
了解排序演算法 發布:2025-03-12 23:58:06 瀏覽:26
華為平板tf存儲設置 發布:2025-03-12 23:57:20 瀏覽:315
python設置目錄 發布:2025-03-12 23:57:12 瀏覽:956
xp怎麼查看系統密碼 發布:2025-03-12 23:57:12 瀏覽:280
菱智哪個配置最好 發布:2025-03-12 23:56:37 瀏覽:225