android深入研究和學習的課程

來源:互聯網
上載者:User

 

Android是Google基於Linux開發的智能手機作業系統,廣泛應用於3G手機、迷你筆記型電腦等。目前處於爆髮式增長階段,HTC(宏達電 多普達)、摩托羅拉、索愛、三星等眾多公司紛紛推出基於Android智能作業系統,甚至很多迷你筆記型電腦也使用Android作業系統。目前Android是最熱門的智能作業系統,憑藉Linux的軟體優勢其應用的廣泛程度已經讓其他對手相形見絀。所以學習Android作業系統具有巨大的意義。

這次平台使用omap3530-Devkit8000套件開發板來進行對android深入研究和學習。

 

◆ Android作業系統概述

   1. Android系統架構

   2. Android應用設計理念

   3. Android 開源知識

   4. Android 參考網站與權威資訊

 

◆ Android SDK及其開發環境搭建

   1. Android SDK的版本發布

   2. ADT外掛程式的安裝和更新

   3. Android應用程式架構

   4. 建立第一個Android項目(HelloAndroid!)

   5. 通過Eclipse匯入一個開源項目

   6. 可視化的介面開發工具

   7. 部署應用程式到Android模擬器或手機

 

◆ Android 原始碼開發環境搭建與源碼結構分析

   1. 開發系統主機環境搭建

   2. 安裝軟體包Required Packages

   3. Ubuntu 9.10

   4. Install javva

   5. 源碼結構分析Android source (kernel platform application)

   6. Android build 分析

   7. Android system 分析

   8. Android framwork 分析

   9. Android bring up 

 

◆ Android 應用程式設計模型

   1. drawable        

   2. layout           

   3. values(strings.xml、colors.xml、style.xml 、arrays.xml等)           

   4. R.java分析及使用            

   5. AndroidManifest.xml

   6. Android.mk

   7. Activity          

   8. Intent            

   9. Service          

  10. ContentProvider

 

◆ Android 應用程式介面(一)

   1. TextView的使用

   2. drawable的使用

   3. 引用Drawable顏色常數及背景色

   4. CharSequence資料類型與ResourceID應用

   5. DisplayMetrics的使用

   6. Style樣式的定義

   7. Button事件處理

   8. setContentView的應用

   9. Intent對象的使用

  10. Bundle對象的實現

  11. startActivityForResult方法

  12. AlertDialog視窗

  13. Button與TextView的互動

  14. Typeface對象使用

  15. Gallery對象

  16. 多按鈕應用

  17. Menu功能菜單程式設計

  18. ProgressDialog與線程應用

  19. 動態產生按鈕並最大化

  20. 選擇功能的對話方塊

  21. Android主題(Theme)實現

  22. 支援多種解析度的螢幕

 

◆ Android應用程式介面(二)

   1. EditText與setOnKeyListener事件

   2. ImageButton的焦點及事件處理

   3. Toast對象的使用

   4. CheckBox的isChecked屬性

   5. 多選項CheckBox的應用

   6. RadioGroup組與onCheckedChanged事件

   7. ImageView的堆棧應用

   8. Spinner與setDropDownViewResource

   9. ArrayList與Widget的依賴性

  10. Gallery與衍生BaseAdapter容器

  11. JavaI/O的應用

  12. ImageButton選擇特效

  13. AutoCompleteTextView與數組

  14. AnalogClock與DigitalClock的原理

  15. DatePicker與TimePicker應用

  16. ImageView點擊事件與透明度處理

  17. ProgressBar與Handler的整合應用

  18. GridView與ArrayAdapter設計

  19. ListView的布局

  20. ListActivity與Menu整合技巧

  21. JavaI/O與ListActivity的結合

  22. 使用decodeFile方法

  23. 運用Matrix對象來縮放圖檔案

  24. Bitmap與Matrix旋轉ImageView

  25. RadioButtonID

  26. 交談視窗上的ICON表徵圖

 

◆ Android 應用互動與手機模組控制

   1. PendingIntent與AlarmManager

   2. PendingIntent 與 SmsManager

   3. Intent 與 Email

   4. 資料存放區方式

   5. NotificationManager與Notification

   6. Adapter對象與Cursor

   7. TelephonyManager的應用

   8. RunningTaskInfo的應用

   9. Provider.Contact的使用

  10. Provider.Calendar的使用

  11. Service與Runnable整合并用

  12. BroadcastReceiver與Intent

  13. receiver與intent-filter

  14. Android網路編程

  15. HTTP請求與串連

  16. WebView.loadUrl

  17. Webkit 與 WebCore

  18. HttpURLConnection與URLConnection和運行線程

  19. Runnable混搭SurfaceView

  20. Google ApI

 

◆ Android 系統服務

  1. Activity Manager

  2. Windows Manager

  3. Surface Manager(surface flinger)

  4. Package Manager

  5. Telephony Manager

  6. Content Provider

  7. Resource Manager

  8. AssetManager

  9. View System

  10. Location Manager

  11. Notification Manager

  12. AlarmManager

  13. BatteryManager

  14. HardwareManage

  15. 如何添加一個新系統Service並開放API

  16. 關鍵服務

  17.  Android系統啟動流程

 

ARM平台 Android 移植與驅動核心開發

Android嵌入式智能作業系統是基於Linux核心和驅動的,對於 HTC、華為等公司開發Android作業系統時,需要專門將Android移植到特定硬體平台下,同時將必要的驅動進行編寫及開發。本課程旨在讓學員成為Android的核心層開發人員,讓學員在這種嵌入式裝置廠商中謀得核心開發人員的職位。

 

◆1. Android系統體系及移植相關工具 

    1.1 Android作業系統體繫結構介紹 

        Android Linux核心移植介紹 

        檔案系統, toolbox等移植

        儲存驅動移植

        Bootloader相應方案與移植

        Android虛擬器Dalvik移植介紹 

 

    1.2 ARM處理器介紹 

        ARMv5TJS 

        ARM中斷處理 

        ARM體繫結構與ARM處理器的體繫結構

        IP核、晶片與開發板

        ARM處理器結構 處理器模式

        . 寄存器

        . 流水線結構

        C語言內嵌彙編格式 與編程執行個體

 

    1.3 ARM指令系統

        . 算術邏輯指令 

        . 指令對狀態寄存器的影響

        . 比較指令

        . 分支指令

        . 移位

        . 指令位元影像

        . 識別機器指令

 

    1.4記憶體訪問與記憶體控制

        . 資料匯流排與地址匯流排的使用與執行個體

        . STR/LDR 

 

    1.5 ARM程序呼叫標準

        . LDM/STM

        . 反組譯碼

        . APCS

        . C語言函數與彙編的互相調用

 

【案例】 使用Android Linux patch進行Linux核心的構建 

 

2. Android Linux核心移植與核心開發

 

    2.1 ARM處理器的Android系統構建 

    2.2 輸入輸出裝置驅動移植 

    2.3 存放裝置nand flash,MMC/SD卡驅動移植 

    2.4 Framebuffer移植 

    2.5 Touchscreen移植 

    2.6 Open Binder IPC移植 

【案例】 

    2.7 在ARM處理器上移植Android實驗 

    2.8 編寫Nand flash驅動 

    2.9 移植Framebuffer驅動

    2.10 硬體相關部分(鍵盤、觸控螢幕、LCD等)

 

3. Android相關環境 庫、以及Bionic系統移植 

    3.1 libc移植 

    3.2 libm移植 

    3.3 libdl移植 

    3.4 libm移植 

    3.5 busybox, toolbox移植 

【案例】 

    1. 移植glibc 

    2. 移植busybox和toolbox 

 

4. Android Dalvik移植一 

    4.1 JNI Call Bridge相關原理 

    4.2 dx, dalvitvm原理和使用 

    4.3 Dalvik指令格式 

    4.4 Dalvik執行格式dex 

    4.5 Java位元組碼格式 

 

5. Android Dalvik移植二 

    5.1 Dalvik Library原理 

    5.2 dalvit libcore核心庫移植 

    5.3 dalvit/vm/native移植 

    5.4 Dalvik Interpreter原理 

    5.5 Dalvik Mterp

 

6. ARM AT&T彙編

    . AT&T彙編文法詳解

    . gas工具的使用

    . label標籤的作用

    . 資料與代碼的分布

 

7. 連結指令碼ld-script

    . 段地址的確定

    . 編寫ld-script

    . ELF格式與libc函數庫的關係

 

8. 時序電路基礎

    . 電平訊號

    . 電路圖分析

    . 時序圖分析

    . datasheet查看

    . OMAP3530的外圍器件結構

    . GPIO操作

 

9. AMBA匯流排標準

    . AMBA匯流排標準

    . FCLK/HCLK/PCKL頻率分配與設定 

    . Watchdog計時操作

    . UART操作

    . ARM中斷體系

    . 異常向量表

    . ARM模式切換

    . ARM中斷控制器

    . 非強制中斷

    . Linux系統調用的實現

 

10. Nand Flash控制器

    . Flash原理

    . Nand控制器原理及時序分板

    . OMAP3530 NAND Flash時序分析

 

11. 記憶體控制器

    . OMAP3530物理地址分布

    . SDRAM原理與時序

    . 記憶體控制器的物理串連

    . 地址對齊

    . SRAM訪問

 

12. 記憶體管理單元

    . MMU的原理

    . ARM副處理器指令

    . section模式

    . small page模式

    . I & D TLBs 

    . I & D Cache

    . 哈佛結構的原理與實現

 

13. DMA 直接記憶體存取的機制與使用

    . DMA的狀態機器

    . DMA的控制

 

14. 觸控螢幕介面與ADC介面與執行個體

    . ADC原理

    . 觸控螢幕介面與控制

 

15. LCD控制器

    . 圖形顯示原理

    . LCD控制器

    . LCD時序

    LCD驅動相關的架構與體系

 

16. I2S音頻匯流排

    . 音頻硬體原理

    . I2S時序 

    . OMAP3530上I2S的操作

    音訊裝置的裸驅動討論

 

17. DM9000網卡控制

    . 邏輯鏈路層與MAC層

    . DM9000原理與時序分析

    後續網卡裸驅動討論與體繫結構

 

18. TCP/IP協議棧移植,與網路體繫結構

    . LwIP TCP/IP協議棧簡介

    . LwIP配置與編譯

    . tftp配置與編譯

 

19. Bootloader原理與移植

        . u-boot的配置、編譯

        . u-boot啟動過程分析

        . ARM-Linux的啟動要求

        . ARM-Linux kernel的ld-sript分析

        . u-boot到ARM-Linux的跳轉程式碼分析

        . 使用mkimage製作啟動鏡像檔案

 

20. ARM-Linux原理與移植 

        . ARM-Linux的配置、編譯

        . ARM-Linux啟動程式碼分析

        . ARM-Linux 地址映射的關係;

        . Busybox的配置、編譯

 

相關文章

聯繫我們

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