《Android底層介面與驅動開發技術詳解》digest

來源:互聯網
上載者:User

標籤:android   io   ar   os   使用   java   sp   for   檔案   

第一章:
IDE:Eclipse ADT for java developer
其它: Apache Ant Java SE Development Kit5或6 Linux和Mac上使用Apache Ant 1.65+,
Windows上使用1.7+版本;(單獨的JRE是不可以的,必須要有JDK),不相容Gnu Java編譯器(gcj)

 

 


Java_Home x:\xx\xx\java\JDK1.6.0-17
classpath:.;%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar

Android為Eclipse定製一個專用外掛程式---Android Development Tools(ADT),此外掛程式為使用者提供一個強大的開發Android應用程式的綜合環境。
ADT擴充了Eclipse功能,可以讓使用者快速地建立Android項目,建立應用程式介面。
安裝Android Development Tools plug-in

AVD(Android Virtual Device),每個AVD類比一套虛擬設備來運行Android平台,這個平台至少要有自己的核心、系統映像和資料分區,還可以有
自己的SD卡和使用者資料及外觀顯示器等。

Commnad:
Android list targets查看可用的平台

開發環境:
JDK,開發工具Eclipse、Android SDK,安裝了ADT並進行SDK HOME的配置,建立一個AVD或使用真機(需要裝驅動)


第二章:
驅動含有推動和發動之意,電腦領域的驅動也含有推動之意。

驅動程式是硬體廠商根據OS編寫的設定檔,沒有驅動程式,電腦中的硬體就無法工作(因為OS和硬體不認識,沒法交流)。
驅動程式是硬體的一個構成部分,當安裝新的硬體時,也必須安裝對應的驅動程式。

windows是怎麼知道安裝的是什麼裝置,以及要複製哪些檔案呢:安裝是.inf檔案。
.inf是從Windows95時代開始引入的一種描述裝置安裝資訊的檔案,它使用特定的文法文字來說明要安裝的裝置類型、生產廠商、型號、要複製的檔案、複製到的目標路徑,以及要添加到註冊表中的資訊。通過讀取和解釋這些文字,Windows可以知道應該如何安裝驅動程式。
其它.inf檔案不僅可以安裝驅動程式,還可以安裝與硬體並沒有什麼關係的軟體,如Windows系統支援的“Windows更新”功能,在更新時下載的系統組件就是使用.inf檔案來說明如何安裝該組件的。


所謂手機驅動,就是有的手機和電腦不能直接連接,必須使用手機內建的磁碟驅動一下。其它就是安裝了一個讀取手機記憶體資訊的程式。

如果通過串口串連電腦,一般不需要驅動程式,但需要用軟體來實現和手機的串連。手機的附贈光碟片中通常會有這樣的軟體。


Android SDK目錄:
add-ons:裡麵包含官方提供的API包,最主要的是Map的API
docs:裡麵包含文檔,即協助文檔和說明文檔
platforms:針對每個版本的SDK版本提供了和其對應的API包以及一些樣本檔案,其中包含各個版本的Android
temp:包含一些常用 的檔案模版
tools:包含一些通用的工具檔案
usb_driver:包含AMD64和x86下的驅動檔案
SDK Setup.exe:Android的開機檔案

SDK工具集:
Android模擬器:模擬器是運行在電腦上的虛擬行動裝置。

調試監視服務ddms.bat
Android調試橋adb.exe:adb是具有多種用途的工具,可以協助管理裝置和模擬器的狀態:
可以通過下面幾種方法加入adb:
(1)在裝置上運行shell命令
(2)通過連接埠轉寄來管理模擬器或複製檔案
(3)從模擬器或裝置上複製來或複製走檔案

 

Android資源打包工具aapt.exe:此工具可以建立apk檔案,在apk檔案中包含了Android應用程式的二進位檔案和資源檔

Android介面描述語言aidl.exe:用於產生進程間介面代碼
建立SD卡工具
Dx工具dx.bat將class位元組碼重寫為Android位元組碼(被儲存在dex檔案中)
產生Ant構建檔案activitycreator.bat
avd


Android作為一個行動裝置的平台,其軟體階層包括OS,中介軟體Middle Ware和應用程式Applications


SSL Secure Socket Layer:位於TCP/IP協議與各種應用程式層協議之間,為資料通訊提供安全支援

FreeType:位元影像和向量字型的功能


Android的各種庫一般是以系統中介軟體的形式提供的,它們均有一個顯著特點是與行動裝置平台的應用密切相關。


Android運行環境主要是指虛擬機器技術-Dalvik。
Dalvik虛擬機器和一般Java虛擬機器不同,它執行的不是Java標準的位元組碼(ByteCode),而是Dalvik可執行格式(.dex)中執行檔案

在執行過程中,每個應用程式即一個進程(Android中一個應用就會對應Linux一個使用者,Linux的一個Process).
二者的最大區別在於,Java VM是基於棧的虛擬機器(Stack-based),而Dalvik是基於寄存器的虛擬機器(Register-Based).
顯然,後者的最大好處在於可以根據硬體實現更大的最佳化,這更適合行動裝置的特點。

一個Android應用程式可以利應用程式架構中以下幾個部分:
Activity(活動)
Broadcast Intent Receiver(廣播意圖接收者)
Service(服務)
Content Provider(內容提供者)
Intent and Intent Filter

Androidmanifest.xml相當於應用的設定檔,在這個檔案中必須聲明應用 的名稱,應用所用到的Activity,Service以及receiver等

 


Android根據每個進程中啟動並執行組件及組件的狀態把進程放入一個Importance Hierarchy(重要性分級)
。進程按照重要程式分類可分為以下5類:
前台進程(foreGround)
可見進程Visible
服務進程Service
後台進程Background
空進程Empty:不擁有任何活動的應用程式組件的進程。保留這種進程的唯一原因是在下次應用程式的某個組件需要運行時,不需要重新建立進程,這樣可以提高啟動速度

 

Linux和Android的關係如下:
Andorid採用Linux作為核心
Android對Linux核心做了修改,以適應其在行動裝置上的應用
Android開始是作為Linux的一個分支,後來由於無法併入Linux的主開發樹,已被Linux核心組從開發樹中刪除(2010.2)

 

Android是在Linux2.6的核心基礎上啟動並執行,提供核心系統服務。

核心部分還相當於一個介於硬體層和系統中其它軟體組之間的一個抽象層


Android系統的系統層面的底層是LInux,中間加上了一個叫做Dalvik的Java虛擬機器,表面層上面是Android運行庫

 

在Android系統中,採用Yaffs2作為MTD nand flash檔案。

核心的作用就是將應用程式和硬體分離開來
核心的主要任務是負責與電腦硬體進行互動,實現對硬體的編程式控制制和介面操作,高度對硬體資源的訪問。除此之外,核心為使用者應用程式提供一個進階的執行環境和訪問硬體的虛擬介面。


字元裝置:提供串連的資料流,應用程式可以順序讀取,通常不支援隨機存取。此類裝置運行按位元組/字元來讀寫資料,modem就是字元裝置
塊裝置:應用程式可以隨機訪問裝置資料,程式可自行確定讀取資料的位置。硬體

如果以一個原始的Linux OS為基礎,改造成一個適合於Android系統,所做的工作其實非常簡單,就是增加適用於Android的驅動程式。

 

Android的RIL(Radio Interface Layer)提供了電話語音和Radio硬體之間的抽象層。RIL負責資料的可靠傳輸,AT命令的發送,以及Respose的解析。
應用處理器通過AT命令集與帶GPRS功能的無線通訊模組通訊。AT commnad由Hayes公司發明,是一個數據機製造商採用折一個數據機命令語言,每條命令以字母“AT“開頭

《Android底層介面與驅動開發技術詳解》digest

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.