新聞中心
有誰能具體介紹下Android軟件的開發(fā)周期特點(diǎn),其主流IDE工具,Go語言的優(yōu)缺點(diǎn)?(50分)
Android系統(tǒng)試圖盡可能長地保持一個(gè)應(yīng)用程序進(jìn)程,但是當(dāng)內(nèi)存低時(shí)它最終還是需要移除舊的進(jìn)程。為了決定保持哪個(gè)進(jìn)程及殺死哪個(gè)進(jìn)程,Android將每個(gè)進(jìn)程放入一個(gè)基于運(yùn)行于其中的組件的重要性等級(jí)和這些組件的狀態(tài)。重要性最低的進(jìn)程首先被殺死,然后是次低,以此類推。總共有5個(gè)層次等級(jí)。下列清單按重要性順序列出:前臺(tái)進(jìn)程,用戶當(dāng)前工作所需要的。一個(gè)進(jìn)程如果滿足下列任何條件被認(rèn)為是前臺(tái)進(jìn)程:它正運(yùn)行著一個(gè)正在與用戶交互的活動(dòng)(Activity對(duì)象的onResume()方法已經(jīng)被調(diào)用)。它寄宿了一個(gè)服務(wù),該服務(wù)與一個(gè)與用戶交互的活動(dòng)綁定。它有一個(gè)Service對(duì)象執(zhí)行它的生命周期回調(diào)(onCreate()、onStart()、onDestroy())。它有一個(gè)BroadcastReceiver對(duì)象執(zhí)行他的onReceive()方法。
成都創(chuàng)新互聯(lián)公司主營廣昌網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),廣昌h5成都小程序開發(fā)搭建,廣昌網(wǎng)站營銷推廣歡迎廣昌等地區(qū)企業(yè)咨詢
在給定時(shí)間內(nèi)僅有少數(shù)的前臺(tái)進(jìn)程存在。僅作為最后采取的措施他們才會(huì)被殺掉——如果內(nèi)存太低以至于他們不能繼續(xù)運(yùn)行。一般來說,就在那時(shí),設(shè)備達(dá)到一個(gè)內(nèi)存???狀態(tài),因此殺掉某些前臺(tái)進(jìn)程以保持用戶界面響應(yīng)。可視進(jìn)程,他沒有任何前臺(tái)組件,但是仍然能影響用戶在屏幕上看到東西。一個(gè)進(jìn)程滿足下面任何一個(gè)條件都被認(rèn)為是可視的:它寄宿著一個(gè)不是前臺(tái)的活動(dòng),但是它對(duì)用戶仍可見(它的onPause()方法已經(jīng)被調(diào)用)。舉例來說,這可能發(fā)送在,如果一個(gè)前臺(tái)活動(dòng)是一個(gè)對(duì)話框且運(yùn)行之前的活動(dòng)在其后面仍可視。它寄宿著一個(gè)服務(wù),該服務(wù)綁定到一個(gè)可視的活動(dòng)。
一個(gè)可視進(jìn)程被認(rèn)為是及其重要的且不會(huì)被殺死,除非為了保持前臺(tái)進(jìn)程運(yùn)行。服務(wù)進(jìn)程,是一個(gè)運(yùn)行著一個(gè)用startService()方法啟動(dòng)的服務(wù),并且該服務(wù)并沒有落入上面2種分類。雖然服務(wù)進(jìn)程沒有直接關(guān)系到任何用戶可見的,它們通常做用戶關(guān)心的事(諸如在后臺(tái)播放mp3或者從網(wǎng)絡(luò)上下載數(shù)據(jù)),因此系統(tǒng)保持它們運(yùn)行,除非沒有足夠內(nèi)存隨著所有的前臺(tái)進(jìn)程和可視進(jìn)程保持它們。后臺(tái)進(jìn)程,是一個(gè)保持著一個(gè)當(dāng)前對(duì)用戶不可視的活動(dòng)(已經(jīng)調(diào)用Activity對(duì)象的onStop()方法)。這些進(jìn)程沒有直接影響用戶體驗(yàn),并且可以在任何時(shí)候被殺以收回內(nèi)存用于一個(gè)前臺(tái)、可視、服務(wù)進(jìn)程。一般地有很多后臺(tái)進(jìn)程運(yùn)行著,因此它們保持在一個(gè)LRU(least recently used,即最近最少使用,如果您學(xué)過操作系統(tǒng)的話會(huì)覺得它很熟悉,跟內(nèi)存的頁面置換算法LRU一樣。)列表以確保最近使用最多的活動(dòng)的進(jìn)程最后被殺。如果一個(gè)活動(dòng)執(zhí)行正確地執(zhí)行它的生命周期方法,且捕獲它當(dāng)前的狀態(tài),殺掉它對(duì)用戶的體驗(yàn)沒有有害的影響。空進(jìn)程,是一個(gè)沒有保持活躍的應(yīng)用程序組件的進(jìn)程。保持這個(gè)進(jìn)程可用的唯一原因是作為一個(gè)cache以提高下次啟動(dòng)組件的速度。系統(tǒng)進(jìn)程殺死這些進(jìn)程,以在進(jìn)程cache和潛在的內(nèi)核cache之間平衡整個(gè)系統(tǒng)資源。Android把進(jìn)程標(biāo)記為它可以的最高級(jí),即進(jìn)程中活躍的組件中重要性最高的那個(gè)(選取重要性最高的那個(gè)作為進(jìn)程的重要性級(jí)別)。例如,有一個(gè)進(jìn)程寄宿著一個(gè)服務(wù)和一個(gè)可視活動(dòng),進(jìn)程的級(jí)別被設(shè)置為可視進(jìn)程級(jí)別,而不是服務(wù)進(jìn)程級(jí)別(因?yàn)榭梢曔M(jìn)程級(jí)別比服務(wù)進(jìn)程級(jí)別高)。此外,一個(gè)進(jìn)程的排名因?yàn)槠渌M(jìn)程依賴它而上升。一個(gè)進(jìn)程服務(wù)其它進(jìn)程,它的排名從不會(huì)比它服務(wù)的進(jìn)程低。例如,進(jìn)程A中的一個(gè)內(nèi)容提供者服務(wù)進(jìn)程B中的一個(gè)客戶,或者進(jìn)程A中的一個(gè)服務(wù)綁定到進(jìn)程B中的一個(gè)組件,進(jìn)程A總是被認(rèn)為比進(jìn)程B重要。因?yàn)橐粋€(gè)運(yùn)行一個(gè)服務(wù)進(jìn)程排名比一個(gè)運(yùn)行后臺(tái)活動(dòng)的進(jìn)程排名高,一個(gè)活動(dòng)啟動(dòng)一個(gè)服務(wù)來初始化一個(gè)長時(shí)間運(yùn)行操作,而不是簡單地衍生一個(gè)線程——特別是如果操作很可能會(huì)拖垮活動(dòng)。這方面的例子是在后臺(tái)播放音樂和上傳相機(jī)拍攝的圖片到一個(gè)網(wǎng)站。使用服務(wù)保證操作至少有“服務(wù)進(jìn)程”的優(yōu)先級(jí),無論活動(dòng)發(fā)生什么情況。
go語言支持開發(fā)桌面級(jí)應(yīng)用嗎?(求個(gè)編譯器)
go 可以開發(fā)桌面應(yīng)用,但并不是很舒適。
可以使用的GUI庫有:
1、goqt,LiteIDE作者出品,Go和QT的綁定,還未發(fā)布
2、go.uik,純Go實(shí)現(xiàn)的并發(fā)UI工具
3、walk,Windows Application Library Kit
4、gform,Windows GUI framework
目前的話walk用得比較多
不過go的GUI庫用起來沒有C#、C/C++的那么順手。
這個(gè)問題不久之后應(yīng)該會(huì)有所改善,畢竟用Go開發(fā)桌面的需求在不斷增加。
目前我采用的是用go http 做后端,Webkit+HTML5 做界面,表現(xiàn)力很好,前端不需要學(xué)習(xí)新知識(shí),一般的管理類應(yīng)用都能搞定。
goland 為什么不能正常產(chǎn)生pkg文件?
這是golang數(shù)據(jù)結(jié)構(gòu)的準(zhǔn)備篇,GoLand的是個(gè)人認(rèn)為最好用的go語言的IDE(jetbrains家的都好用),以下會(huì)對(duì)基本安裝做下簡單介紹,不會(huì)很詳細(xì),但是入門使用夠了(我也只會(huì)這些~~~)
1.1首先,安裝go語言(go語言的ide,沒有怎么行)
到這里下載對(duì)應(yīng)的安裝包,記住安裝目錄,以下會(huì)用到
1.2 配置環(huán)境變量
如果是linux 或者mac 請?jiān)趡/.bashrc (ubuntu) 或 ~/.bash_profile(mac)下加入以下內(nèi)容
export GOROOT=golang安裝目錄 (bin文件夾的那一級(jí))
export PATH=$PATH:$GOROOT/bin
如果是windows 則設(shè)置以下環(huán)境變量(不會(huì)請參考)
Go語言做Web應(yīng)用開發(fā)的框架,哪一個(gè)更適合入門
可以先直接使用go自帶的http server 框架,這個(gè)框架涵蓋了絕大多數(shù)的功能,比如request response 的基本封裝,簡單的路由管理,文件上傳處理。
如果發(fā)現(xiàn)Go 自帶的框架解決不了問題,可以引入相應(yīng)的第三方組件,比如ORM可以采用中國人寫的gorm 比如web 的session 管理可以使用gorilla/session
當(dāng)然你也可以直接上大一統(tǒng)的框架比如你提到的beego 還有大名鼎鼎的martini 。不過不推薦,因?yàn)檫@樣的大框架和Go 語言本身的模塊設(shè)計(jì)有沖突。
實(shí)際開發(fā)建議用vscode 加Go 插件來做IDE,基本包含了其他成熟IDE的所有功能,而且還自帶強(qiáng)大的debug 功能。其他IDE debug 用起來非常麻煩比如idea 和liteIDE。題主也可以自己試下。
go語言支持開發(fā)桌面級(jí)應(yīng)用嗎?
go 可以開發(fā)桌面應(yīng)用,但并不是很舒適。
可以使用的GUI庫有:
1、goqt,LiteIDE作者出品,Go和QT的綁定,還未發(fā)布
2、go.uik,純Go實(shí)現(xiàn)的并發(fā)UI工具
3、walk,Windows Application Library Kit
4、gform,Windows GUI framework
目前的話walk用得比較多
不過go的GUI庫用起來沒有C#、C/C++的那么順手。
這個(gè)問題不久之后應(yīng)該會(huì)有所改善,畢竟用Go開發(fā)桌面的需求在不斷增加。
目前我采用的是用go http 做后端,Webkit+HTML5 做界面,表現(xiàn)力很好,前端不需要學(xué)習(xí)新知識(shí),一般的管理類應(yīng)用都能搞定。
Sublime和intelliJ IDEA這兩款I(lǐng)DE,對(duì)于Java、golang的支持,哪款更好一點(diǎn)呢?
前面那個(gè)沒用過,個(gè)人用的IDEA,很好用,對(duì)go語言的支持只需要安個(gè)插件就可以用了~~對(duì)java的支持更好 用了IDEA,領(lǐng)導(dǎo)再也不用擔(dān)心我的代碼了~~
本文名稱:go語言的專用ide go語言的用途
標(biāo)題網(wǎng)址:http://www.ef60e0e.cn/article/hpseej.html