Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> 魅族M9引領Android中級進階課堂FAQ集錦

魅族M9引領Android中級進階課堂FAQ集錦

編輯:初級開發

1、Q:android開發者應該先看什麼文檔?

  A:對開發者來說,最重要的是概念,而DOCS中的Dev Guide裡面對其解釋十分清晰,請仔細閱讀。並可以到eoeandroid開發者社區中找到很多的文檔和學習資料。

  2、Q:android系統架構有哪些?

  A:Android的系統架構和其操作系統一樣,采用了分層的架構。從架構圖看,android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux核心層。

  3、Q:什麼是開源?

  A:開源,意為開放源代碼,由Bruce Perens(曾是Debian的創始人之一)定義如下:

  1)自由再散布(Free Distribution):獲得源代碼的人可自由再將此源代碼散布。

  2)源代碼(Source Code):程式的可執行檔在散布時,必需隨附完整源代碼或是可讓人方便的事後取得源代碼。

  3)衍生著作(Derived Works):讓人可依此源代碼修改後,在依照同一授權條款的情形下再散布。

  4)原創作者程式源代碼的完整性(Integrity of The Author"s Source Code):意即修改後的版本,需以不同的版本號碼以與原始的程式碼做分別,保障原始的程式碼完整性。

  5)不得對任何人或團體有差別待遇(No Discrimination Against Persons or Groups):開放源代碼軟件不得因性別、團體、國家、族群等設定限制,但若是因為法律規定的情形則為例外(如:美國政府限制高加密軟件的出口)。

  6)對程式在任何領域內的利用不得有差別待遇(No Discrimination Against FIElds of Endeavor):意即不得限制商業使用。

  7)散布授權條款(Distribution of License):若軟件再散布,必需以同一條款散布之。

  8)授權條款不得專屬於特定產品(License Must Not Be Specific to a Product):若多個程式組合成一套軟件,則當某一開放源代碼的程式單獨散布時,也必需要符合開放源代碼的條件。

  9)授權條款不得限制其他軟件(License Must Not Restrict Other Software):當某一開放源代碼軟件與其他非開放源代碼軟件一起散布時(例如放在同一光碟片),不得限制其他軟件的授權條件也要遵照開放源代碼的授權。

  10)授權條款必須技術中立(License Must Be Technology-Neutral):意即授權條款不得限制為電子格式才有效,若是紙本的授權條款也應視為有效。

  4、Q:如何搭建編程環境?

  A:開發平台推薦Eclipse。VS基本不要想,除非你特別鐘愛於傳統的vim或其他編程環境並且打算讓自己每天敲一堆命令,否則還是用Eclipse吧。它是官方推薦的,目前支持的還算中規中距。而且Linux,Windows都能用。

  這裡拿eoe的技術大牛pcr所使用的開發環境舉例,SDK_2.3+Eclipse_3.6.1+ADT 8.0.1。這應該就是目前最普通的開發環境組合了。至於其他的輔助工具,可以在對android有一定了解之後在考慮添加。

  5、Q:什麼是NDK?

  A:1)NDK是一系列工具的集合。

  NDK 提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so 和java 應用一起打包成apk。這些工具對開發者的幫助是巨大的。NDK 集成了交叉編譯器,並提供了相應的mk 文件隔離CPU、平台、ABI 等差異,開發人員只需要簡單修改mk 文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創建出so。NDK 可以自動地將so 和Java 應用一起打包,極大地減輕了開發人員的打包工作。

  2)NDK提供了一份穩定、功能有限的API頭文件聲明。

  Google 明確聲明該API 是穩定的,在後續所有版本中都穩定支持當前發布的API。從該版本的NDK 中看出,這些API 支持的功能非常有限,包含有:C 標准庫(libc)、標准數學庫(libm)、壓縮庫(libz)、Log 庫(liblog)

  6、Q:怎樣提高android應用程序的速度?

  A:首先, 我們要先明白“加快”是有兩層意思的,第一層是代碼執行所需要的時間,第二層意思是用戶需要等待用戶界面響應的時間。下面是提高android應用程序運行速度的幾條原則。

  1)不要讓UI線程等待

  2)耗時操作不可取

  3)模擬器和真實的設備有不同

  4)通知用戶,要注意用戶體驗。

  7、Q:android運行庫有哪些?

  A:Android 包括了一個核心庫,該核心庫提供了JAVA 編程語言核心庫的大多數功能。每一個android 應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik 虛擬機實例。Dalvik 被設計成一個設備可以同時高效地運行多個虛擬系統。Dalvik 虛擬機執行(.dex)的Dalvik 可執行文件,該格式文件針對小內存使用做了優化。同時虛擬機是基於寄存器的,所有的類都經由Java 編譯器編譯,然後通過SDK中的"dx" 工具轉化成.dex 格式由虛擬機執行。Dalvik 虛擬機依賴於Linux 內核的一些功能,比如線程機制和底層內存管理機制。

  8、Q:android都支持哪些Java特性

  A:針對於Java SE或Java EE的程序員想轉到android平台上進行開發,有以下幾點常規的支持:

  1)目前來看JDK的高級特性均支持,比如說1. Java的反射、2.NIO (New I/O)、3. JNI (Java Native Interface)相對而言 對於OpenGL和SQLite的支持比較強大,但是AWT和JDBC這些東西都不支持。

  2)在Xml解析上,兼容DOM、XMLPull和SAX,同時數據交換格式上,android雖然不支持LINQ但對於Java來說JSON同樣支持。

  3)對於Http處理方面,提供了輕量級的Http處理類,以及更完善的apache庫支持。

  4)音頻方面android比較強大,使用了OpenCore庫,很多地方我們可以自己編寫編碼、解碼器進行擴展。

  5)android在文件系統上基本山和Java是相同的,不過對於高效率的內存影射文件而言提供了android.os.MemoryFile這個類。

  總體而言,Java程序員轉入android開發只需要了解平台特有的,Intent,Service,Receiver和Activity就差不多了,深入了解下AIDL和UI控件和自定義Widget基本上可以勝任常規的工作。

  9、Q:android最簡單播放GIF動畫方法是什麼?

  A:GIF動畫的原理就是逐幀播放,在android中提供了AnimationDrawable類可以實現,GIF89A的解碼方法在過去的J2ME平台移植到Android平台也能用,其實在Google android上面開發目前2.2以後的固件支持的方法除了Flash Player外,更好的兼容方法就是使用萬能的webkit浏覽器了。直接在工程中內嵌一個webVIEw,當然了路徑大家可以換成本地的,對於浏覽器使用本地資源url為file://開頭。

  不過webView的資源消耗也不小,開個webVIEw對象可能占用了至少8MB的RAM吧,保守估計,當然更多的要看插件和以及Html的復雜程度所決定的。

  10、Q:線程在android應用當中的作用?

  A:1)動態更新UI 如AsyncTask 類,在開發Android應用時必須遵守單線程模型的原則: android UI操作並不是線程安全的並且這些操作必須在UI線程中執行

  2)SOCKET之間的通信

  3)文件的下載

  4)與服務端之間的交互

  5)復雜數據和邏輯的處理

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved