導航:首頁 > 操作系統 > android驅動深度探索

android驅動深度探索

發布時間:2022-05-17 04:05:04

android驅動開發好了,怎麼調試

本文用《Android深度探索(卷1):HAL與驅動開發》的隨書源代碼為例詳細說明如何配置Android驅動開發和測試環境,並且如何使用源代碼中的build.sh腳本文件在各種平台(Ubuntu linux、Android模擬器和S3C6410開發板)上編譯、安裝和測試Linux驅動。建議讀者使用Ubuntu Linux12.04或更高版本實驗本文的方法。最好用root賬號登錄Linux。
一、安裝交叉編譯器
如果只是在Ubuntu Linux上測試Linux驅動就不需要安裝交叉編譯器了,但要在Android模擬器或S3C6410開發板上進行測試,就必須安裝交叉編譯器。
首先下載交叉編譯器(分卷壓縮

下載後解壓,會發現有兩個tgz文件,可以將這兩個文件放到/root/compilers目錄中,在Linux終端進入該目錄,執行如下命令安裝交叉編譯器。
[plain] view plain
# tar zxvf arm-linux-gcc-4.3.2.tgz -C /
# tar jxvf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C /
二、編譯和測試Linux內核
這里的Linux內核有兩個,一個是goldfish,也就是Android模擬器使用的Linux內核、另外一個是S3C6410開發板使用的Linux內核(Linux2.6.36)。讀者首先要下載這兩個Linux內核。

Android模擬器用的Linux內核源代碼(分卷壓縮)

用於S3C6410開發板的Linux內核源代碼(分卷壓縮)
分卷1
分卷2

由於隨書代碼中的word_count驅動已經在goldfish和linux2.6.36中分別建立了符號鏈接,以便在編譯linux內核時同時也會編譯word_count驅動,所以linux內核與源代碼目錄應與作者機器上的目錄相同。也就是兩個linux內核目錄與源代碼目錄如下:
linux內核目錄
/root/kernel/goldfish
/root/kernel/linux_kernel_2.6.36
源代碼目錄
/root/drivers
注意/root/drivers目錄下就直接是每一章的源代碼了,例如/root/drivers/ch06、/root/drivers/ch07
現在需要將/usr/local/arm/arm-none-linux-gnueabi/bin路徑加到Linux的PATH環境變數中(不會加的上網查,這是Linux的基本功)
最後進入/root/compilers/goldfish目錄,執行make命令編譯linux內核,如果完全編譯,大概20分鍾左右。編譯完成後,會在/root/kernel/goldfish/arch/arm/boot目錄中生成一個zImage文件,代碼1.7MB,這就是用於Android模擬器的Linux內核文件。
三、編譯Linux驅動
現在來編譯隨書光碟的驅動程序,這里以word_count驅動為例。在Linux終端進入/root/drivers/ch06/word_count目錄。先別忙著編譯。首先要設置打開/root/drivers/common.sh文件,修改第一行UBUNTU_KERNEL_PATH變數值為自己機器上安裝的Ubuntu Linux內核路徑,只要執行「ls /usr/src」命令即可查看當前機器可用的linux內核。如可以設置下面的路徑。
UBUNTU_KERNEL_PATH=/usr/src/linux-headers-3.2.0-23-generic
剩下的兩個(S3C6410_KERNEL_PATH和/root/kernel/goldfish)只要按著前面的路徑解壓Linux內核源代碼,就不用設置了。
在word_count目錄中執行「source build.sh」命令,會允許選擇在哪個平台上編譯驅動,直接按回車會在Ubuntu Linux上編譯。如果編譯成功,會發現當前目錄多一個word_count.ko文件(驅動文件)。
現在來編譯S3C6410上運行的word_count驅動。先別忙,在編譯之前,需要Android中的adb命令。因為build.sh足夠只能,在編譯完後,如果有多個Android設備連接到PC,會允許用戶選擇上傳到哪個設備裝載,這里需要選擇S3C6410開發板,然後會直接上傳到開發板上,如圖1所示。
可以直接使用adb shell命令進入開發板,也可以使用/root/drivers/shell.sh腳本完成同樣的工作,只是後者如果有多個android設備,會允許用選擇,而不是輸入相應的設備ID。使操作更方便。在/root/drivers目錄中提供了很多這樣的腳本(shell.sh、push.sh、pull.sh等),這些腳本都會允許用戶選擇操作的Android設備。
我們通常使用Android SDK中的adb命令,到官方網站下載裝載linux版本的Android SDK,然後將<AndroidSDK根目錄> /platform-tools加到PATH環境變數中。
現在再次執行「source build.sh」命令,選擇第2項(S3C6410開發板),如果系統沒找到開發板,需要將USB線拔下重插一下。然後就可以進入開發板的終端,輸入lsmod命令查看驅動的安裝情況了。
如果在模擬器上測試,選第3項。具體測試的方法請參見書中相應的章節。
四、測試Linux驅動
測試word_count驅動的方法很多,通過命令行測試的方法請參見書中相應的章節,在word_count目錄中有一個test_word_count程序,通過執行如下的命令可以測試word_count驅動,編譯test_word_count.c程序的方法書中已詳細描述。
test_word_count 「abc bb cc」
上面的命令會輸出單詞數為3。
如果要編譯Android HAL,需要Android源代碼。購買S3C6410開發板時商家通常會帶一些光碟,裡面有用於開發板的Android源代碼,如果商家沒給光碟,別忘了要哦!

⑵ 如何學習android 驅動開發

隨著智能手機的飛躍發展,特別是Android智能機的爆炸性發展,Android驅動工程師是越來越受歡迎的一個職位,而且是一個非常值得人期待的職位,因為可能你參與研發的一款手機就能改變了很多人的生活,所以,進階吧,Android驅動程序猿,那怎樣成為一名優秀的Android驅動程序猿,我來發表一下我的意見吧,希望各位網友不要輕易拍磚。

Android驅動的基礎知識
首先作為Android驅動程序猿,你必須清楚的了解你要做的是什麼,平時需要用到的基礎知識,對Android的基本框架的了解還是非常的有必要,對linux下的編程基礎也需要了解,因為嚴格來說,Android驅動是基於Linux驅動,個人強烈推薦閱讀Linux Device Driver 3rd版,這本書講了Linux下設備驅動的基礎知識,作為Android驅動程序猿,你需要能最好讀懂這本書,而且是反復的閱讀這本書,因為我發現每次重新讀這本書,都有新的收獲,這本書很值得一讀,強烈五星級推薦;而且還要會基本的C編程,能很好的讀懂和編寫一些C程序,而且懂一些基礎的Java那就更好了,因為Framework層的代碼與驅動層的代碼聯系也比較緊密,稍微懂一些Java代碼,你會發現你對整個驅動框架的了解會更加的熟悉,相關的Linux編譯腳本和Linux編譯體系,因為商業開發的一些原因,Android本身的文件架構體系可能會被一些編譯腳本而改變,加入新設備驅動,你需要了解整個的驅動編譯體系,那樣書寫驅動程序也會更加的清晰!
\
Android/Linux相關驅動框架知識
為詳細了解一下Android驅動程序員需要會的技術,我特意網路了各家Android驅動程序員招聘需求對Android程序猿的要求,選擇哪幾家呢,國產手機的代表,中興,華為,酷派,聯想,小米,魅族,VIVO都是非常不錯的國產手機廠商,而且研發的Android智能手機越來越好,我甚至還專門去看了一下新興Android智能機公司,包括錘子手機官網的Android驅動工程師招聘需求,One Plus One的官網連個加入我們的鏈接都木有,創業型的公司不知道是人才暫時飽和,還是啥原因,居然沒有招聘信息,匯總發現,這些公司要求差異不是特別大,出了需要基本的Android調試能力,你還需要對Android各模塊驅動框架的了解,比如,某錘科技的Android驅動工程師招聘需求,大夥可以去試試,錘子手機號稱是在做最好的手機,比目前的旗艦手機都要好一點點,加入它,還蠻有期待的! \ 某米公司的Android驅動工程師也需要Android/Linux相關的知識,中興和聯想的Android招聘需求就比較籠統了,估計是大公司的緣故吧, \ 中興的官網居然開始找不到驅動工程師的招聘,我的個神,廢了我好大勁,才找到相關的招聘信息! \
相關的硬體知識和通信知識
Android驅動平時工作就是調試各種外圍設備,是直接跟硬體打交道的職位,需要你看的懂電路原理圖,了解基本的顯示原理和基本的攝像頭成像原理等等,這是跟你平時工作非常相關的基礎知識,做Android智能手機,你也需要了解基本的通信相關知識,射頻原理和基本的Modem相關知識,只有懂相關的硬體知識和通訊設備相關的基礎知識,你才可以寫出更好的Android驅動程序,才能調試出更滿意的效果!

熱愛驅動開發和不斷學習
其實這點是非常的重要,應該擺在第一位,首先是你必須喜歡這份工作,你才可以做的更好,興趣是最好的老師,這句話是真心的大實話,而目前的社會狀態是什麼賺錢,就一窩蜂的沖去做那個,結果,最後可能做的很不開心,然後,錢也沒撈到;如今,我的大學同學很有一部分都放棄了所學的專業對口工作,有去賣保險的,有去工廠做普工的,有去做銷售的,有去吃鐵飯碗的,當然職業肯定不分貴賤好壞,我說這一點,主要是建議大家去堅持最初的夢想!我的夢想就是做出一款可以改變人們生活的移動終端,讓這個世界因為我而有一點點的不同,童鞋們,一起堅持夢想吧! 此外,做Android驅動工程師需要的是不斷的學習,時刻保持著一股激情,不斷的學習才能更好的完成日常的驅動開發任務,並能保持對開發的的敏銳感覺,我覺得喬布斯的:Stay hungry,Stay foolish說的很好,一直被當做是我的座右銘,來激勵我堅持做一個更好的Android驅動工程師,寫這篇博客的目的就是分享我的一些小看法,日後我還是會不斷更新我的博客,分享一些驅動開發相關的文檔和博客,和廣大的驅動程序猿一起進步!

⑶ android手機驅動程序是什麼有什麼用

應該是Android手機系統平台的一個軟體,比如:把手機當成U盤的MountUSB,是一個點擊工具,它允許您安裝或unmout作為USB大容量存儲設備的SD卡。

⑷ 如何學Android驅動開發

驅動都是使用C寫的,所以你想搞底層驅動開發,你要有一定的C基礎。對於開發驅動來說,Windows系統是非常不適合的,特別是Android本身就是Linux內核,所以你也要掌握Linux操作系統,比如腳本的編寫,C代碼的編譯等等。

⑸ 做Android驅動開發需要了解哪些方面的知識

匯流排知識,比如PCI、USB匯流排。晶元知識。驅動其實就是對設備上一些寄存器的配置、CPU與設備本身的通訊以及對不同命令的處理。

⑹ 如何件android中的命令移植到linux開發板上,想使用android中的一些命令,方便開發,比如logcat命令

本文用《Android深度探索(卷1):HAL與驅動開發》的隨書源代碼為例詳細說明如何配置Android驅動開發和測試環境,並且如何使用源代碼中的build.sh腳本文件在各種平台(UbuntuLinux、Android模擬器和S3C6410開發板)上編譯、安裝和測試Linux驅動。
建議讀者使用UbuntuLinux12.04或更高版本實驗本文的方法。
最好用root賬號登錄Linux。
一、安裝交叉編譯器
如果只是在UbuntuLinux上測試Linux驅動就不需要安裝交叉編譯器了,但要在Android模擬器或S3C6410開發板上進行測試,就必須安裝交叉編譯器。
首先下載交叉編譯器(分卷壓縮)
下載後解壓,會發現有兩個tgz文件,可以將這兩個文件放到/root/compilers目錄中,在Linux終端進入該目錄,執行如下命令安裝交叉編譯器。
[plain]viewplain
#tarzxvfarm-linux-gcc-4.3.2.tgz-C/
#tarjxvfarm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2-C/
二、編譯和測試Linux內核
這里的Linux內核有兩個,一個是goldfish,也就是Android模擬器使用的Linux內核、另外一個是S3C6410開發板使用的Linux內核(Linux2.6.36)。
讀者首先要下載這兩個Linux內核。
Android模擬器用的Linux內核源代碼(分卷壓縮)
用於S3C6410開發板的Linux內核源代碼(分卷壓縮)
分卷1
分卷2
由於隨書代碼中的word_count驅動已經在goldfish和linux2.6.36中分別建立了符號鏈接,以便在編譯linux內核時同時也會編譯word_count驅動,所以linux內核與源代碼目錄應與作者機器上的目錄相同。
也就是兩個linux內核目錄與源代碼目錄如下:
linux內核目錄
/root/kernel/goldfish
/root/kernel/linux_kernel_2.6.36
源代碼目錄
/root/drivers
注意/root/drivers目錄下就直接是每一章的源代碼了,例如/root/drivers/ch
06、/root/drivers/ch07
現在需要將/usr/local/arm/arm-none-linux-gnueabi/bin路徑加到Linux的PATH環境變數中(不會加的上網查,這是Linux的基本功)
最後進入/root/compilers/goldfish目錄,執行make命令編譯linux內核,如果完全編譯,大概20分鍾左右。
編譯完成後,會在/root/kernel/goldfish/arch/arm/boot目錄中生成一個zImage文件,代碼1.7MB,這就是用於Android模擬器的Linux內核文件。
三、編譯Linux驅動
現在來編譯隨書光碟的驅動程序,這里以word_count驅動為例。
在Linux終端進入/root/drivers/ch06/word_count目錄。
先別忙著編譯。
首先要設置打開/root/drivers/common.sh文件,修改第一行UBUNTU_KERNEL_PATH變數值為自己機器上安裝的UbuntuLinux內核路徑,只要執行「ls/usr/src」命令即可查看當前機器可用的linux內核。

⑺ 各位童鞋們,誰能推薦本好的android嵌入式開發的學習書籍,android底層相關的書籍

Android深度探索(卷1) HAL與驅動開發 AndroidHAL開發的實戰書籍 Android Studio軟體編程應用開發從入門到精通

⑻ 怎樣做更好的Android驅動工程師

隨著智能手機的飛躍發展,特別是Android智能機的爆炸性發展,Android驅動工程師是越來越受歡迎的一個職位,而且是一個非常值得人期待的職位,因為可能你參與研發的一款手機就能改變了很多人的生活,所以,進階吧,Android驅動程序猿,那怎樣成為一名優秀的Android驅動程序猿,我來發表一下我的意見吧,希望各位網友不要輕易拍磚。

Android驅動的基礎知識
首先作為Android驅動程序猿,你必須清楚的了解你要做的是什麼,平時需要用到的基礎知識,對Android的基本框架的了解還是非常的有必要,對linux下的編程基礎也需要了解,因為嚴格來說,Android驅動是基於Linux驅動,個人強烈推薦閱讀Linux Device Driver 3rd版,這本書講了Linux下設備驅動的基礎知識,作為Android驅動程序猿,你需要能最好讀懂這本書,而且是反復的閱讀這本書,因為我發現每次重新讀這本書,都有新的收獲,這本書很值得一讀,強烈五星級推薦;而且還要會基本的C編程,能很好的讀懂和編寫一些C程序,而且懂一些基礎的Java那就更好了,因為Framework層的代碼與驅動層的代碼聯系也比較緊密,稍微懂一些Java代碼,你會發現你對整個驅動框架的了解會更加的熟悉,相關的Linux編譯腳本和Linux編譯體系,因為商業開發的一些原因,Android本身的文件架構體系可能會被一些編譯腳本而改變,加入新設備驅動,你需要了解整個的驅動編譯體系,那樣書寫驅動程序也會更加的清晰!
\
Android/Linux相關驅動框架知識
為詳細了解一下Android驅動程序員需要會的技術,我特意網路了各家Android驅動程序員招聘需求對Android程序猿的要求,選擇哪幾家呢,國產手機的代表,中興,華為,酷派,聯想,小米,魅族,VIVO都是非常不錯的國產手機廠商,而且研發的Android智能手機越來越好,我甚至還專門去看了一下新興Android智能機公司,包括錘子手機官網的Android驅動工程師招聘需求,One Plus One的官網連個加入我們的鏈接都木有,創業型的公司不知道是人才暫時飽和,還是啥原因,居然沒有招聘信息,匯總發現,這些公司要求差異不是特別大,出了需要基本的Android調試能力,你還需要對Android各模塊驅動框架的了解,比如,某錘科技的Android驅動工程師招聘需求,大夥可以去試試,錘子手機號稱是在做最好的手機,比目前的旗艦手機都要好一點點,加入它,還蠻有期待的! \ 某米公司的Android驅動工程師也需要Android/Linux相關的知識,中興和聯想的Android招聘需求就比較籠統了,估計是大公司的緣故吧, \ 中興的官網居然開始找不到驅動工程師的招聘,我的個神,廢了我好大勁,才找到相關的招聘信息! \
相關的硬體知識和通信知識
Android驅動平時工作就是調試各種外圍設備,是直接跟硬體打交道的職位,需要你看的懂電路原理圖,了解基本的顯示原理和基本的攝像頭成像原理等等,這是跟你平時工作非常相關的基礎知識,做Android智能手機,你也需要了解基本的通信相關知識,射頻原理和基本的Modem相關知識,只有懂相關的硬體知識和通訊設備相關的基礎知識,你才可以寫出更好的Android驅動程序,才能調試出更滿意的效果!

熱愛驅動開發和不斷學習
其實這點是非常的重要,應該擺在第一位,首先是你必須喜歡這份工作,你才可以做的更好,興趣是最好的老師,這句話是真心的大實話,而目前的社會狀態是什麼賺錢,就一窩蜂的沖去做那個,結果,最後可能做的很不開心,然後,錢也沒撈到;如今,我的大學同學很有一部分都放棄了所學的專業對口工作,有去賣保險的,有去工廠做普工的,有去做銷售的,有去吃鐵飯碗的,當然職業肯定不分貴賤好壞,我說這一點,主要是建議大家去堅持最初的夢想!我的夢想就是做出一款可以改變人們生活的移動終端,讓這個世界因為我而有一點點的不同,童鞋們,一起堅持夢想吧! 此外,做Android驅動工程師需要的是不斷的學習,時刻保持著一股激情,不斷的學習才能更好的完成日常的驅動開發任務,並能保持對開發的的敏銳感覺,我覺得喬布斯的:Stay hungry,Stay foolish說的很好,一直被當做是我的座右銘,來激勵我堅持做一個更好的Android驅動工程師,寫這篇博客的目的就是分享我的一些小看法,日後我還是會不斷更新我的博客,分享一些驅動開發相關的文檔和博客,和廣大的驅動程序猿一起進步!
轉載

⑼ 如何在android安卓添加或載入設備驅動

驅動裝到手機上,把模塊連接的時候根據提示操作就行了!
就像iPhone的App Store一樣,Android也有自己的「Market」,目前Market上每天都有新增加的軟體和游戲,並且現階段出現的所有應用軟體和程序都是免費的。以下是Market使用教程:
1.打開G1的主菜單,找到並開啟Market軟體商店。在Macket主菜單中:
AndroidApplications:經過Google認可的Android軟體。
AndroidGames:經過Google認可的Android游戲。
AndroidSearch:搜索Market軟體商店裡的軟體。
AndroidMy downloads:查看你從Market下載好的軟體。
Android主菜單上面可以滾動的圖標是Google官方隨機推薦的一些第三方軟體。
2. 先點擊「Applications」後,會出現所有的第三方軟體分類,除了第一個All applications是指查看所有的第三方軟體之外,其他均為細分類。隨便點擊一個分類,則會出現該分類下的所有對應軟體,默認情況下By popularity是指按人氣由高到低的順序顯示該分類下的軟體,By date則是按照時間的先後順序來顯示該分類下的軟體。
3. 點擊一個軟體,你將會看到該軟體的詳細功能描述、網友評論、作者信息。如果你想安裝此軟體,可以直接點擊「Install」,那麼此時屏幕中將會顯示該軟體可能會涉及到的G1相關功能、個人隱私信息等提示,沒有問題的話,你就可以直接點擊「OK」,來下載並安裝此軟體了。
4. 如果你不想安裝此軟體,可以點擊「Cancel」來取消,如果你此時想進行更多操作,請點擊屏幕下方的 MENU按鈕,在屏幕下方出現的白色窗口裡:
AndroidMarket home:回到Market首頁
AndroidSearch:開始搜索Market里的軟體
AndroidMy downloads:查看已經下載好的軟體
AndroidHelp:上網查看Market的相關使用幫助
AndroidSecurity:查看該軟體所涉及的安全信息
AndroidFlag content:標記軟體內容

Search——軟體搜索篇
5. 如果你點擊Search,畫面頂部將會出現搜索欄,此時你可以隨意輸入你喜歡的軟體名稱,然後點擊Search即可。

My downloads——已下載軟體查看及卸載
6. 如果你點擊My downloads,此時將會出現的軟體列表即為你從Market上下載並安裝的軟體。若你想寫在寫在某個軟體,只需要找到並點擊這個軟體,然後在點擊「Uninstall」即可完成卸載工作!

⑽ 做android驅動開發有前途嗎

做驅動的話,需要的知識體系比較雜,相對難學一些,學習的過程是個先難後易的過程。核心的東西一般變化很小,所以驅動的知識體系不容易被淘汰,比如說之前我是做純 linux 電子書驅動的,後來做 android 驅動,這兩個東西用的都是 linux 內核,驅動其實沒區別,另外,megoo 系統也是用的 linux 內核。當然,要是做 windows phone 的話,代碼構架上、理念上是兩個體系,驅動構架、理念要另外學的。就我經驗而言,理工科/計算機系的做驅動的比較多一些,存軟體的做上層多些。

Android 上層分幾部分的,有做純應用的,有做 framework 的,兼而有之的也有,不過都差不多。Android 上層容易學,容易掌握。現在也是應用為王的時代,前景也挺廣闊的。也正是這個容易學,所以做這方面的人也可能比較多一些。如果能做出牛B的應用,前景無限!做純應用,若是有好的想法,可以幾個人出來單干,團隊不用很大!

從工資來看,做 android 驅動 和做 android 應用,我所在公司目前來說都差不多,估計其他公司差別也不大,基本是看工作年限給工資。
前景好不好不敢說,這事說不準的,三十年河東,三十年河西,看運氣,也不是每個人一定就會在這一行一直幹下去的。僅就目前來說,這一行的工資在中國算是高的。

閱讀全文

與android驅動深度探索相關的資料

熱點內容
python二次開發cad 瀏覽:302
程序員直播機器人舞團 瀏覽:767
devc指針編譯問題 瀏覽:998
支持dsd硬解壓音效卡 瀏覽:769
怎麼查看u盤加密區 瀏覽:182
台電加密是什麼格式 瀏覽:155
php論壇版塊在哪個文件夾 瀏覽:442
暗黑的伺服器為什麼維護 瀏覽:624
android內存溢出的原因 瀏覽:18
標志307的壓縮比是多少 瀏覽:636
伺服器啟動為什麼叫三聲 瀏覽:997
追風箏的人英文pdf 瀏覽:940
解壓小熊手機殼 瀏覽:347
成都市區建成面積演算法 瀏覽:662
智能家居單片機 瀏覽:98
買男裝用什麼app好 瀏覽:856
文件夾合並了怎麼拆開 瀏覽:262
波段副圖源碼無未來函數 瀏覽:91
livecn伺服器地址 瀏覽:259
程序員這個工作真的很吃香嗎 瀏覽:848