1、不要排斥新技術(shù)和新工具。
創(chuàng)新互聯(lián)建站長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為東遼企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì),東遼網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
Android Studio 1.0 之后的版本,基本已經(jīng)穩(wěn)定到可以支持正常的工作開(kāi)發(fā)的程度了。單純就書(shū)寫(xiě)效率而言,Android Studio 帶來(lái)的好處絕對(duì)大于它和Gradle的學(xué)習(xí)成本。JetBrains的IDE,用過(guò)都說(shuō)好。
還有就是適當(dāng)?shù)奶嵘齮argetSdkVersion到新版本。
2、代碼設(shè)計(jì)方面的問(wèn)題,大部分都能在Android系統(tǒng)源碼里找到解決方案。
當(dāng)你想設(shè)計(jì)一個(gè)新模塊,或者實(shí)現(xiàn)一個(gè)新ui組件的時(shí)候,應(yīng)該采用哪些設(shè)計(jì)模式、應(yīng)該以哪種形式給外界提供接口之類(lèi)的問(wèn)題,大部分都可以參考Android系統(tǒng)的源碼,找到實(shí)現(xiàn)方式。Google為安卓程序員提供了一座現(xiàn)成的寶庫(kù)。
3、理解Android和Java內(nèi)存管理方式,至少要理解垃圾回收和Java的引用。
就好比學(xué)OC就要先理解黃金法則一樣,而java的內(nèi)存管理,其實(shí)比OC要好理解多了。
這可能會(huì)幫助你大大減少程序異步操作產(chǎn)生的空指針崩潰。也會(huì)幫助你理解為什么濫用單例模式會(huì)導(dǎo)致內(nèi)存的臃腫。還會(huì)幫助你養(yǎng)成不用“+”去連接超大字符串的好習(xí)慣。
4、ContentProvider并不是只有在跨進(jìn)程共享數(shù)據(jù)的才有用,把數(shù)據(jù)庫(kù)表映射到一個(gè)獨(dú)立的uri是Google鼓勵(lì)的實(shí)現(xiàn)方式。
從設(shè)計(jì)上講,用uri(統(tǒng)一資源標(biāo)識(shí)符)去描述數(shù)據(jù),肯定比sql語(yǔ)句要理想。
從效果上講,用CursorLoader讀取數(shù)據(jù)是讓iOS程序員都羨慕不已的事情,作為android程序員,何苦不用呢。
5、理解Activity任務(wù)棧。
非Activity的Context對(duì)象如果直接啟動(dòng)Activity會(huì)報(bào)錯(cuò),這只是一個(gè)表面現(xiàn)象,真正起作用的其實(shí)是Activity任務(wù)棧機(jī)制。
理解Activity任務(wù)棧機(jī)制以及Activity的各種啟動(dòng)方式,會(huì)幫助解決大部分頁(yè)面關(guān)系錯(cuò)亂問(wèn)題,以及應(yīng)用互相掉起、任務(wù)欄進(jìn)入應(yīng)用、后臺(tái)彈窗引起的各種問(wèn)題。
6、對(duì)于一些奇葩的第三方ROM,調(diào)用其非主流api的時(shí)候,可以使用反射。
在適配一些第三方ROM的的時(shí)候,調(diào)用一些在開(kāi)發(fā)環(huán)境中沒(méi)有,但在運(yùn)行環(huán)境中有的方法時(shí),可以使用反射。比方說(shuō),華為雙卡手機(jī)可能會(huì)提供獲取第二塊SIM卡信息的api,如果直接調(diào)用,在開(kāi)發(fā)環(huán)境可能無(wú)法通過(guò)正常編譯,用反射就沒(méi)問(wèn)題。這屬于不得已而用反射的一種情況。
7、SQLite的鎖,是數(shù)據(jù)庫(kù)級(jí)別的鎖,也就是說(shuō)同一個(gè)數(shù)據(jù)庫(kù)的寫(xiě)操作無(wú)法并發(fā)執(zhí)行。
所以,在數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,如果表太多,盡量將沒(méi)有關(guān)聯(lián)的表拆到多個(gè)數(shù)據(jù)庫(kù)文件中。
8、Bitmap的內(nèi)存占用問(wèn)題。
這是一個(gè)困擾2.X時(shí)代android程序員的問(wèn)題。
2.X時(shí)代Bitmap對(duì)象雖然存儲(chǔ)在堆內(nèi)存中,但是用了一個(gè)byte數(shù)組存儲(chǔ)其像素信息。通過(guò)計(jì)數(shù)器來(lái)記錄該像素信息被引用的個(gè)數(shù)。有人認(rèn)為這個(gè)byte數(shù)組在native堆中,但事實(shí)上它也在堆中。
只有在使用者調(diào)用recycle()后,Bitmap對(duì)象才會(huì)釋放像素信息,才會(huì)在失去引用后,被垃圾回收機(jī)制銷(xiāo)毀。再加上DVM的heap size有嚴(yán)格的閥值,所以在使用大量圖片資源的時(shí)候,及其容易發(fā)生OOM。
解決辦法一般都是,用一個(gè)哈希表存儲(chǔ)Bitmap對(duì)象的軟引用,作為內(nèi)存緩存,并在適當(dāng)時(shí)機(jī)掉用其recycle()。
3.0以上版本Bitmap對(duì)象可以通過(guò)垃圾回收機(jī)制完全銷(xiāo)毀,理論上不用再調(diào)用recycle()。
在成為Android開(kāi)發(fā)程序員的這幾年時(shí)間內(nèi),從一個(gè)什么都不懂的菜鳥(niǎo),成長(zhǎng)成為一名資深的Android開(kāi)發(fā)程序員。
雖然這一路感觸很多很辛苦,但是我依然熱愛(ài)這個(gè)行業(yè)。
第一就是技術(shù)要扎實(shí)在從事這個(gè)行業(yè)之前我參加過(guò)Android軟件開(kāi)發(fā)培訓(xùn),在北大青鳥(niǎo)學(xué)習(xí)了一段時(shí)間,雖然之前沒(méi)有接觸過(guò),但是在這一段時(shí)間內(nèi)學(xué)會(huì)了很多的知識(shí)。
每天學(xué)習(xí)到很晚,教室里依然有老師的陪伴,這一段時(shí)間的學(xué)習(xí)為我之后的工作,打下了很好的基礎(chǔ)。
所以無(wú)論是在哪個(gè)行業(yè),扎實(shí)的技術(shù)首先是排在第一位的。
如果之前在學(xué)校里面已經(jīng)接觸過(guò)這一塊的知識(shí),那么在今后的工作中你也會(huì)受到這段時(shí)間學(xué)習(xí)的幫助。
第二你要有計(jì)算機(jī)思維在it行業(yè)工作肯定是要有計(jì)算機(jī)思維的,這也是亙古不變的道理。
很多時(shí)候當(dāng)事情非常的亂,這時(shí)候你需要有計(jì)算機(jī)思維。
它會(huì)幫助你快速的解決當(dāng)前的問(wèn)題,恢復(fù)正常的工作。
這個(gè)思維要在你的頭腦里固化,以后遇到事情就可以快速解決。
第三思維的跳躍性當(dāng)你每天都在面對(duì)枯燥的代碼時(shí),難免會(huì)產(chǎn)生負(fù)面的情緒。
這時(shí)你需要思維的跳躍性,緩解當(dāng)時(shí)的情緒,以便更好的工作。
在遇到問(wèn)題時(shí)依舊是如此,跳躍的思維會(huì)給你帶來(lái)意想不到的收獲。
IT培訓(xùn)認(rèn)為當(dāng)你一直在堅(jiān)持這幾件事情的時(shí)候,你會(huì)發(fā)現(xiàn)自己已經(jīng)成為了一名專(zhuān)業(yè)的Android開(kāi)發(fā)程序員。
IDC最近一份關(guān)于移動(dòng)應(yīng)用開(kāi)發(fā)的調(diào)查報(bào)告顯示,Androdid開(kāi)發(fā)者對(duì)谷歌的移動(dòng)操作系統(tǒng)平臺(tái)的興趣正在下降。
盡管依然有79%的開(kāi)發(fā)者表示對(duì)Android“非常感興趣”,但I(xiàn)DC的調(diào)查報(bào)告顯示,一些跡象表明在2012到2013年間,Android將隨著遇到的問(wèn)題,市場(chǎng)份額會(huì)出現(xiàn)大的變化。
解決這些問(wèn)題,對(duì)于谷歌如何維持Android生態(tài)系統(tǒng)的活力來(lái)說(shuō)意義重大。
同樣,獨(dú)立開(kāi)發(fā)者也要意識(shí)到這些問(wèn)題將給自己的商業(yè)計(jì)劃帶來(lái)困難。
1、Android的碎裂化問(wèn)題現(xiàn)如今,用戶手中的Android系統(tǒng)版本各異。
相信你已經(jīng)看到過(guò)有很多關(guān)于開(kāi)發(fā)者如何為最低通用版本編碼的文章(現(xiàn)在可能是2.3版本了)。
但是,不止在操作系統(tǒng)方面存在Android版本碎裂化這個(gè)問(wèn)題。
在SDK開(kāi)發(fā)工具上,也沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)。
你可能要為六種尺寸的屏幕編碼,不同的按鈕、鍵盤(pán),有的可能根本就沒(méi)有按鈕??好吧,你可以在一個(gè)代碼分支上為所有的這些設(shè)備編碼(這種方案即笨拙又不容易實(shí)現(xiàn)),或者開(kāi)發(fā)多個(gè)版本(聽(tīng)起來(lái)就很糟糕)。
當(dāng)然,如果回報(bào)還不錯(cuò)的話,這么做也未嘗不可,可事實(shí)上并非如此。
2、投資的回報(bào)這似乎是既定的法則:Android應(yīng)用的利潤(rùn)一般都比iOS應(yīng)用的利潤(rùn)少。
這可能是因?yàn)槿藗冊(cè)谫I(mǎi)手機(jī)時(shí)更關(guān)注它的功能而不是應(yīng)用的質(zhì)量,但是這意味著開(kāi)發(fā)者將獲得較少的利潤(rùn)。
如果開(kāi)發(fā)者擁有的時(shí)間和資源有限,在需要選擇平臺(tái)時(shí),平臺(tái)已經(jīng)建立的基礎(chǔ)將變得不再重要,他們更關(guān)心的將會(huì)只是:“我能否賺到錢(qián)?”3、克隆應(yīng)用的數(shù)量讓我們先假設(shè)你有一款優(yōu)秀的應(yīng)用,它能做一些與眾不同的工作,可能是能夠聯(lián)機(jī)到社交網(wǎng)絡(luò)上、處理PIM數(shù)據(jù),或者能提供一種新的游戲玩法。
然后你有辦法讓你的應(yīng)用從成千上萬(wàn)個(gè)應(yīng)用里脫穎而出。
但是,接下來(lái)就會(huì)有數(shù)不清的開(kāi)發(fā)者開(kāi)發(fā)出克隆版本,從而拉低你的應(yīng)用的價(jià)格,和你展開(kāi)競(jìng)爭(zhēng)。
Android商店幾乎是一個(gè)無(wú)法無(wú)天的社會(huì)。
如果不解決這一問(wèn)題,讓開(kāi)發(fā)者面對(duì)不公平的競(jìng)爭(zhēng),還有多少開(kāi)發(fā)者愿意在里面做應(yīng)用推廣呢?4、選擇哪家商店銷(xiāo)售你的應(yīng)用?GooglePlay商店、亞馬遜的Android商店、BarnesandNoble’sNookApps??有很多地方你可以選擇用來(lái)銷(xiāo)售你的應(yīng)用。
這是市場(chǎng)方面的碎裂化問(wèn)題,而且,有時(shí)候它也會(huì)讓設(shè)備型號(hào)變得紛亂繁雜。
這就意味著要建立更多的版本、協(xié)議等等,這些都會(huì)是令你頭痛的工作。
與此相反的是,iOS和Windows手機(jī)就沒(méi)有這么多繁雜的工作要做。
像EA和Ubisoft這樣的公司或許可以應(yīng)付這些問(wèn)題,但是那些個(gè)人開(kāi)發(fā)者是不可能把他們所有的時(shí)間都花在應(yīng)用商店的管理上的。
有時(shí)候,電腦培訓(xùn)認(rèn)為當(dāng)平臺(tái)已經(jīng)不再處于快速發(fā)展階段時(shí),開(kāi)放和免費(fèi)并不是做好的選擇。
網(wǎng)站欄目:Android程序員,Android程序員工資
新聞來(lái)源:http://vcdvsql.cn/article12/dsiipgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)