android要點
❶ Android系統原理及開發要點詳解的前 言
Android 是Google歷經數年和投資數億美元開發出來的智能手機系統,Google也發起了圍繞Android的組織——開放手機聯盟,其英文全稱為「Open Handset Alliance」。
隨著各大移動終端生產商大力開發和生產基於Android的移動智能設備,Android迅速得到業界和社會的認可,並成為整個產業的熱點,基於Android平台的各類人才逐漸成為各大企業競相爭奪的焦點。
Android系統是一個開放的系統,任何公司、個人開發者、愛好者都可以參與其中。對於技術工作者,Android不僅是一個智能手機的系統,也可以作為學習嵌入式Linux系統的較完整的軟體平台。
Android是一個較新的系統和技術,因此介紹Android的資料和書籍還比較少,尤其簡體中文的書籍,相對更少。本書《Android系統原理及開發要點詳解》 是一本綜合介紹Android系統的書,集合了Androidin社區多位專家作者的經驗,精心編寫而成。
Android 作為一個龐大的系統,包括了Linux操作系統、各種本地程序、虛擬機和運行環境、java框架和Java應用程序多方面的內容。這對於初學者是一個非常大的挑戰,因此對於學習、研究進而開發Android系統來說,掌握系統的脈絡和使用恰當的學習方法是非常重要的,這也是本書的組織主旨。
本書特點
為了適應Android系統的情況,本書在內容的編排和組織上具有以下一些重要特點。
保持完整性和層次性
本書緊緊把握Android系統的4個層次,分章節介紹,並且有重點地介紹了Android整個系統的代碼結構、編譯系統、相關工具、各部分組織等全局性內容。這將讓讀者即使只花費較短的時間,也可以獲得對Android系統大致的感性理解。
提供清晰的框架
Android是一個有數百兆大小的較大系統,各部分之間是有機聯系的,這就要求Android的學習和開發者需要具有一些軟體架構方面的知識。本書為Android整體和重點模塊繪制了大量的框圖,這樣非常有利於幫助讀者直觀地理解系統。本書在講述每一個部分時,均列出相關代碼的路徑,幫助讀者對應著進行快速、高效地學習。
抓核心內容
Android系統已經發布了若干個版本:1.0、1.5(cupcake)、1.6(donut)和2.0(eclair),從開發的角度,各個版本在同時使用,這對於學習者是一個較大的挑戰。因此本書作者通過把握Android演進中脈絡,盡量總結出共性的內容展示給讀者。在某些部分,在講解代碼的同時,突出概念性的內容。本書力求通過一本教材,給讀者一個長期的、穩定的學習方法和思路。
開發細節
Android 包含眾多的軟體、程序和工具,涉及軟體開發各個方面。在實際的開發過程中,很多內容並不需要開發者去改動。本書從工程的角度出發,偏重開發中常用的內容,對於開發中較少涉及的部分,僅做精煉的大致介紹。本書重點介紹顯示機制、輸入機制、音頻/視頻系統的移植層、多媒體系統的構建、電話系統的構建、連接系統的構建、感測器的移值、應用開發中最常涉及的部分,在每段講解中,穿插了開發中可以使用的一些技巧。
本書內容
本書的各個章節及其組織方式如下所示。
第1章「Android系統概述」,概述Android系統方面的內容,包括智能手機平台的發展歷程、Android系統的特點、Android的3種開發工作,以及Android的2種不同的開發方式。
第2章「Android系統開發綜述」,介紹Android系統開發的綜述性內容,包括工具使用、獲得代碼、編譯系統、模擬器運行、SDK使用等。
第3章「Android的Linux內核與驅動程序」,介紹Android內核的特點、Android中使用的專用驅動程序、Android系統可能使用的標准設備驅動。
第4章「Android的底層庫和程序」,介紹Android系統的基礎程序,以本地程序為主。
第5章「Android的Java虛擬機和Java環境」,這是介於本地和Java層之間的相關內容,主要介紹Android的Java虛擬機Dalvik的基本概念、Android Java程序的環境、JNI的使用方法,以及Java框架的啟動流程等。
第6章「Android的GUI系統」,包括Android GUI系統架構、底層的pixelflinger和libui庫、Surface系統、Skia和2D圖形系統、Android的OpenGL和3D圖形系統等內容。
第7章「Android的Audio系統」,主要是音頻的輸入輸出環節,音頻系統從驅動程序、本地框架到Java框架都具有內容。
第8章「Android的Video輸入輸出系統」,介紹Android的Video輸入輸出系統,包括Overlay系統和Camera系統兩個部分,前者只有本地的內容,後者各個層次均有內容。
第9章「Android的多媒體系統」,介紹Android的多媒體系統的核心部分,包括Android中多媒體系統的業務、結構、多媒體系統的核心框架、OpenCore系統結構和使用等內容。
第10章「Android的電話部分」,介紹Android系統在電話方面的功能,Android是智能手機系統,電話是其核心部分。
第11章「Android的連接部分」,主要包括WiFi、藍牙及定位系統等,這些Android的連接部分也具有從驅動層到Java應用層的結構。
第12章「Android的感測器系統」,感測器系統涉及Android的各個層次,具有完整的結構,相比其他系統,感測器系統的各個層次都比較簡單。
第6~12章分模塊介紹Android的幾個核心系統,主要是本地框架和Java框架方面的內容,兼顧應用程序和驅動層,這是本書的重點。
第13章「Android應用程序概述及框架」,介紹Android應用程序層的基本概念和應用程序框架,這部分內容是Android自下而上的第4個層次,可以基於源代碼或者SDK開發,它們之間的差別非常小。
第14章「Android應用程序的主要方面」,介紹Android應用程序層開發的各個方面,基本上是橫向內容,包括應用程序的基本控制、各種UI元素的使用、圖形API使用3個方面的內容。
第15章「Android應用程序的設計思想」,本章的內容是基於通用的應用程序和GUI程序的通用設計思想,結合Android系統自身的特點,提出一些值得注意的問題和設計方法。
本書讀者
本書適應廣大的讀者群,力求在Android的系統移植、應用程序開發、系統框架改進方面給讀者全面的支持。不同的讀者在學習本書時,應該使用不同的方法。
Android初級開發者:在本書指引下閱讀代碼,搭建系統開發環境,對於Android應用程序的開發者,重點關注後3章的內容。
Android中、高級開發者:通過本書的引導,學習系統架構,關注開發要點,並盡量使用手機系統的通用設計思想、軟體工程思想、系統工程思想來指導Android系統學習。
嵌入式Linux系統學習者:將Android作為一個集Linux核心和應用層程序於一體的系統進行學習,並可以利用Android的模擬環境運行和調試程序。
讀者在學習本書的過程中,應盡量對照本書的框圖和手頭的Android源代碼,這樣可以達到事半功倍的效果。本書在重點代碼中加上大量的注釋,幫助讀者閱讀,對於非重點的代碼,不佔用本書的篇幅,讀者可以參考開放的源代碼。可以採用順序讀和重點讀相結合的方式學習本書,順序讀關注系統框架,重點讀關注開發要點。
本書作者
本書在編寫過程中提煉和綜合Android早期開發者的經驗、中國大陸Androidin社區的開發成果,以及各位專家的經驗和技術,這是本書出版的知識源泉。本書主要由Androidin社區的兩名核心技術專家韓超和梁泉領銜規劃和編著,韓超統稿。總部設在南加州、專注於Android平台並提供其移動應用開發及解決方案的邁奔無線(mAPPn Inc.)也投入技術和人力參與了本書的工作。
參與本書編寫的還有於仕林、張宇、張超等人,趙家維、黃亮、沈楨、徐威特、楊鈺等參與了審校工作。
由於時間倉促,可能依然存在一些錯誤和問題,請讀者見諒,歡迎讀者討論和指點。
❷ android應用測試哪些要點,如何進行測試的
1、主要從應用的功能、應用兼容性進行測試,愛內測是專門測試app性能的工具;
2、接著就是從android的不同版本和終端的解析度出發,界面易用性測試;
3、最後就是應用安全性測試,不同網路狀態下的測試。
❸ 從零學Android開發需要注意哪些要點
1、基礎打牢:現今在大學教育的計算機專業裡面已經開展了C語言的學習,在校期間所教授的課程對於Android開發基礎還是有一定的理論支撐的,建議大家將其基本的語法再好好回顧一下,最好能搭建一個環境來運行、調試它。如果沒有學過,建議大家來中軟卓越學習,面授的教學方式讓您對課程知識更好的理解。
2、熟悉數據結構和演算法基礎知識:數據結構和演算法基礎知識對於游戲開發是必不可少的知識元素。大家應該知道游戲開發是開發中最受歡迎的。雖然現代的高級編程語言中,其類庫中已經幫我們實現了大部分的數據結構,一般情況下,我們直接使用即可。但如果能對其原理有所了解,當需要在這些數據結構和演算法中間的時候,可以更加的清楚到底應該選擇哪個數據結構或者演算法。另外,在圖形圖像處理上面,線性代數的作用也非常重要,如果能掌握一點這方面的基礎知識,無疑也會在後續的學習中如虎添翼;
3、熟悉Java基礎知識:眾所周知,Android軟體開發的基礎語言是Java語言,並且Android開發時少不了用Java核心類庫中存儲的類,因此,在學習Android開發之前,可以先把Java基本語法和JavaSE的基礎類庫好好學習一下。
Android應用程序開發是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。建議在安卓課程前期的java學習階段中,需要用心的學好。