大一大二時候學過C++,Java,算法,數據結構以及其他很多東西,但都學的不精。就要找實習了,總要專注於一門技術,於是開始學安卓。
開發環境是在慕課網下的eclipse,開始在慕課網聽,后來聽說《第一行代碼》這本書很好,就開始學了。
我在初學時但犯過很多錯誤,現在想來確實有點浪費時間。下面是我的一些建議。
1 安卓手機配合模擬器調試
由於各種教程都在使用安卓模擬器,導致我一開始學習也在用。最開始我用的是eclipse的原生模擬器。但這個實在是很麻煩,我的電腦本來就是渣配置,模擬器開機就要等一年,開機后點個按鈕都要等半天。而且經常卡的我的eclipse都不能使用,我還在網上找了一寫給模擬器加速的方法,甚至給電腦加內存條了。現在想想都是無用功,直接用手機調試就全都解決了,有一些開發者可能是因為沒有安卓手機才用模擬器的吧。現在我換了新手機,舊手機就完全用於開發了。當然真機調試也存在很多問題,例如在學第三章碎片的時候由於我沒有平板,只能用模擬器,開發GPS那塊的時候經常收不到位置信息,無法訪問本地服務器.....還有就是我的MIUI系統與原生安卓有諸多不同,有時會運行失敗,有時訪問不了系統文件和數據庫,這時就要使用模擬器了。當然如果想用模擬器不要用adt自帶的,推薦genymotion模擬器,很快。
2 @Override能用則用
最初學的時候都是無腦跟着書上敲代碼敲,有一個程序是重寫onOptionsItemSelected方法,我少寫了個e,找了好久的bug才找到,如果當時寫上@Override編譯器直接報錯了,不會有這種問題。(感覺書上沒寫@Override是個失誤)當然現在我的建議是寫出方法的前幾個字母直接Alt+/補全,就萬無一失了。補全功能真的很強大,極大提高了開發效率。
3 不同的系統結果可能會不同
我的意思當然是不同的安卓系統。這塊我印象最深的就是敲完第五章BroadcastBestPractice后,在我的MIUI上居然不生效。一開始我當然是找自己的問題,但是當我發現樣例代碼都不能通過的時候,我就讓室友幫我測試一下結果能用。后來才知道MIUI需要開啟懸浮窗權限才能彈出AlertDialog。這里就是虛擬機的一個優點,和書上的型號系統完全一樣,不會出現這種問題,只是太慢了。還有就是學讀寫操作那一章時發現MIUI的data文件夾老是空的,但程序還是能正常讀取信息,應該是文件被隱藏了吧。所以提醒大家出了這種問題記得換手機或用模擬器測試一下。
4 寫Toast不要漏掉.show()
當然這個屬於比較低級的錯誤,如果漏寫adt也會給警告,但我剛學的時候還是會出這種問題,現在有時不注意也會犯。現在的寫法是先把Toast.makeText寫出來,不寫';',然后補上.show()編輯器會自動補上';',這樣就很少出錯了。
5 編寫完文件要及時保存
例如,如果在一個xml文件中添加了一個Button控件,但沒有保存就去修改Java文件,會發現在R.id中找不到這個Button。一開始我還以為是編譯器的問題,看網上回答直接把項目Clean了,結果就炸了。xml文件要保存才能把id加到R文件里,而且有的時候修Java文件改完錯誤要保存才能取消掉錯誤提示。當然android studio是隨時自動保存的,就不會有這個問題。
6 建議自己修改書上的Demo
書上的Demo是為了讓大家初學知識可以更加直觀,但這些Demo都是有改進的空間的。例如書上有時在實現另一個知識點時,會將前一個知識點的代碼刪去。大家可以多設置幾個Button來同時實現幾個功能。而且書上有時會配合日志來查看當前的一些狀態,大家可以改用Toast和TextView來顯示,這樣平時用手機運行這些app隨時都可以回憶起這些知識點。有時間再把app的名稱和圖標改一下,這樣一本書學完的時候已經做出一些不錯的app了。