android開發注意
㈠ 從零學Android開發需要注意哪些要點
1、基礎打牢:現今在大學教育的計算機專業裡面已經開展了C語言的學習,在校期間所教授的課程對於Android開發基礎還是有一定的理論支撐的,建議大家將其基本的語法再好好回顧一下,最好能搭建一個環境來運行、調試它。如果沒有學過,建議大家來中軟卓越學習,面授的教學方式讓您對課程知識更好的理解。
2、熟悉數據結構和演算法基礎知識:數據結構和演算法基礎知識對於游戲開發是必不可少的知識元素。大家應該知道游戲開發是開發中最受歡迎的。雖然現代的高級編程語言中,其類庫中已經幫我們實現了大部分的數據結構,一般情況下,我們直接使用即可。但如果能對其原理有所了解,當需要在這些數據結構和演算法中間的時候,可以更加的清楚到底應該選擇哪個數據結構或者演算法。另外,在圖形圖像處理上面,線性代數的作用也非常重要,如果能掌握一點這方面的基礎知識,無疑也會在後續的學習中如虎添翼;
3、熟悉java基礎知識:眾所周知,Android軟體開發的基礎語言是Java語言,並且Android開發時少不了用Java核心類庫中存儲的類,因此,在學習Android開發之前,可以先把Java基本語法和JavaSE的基礎類庫好好學習一下。
Android應用程序開發是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。建議在安卓課程前期的java學習階段中,需要用心的學好。
㈡ android開發需要注意什麼
1、不要排斥新技術和新工具。
Android Studio 1.0 之後的版本,基本已經穩定到可以支持正常的工作開發的程度了。單純就書寫效率而言,Android Studio 帶來的好處絕對大於它和Gradle的學習成本。JetBrains的IDE,用過都說好。
還有就是適當的提升targetSdkVersion到新版本。
2、代碼設計方面的問題,大部分都能在Android系統源碼里找到解決方案。
當你想設計一個新模塊,或者實現一個新ui組件的時候,應該採用哪些設計模式、應該以哪種形式給外界提供介面之類的問題,大部分都可以參考Android系統的源碼,找到實現方式。Google為安卓程序員提供了一座現成的寶庫。
3、理解Android和Java內存管理方式,至少要理解垃圾回收和Java的引用。
就好比學OC就要先理解黃金法則一樣,而java的內存管理,其實比OC要好理解多了。
這可能會幫助你大大減少程序非同步操作產生的空指針崩潰。也會幫助你理解為什麼濫用單例模式會導致內存的臃腫。還會幫助你養成不用「+」去連接超大字元串的好習慣。
4、ContentProvider並不是只有在跨進程共享數據的才有用,把資料庫表映射到一個獨立的uri是Google鼓勵的實現方式。
從設計上講,用uri(統一資源標識符)去描述數據,肯定比sql語句要理想。
從效果上講,用CursorLoader讀取數據是讓iOS程序員都羨慕不已的事情,作為android程序員,何苦不用呢。
5、理解Activity任務棧。
非Activity的Context對象如果直接啟動Activity會報錯,這只是一個表面現象,真正起作用的其實是Activity任務棧機制。
理解Activity任務棧機制以及Activity的各種啟動方式,會幫助解決大部分頁面關系錯亂問題,以及應用互相掉起、任務欄進入應用、後台彈窗引起的各種問題。
6、對於一些奇葩的第三方ROM,調用其非主流api的時候,可以使用反射。
在適配一些第三方ROM的的時候,調用一些在開發環境中沒有,但在運行環境中有的方法時,可以使用反射。比方說,華為雙卡手機可能會提供獲取第二塊SIM卡信息的api,如果直接調用,在開發環境可能無法通過正常編譯,用反射就沒問題。這屬於不得已而用反射的一種情況。
7、SQLite的鎖,是資料庫級別的鎖,也就是說同一個資料庫的寫操作無法並發執行。
所以,在資料庫設計的時候,如果表太多,盡量將沒有關聯的表拆到多個資料庫文件中。
8、Bitmap的內存佔用問題。
這是一個困擾2.X時代android程序員的問題。
2.X時代Bitmap對象雖然存儲在堆內存中,但是用了一個byte數組存儲其像素信息。通過計數器來記錄該像素信息被引用的個數。有人認為這個byte數組在native堆中,但事實上它也在堆中。
只有在使用者調用recycle()後,Bitmap對象才會釋放像素信息,才會在失去引用後,被垃圾回收機制銷毀。再加上DVM的heap size有嚴格的閥值,所以在使用大量圖片資源的時候,及其容易發生OOM。
解決辦法一般都是,用一個哈希表存儲Bitmap對象的軟引用,作為內存緩存,並在適當時機掉用其recycle()。
3.0以上版本Bitmap對象可以通過垃圾回收機制完全銷毀,理論上不用再調用recycle()。
㈢ Android平板開發需要注意的幾點
隨著移動平台的發展和其應用的不斷改善,質量成為決定成敗的關鍵。用戶要求他們選擇安裝的應用響應快、性能好,如果某個應用不能提供卓越的功能和穩定的用戶體驗,那這樣的應用註定會被很快卸載。
盡管現在android智能手機和平板電腦的運行速率越來越快,但開發者仍需牢記,應用的運行環境仍受到電池和處理器等諸多資源的限制。以下是給android應用開發者10個建議,以便能在當前和以後的所有android設備都能運行出最佳效果。
1.首先要有良好的編碼習慣
一個優秀的android應用開發者應該善於運用常識、完善的演算法和標准設計模式。要有資源意識,打開了就要記得關閉,盡量做到晚獲取,早釋放。這些由來已久的編碼准則同樣適用Android應用開發,尤其是使用基礎設備服務時。
2.讓阻塞操作遠離主UI線程
通過使用AsyncTask、線程、IntentService和自定義後台服務,保證應用的靈活性。使用載入工具簡化游標等長時間載入數據的狀態管理。當有其他程序運行時,不能讓應用滯後或中止。
如果一個操作需要消耗較多時間和資源時,取消該操作,換成非同步處理,這樣應用就能保持響應,用戶可以繼續各種操作。該方法適用磁碟讀寫、訪問內容提供方、資料庫和互聯網,以及解析和其他需要花費較長時間的任務。
3.使用最新的android SDK版本和API
使用android平台的最新產品,保證應用緊跟android的更新步伐。隨著android平台的不斷發展,部分功能可能被棄用或被更好的功能取代,核心API接收了bug修復和性能改進,新API有助於android應用開發者編寫出更穩定的應用。要明白最佳的做法總是隨著時間的推移而變,聰明的android應用開發者應該總是站在整個平台的最前沿。
4.考慮使用StrictMode
從android 2.3開始提供了一個新的類StrictMode,該類可以用於捕捉發生在應用程序主線程中耗時的磁碟、網路訪問或函數調用,可以幫助開發者改進程序,使主線程處理UI和動畫在磁碟讀寫和網路操作時變得更平滑,避免主線程被阻塞。
5.發布前禁用或盡量減少調試
如果android應用開發周期較長,很可能在應用中內置了一些日誌或調試代碼,在發布前確保這些功能已經最小化或完全禁用。
6.確保UI布局簡單優雅
簡單的屏幕不僅方便閱讀,還能加快載入速度。與其在一個單一屏幕上堆砌太多不必要的功能,不如花時間去開發優雅的用戶界面。簡單優雅的UI不僅能提高應用性能,還能提高用戶使用該應用時的效率。
7.根據目標設備調整應用資源
為盡可能高效地被載入,需要根據具體設備的配置調整相應資源,尤其是圖片資源。為使應用包文件合理適用不同設備,首先可只添加運行該應用需要的核心資源,然後再根據具體設備下載相關內容。
8.使用Hierachy Viewer可視化調試工具
Hierachy Viewer能很方便地在開發者設計,調試和調整界面時,快速定位問題,解決問題,提高開發效率。
9.使用layoutopt進行布局優化
Layoutopt是一款簡單的命令行工具,可幫助找到不必要的控制項嵌套以及縮減布局資源,從而使應用變得可能「苗條」。控制項越少、布局層次越淺,性能就越好。
10.使用Traceview及其他Android工具進行分析
Android SDK隨帶了很多用於應用分析的工具,其中最受歡迎的是Traceview,這款圖形工具可以幫助調試和找到應用中的性能瓶頸。