Android嵌入式開發

來源:互聯網
上載者:User

想要做Android嵌入式開發,你可以看看下面的內容

參考文檔:http://blog.csdn.net/zkycdy/article/details/8296384

一:首先你必須瞭解ARM平台 Android 移植與驅動核心開發,當然也可以是X86和其他的平台,不過其他平台的Android智能終端開發並不是很多。
        Android嵌入式智能作業系統是基於Linux核心和驅動的,對於HTC、華為等公司開發Android作業系統時,需要專門將Android移植到 特定硬體平台下,同時將必要的驅動進行編寫及開發。成為Android的核心層開發人員,在這種嵌入式裝置廠商中謀得核心開發人員。

1. Android系統的開發架構和開發模型

   做Android嵌入式開發,這個是必須的基礎,你必須清楚Android開發的整個架構,知道一些必要的開發模型和程式模組,這個有助於你快速的理解Android嵌入式開發


2. Android系統體系及移植相關工具
            1.1Android作業系統體繫結構介紹,Android Linux核心移植介紹,檔案系統,toolbox等移植,儲存驅動移植。Bootloader相應方案與移植以及Android虛擬器Dalvik移植介紹。
            1.2ARM處理器介紹。
                ARMv5TJS。
                ARM中斷處理。
                ARM體繫結構與ARM處理器的體繫結構。
                IP核、晶片與開發板。
                ARM處理器結構處理器模式。
                   . 寄放器。
                   . 流水線結構。
                C語言內嵌彙編款式與編程執行個體。
            1.3ARM指令系統。
                 .算術邏輯指令  .指令對狀態寄放器的影響  .對比指令 .分支指令  .移位  .指令位元影像 .辨認機器指令。
            1.4記憶體造訪與記憶體把持。
                .資料匯流排與地址匯流排的應用與執行個體。
                .STR/LDR 。
            1.5ARM曆程調用標準。
                .LDM/STM。
                .反組譯碼。
                .APCS。
                .C語言函數與彙編的互相調用。
     【案例】應用Android Linux patch進行Linux核心的構建
 3. AndroidLinux核心移植與核心開發
            2.1ARM處理器的Android系統構建。
            2.2輸入輸出裝置驅動移植 。
            2.3存放裝置nand flash,MMC/SD卡驅動移植。
            2.4Framebuffer移植 。
            2.5 Touchscreen移植 。
            2.6 Open Binder IPC移植。
          【案例】
             2.7在ARM處理器上移植Android實驗 。
             2.8編寫Nand flash驅動。
              2.9移植Framebuffer驅動。
              2.10硬體相關部分(鍵盤、觸控螢幕、LCD等)。
4. Android相關環境庫、以及Bionic系統移植
            3.1libc移植 。
            3.2libm移植 。
            3.3libdl移植。
            3.4libm移植。
            3.5 busybox, toolbox移植。
        【案例】
                1.移植glibc。
               2.移植busybox和toolbox。
5. Android Dalvik移植一
          4.1 JNI Call Bridge相關原理 。
            4.2 dx, dalvitvm原理和應用。
           4.3 Dalvik指令款式。
            4.4 Dalvik履行款式dex 。
            4.5 Java位元組碼款式。
6. Android Dalvik移植二
            5.1 Dalvik Library原理 。
            5.2 dalvit libcore核心庫移植。
            5.3 dalvit/vm/native移植。
            5.4 Dalvik Interpreter原理 。
            5.5 Dalvik Mterp。

7. ARMAT&T彙編
            6.1AT&T彙編文法詳解 。
            6.2gas工具的應用 。
            6.3label標籤的作用。
            6.4資料與代碼的散播。
8. 連結指令碼ld-script
           7.1 段地址的斷定。
           7.2 編寫ld-script。
           7.3 ELF款式與libc函數庫的關係。
9. 時序電路根基
            8.1電平訊號 。
           8.2 電路圖分析。
            8.3時序圖分析。
            8.4datasheet查看 。
            8.5s3c2440的外圍器件結構。
            8.6GPIO操作。
 10. AMBA匯流排標準
           9.1 AMBA匯流排標準 。
           9.2 FCLK/HCLK/PCKL頻率分配與設定。
           9.3 Watchdog計時操作。
           9.4 UART操作 。
           9.5 ARM中斷體系。
           9.6 異常向量表。
           9.7 ARM模式切換。
            9.8 ARM中斷把持器 。
            9.9 非強制中斷。
            9.10 Linux系統調用的實現。
11. Nand Flash把持器
            10.1 Flash原理。
            10.2 Nand把持器原理及時序分板。
            10.3k9f1208時序分析。
12. 記憶體把持器
             11.1 s3c2440物理地址散播 。
             11.2 SDRAM原理與時序。
             11.3 記憶體把持器的物理串連。
             11.4 地址對齊 。
             11.5 SRAM造訪。
13. 記憶體管理單元
             12.1 MMU的原理 。
              12.2ARM副處理器指令。
              12.3 section模式。
              12.4 small page模式 。
              12.5 I & D TLBs 。
              12.6 I & DCache。
              12.7 哈佛結構的原理與實現。
14. DMA 直接記憶體造訪的機制與應用
            13.1 DMA的狀態機器 。
             13.2 DMA的把持。
15. 觸控螢幕介面與ADC介面 與執行個體
             14.1 ADC原理 。
             14.1 觸控螢幕介面與把持。
16. LCD把持器
              15.1 圖形顯示原理。
              15.2 LCD把持器。
              15.3 LCD時序。
              15.4 LCD驅動相關的架構與體系 。

17. I2S音頻匯流排
               16.1音頻硬體原理。
               16.2 I2S時序。
               16.3 s3c2440上I2S的操作。
               16.4音訊裝置的裸驅動討論。

18. CS8900網卡把持
               17.1 邏輯鏈路層與MAC層。
               17.2 CS8900原理與時序分析。
               17.3後續網卡裸驅動討論與體繫結構。

19. TCP/IP協議棧移植,與網路體繫結構
              18.1 LwIP TCP/IP協議棧簡介 。
              18.2 LwIP配置與編譯。
              18.3 tftp配置與編譯。

20. Bootloader原理與移植
               19.1u-boot的配置、編譯 。
               19.2u-boot啟動曆程分析。
               19.3ARM-Linux的啟動請求。
               19.4 ARM-Linux kernel的ld-sript分析 。
               19.5 u-boot到ARM-Linux的跳轉程式碼分析 。
               19.6應用mkimage製作啟動鏡像檔案。

21. ARM-Linux原理與移植
               20.1ARM-Linux的配置、編譯 。
               20.2ARM-Linux啟動程式碼分析。
               20.3ARM-Linux 地址映射的關係。
               20.4 Busybox的配置、編譯 。

22.ARM等平台的調試測試技巧

  會熟悉的使用一些測試指令碼對自己的驅動進行測試,或者對嵌入式硬體作簡單的測試,這個對於做Android嵌入式開發的開發人員十分的有必要!
 
  最後需要說的是,學會Android嵌入式開發最好的方法是實踐,你需要做的是不斷的去實踐這些知識,參與一些開源的Android工程,或者是最好可以進入一家做android開發的公司鍛煉鍛煉,這是做好的方法了,實踐才能出真知,沒有實習機會或者工作機會的,可以自己上網買一塊嵌入式開發的開發板,自己動手學習學習,也是個不錯的方法,祝大家成功!
 
 很好的參考資料:http://download.csdn.net/detail/canjianfantasy/5130587

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.