android学习之旅-学习计划
??????? 在計算機這個浩瀚的的世界里,每一個分支都足夠你去鉆研一輩子,從一開始接觸C語言,到后來的C++,接著學了java,這才勉強知道編程為何物,……!
?????? 從暑假開始在外面實習的這段時間里,做過開發,做過售前技術顧問,到現在的系統維護,親身感受了各種工作環境,怎么說呢,拿不準什么發展好什么又沒前途,只能說哪一個行業都能搞,????說實在的,這可不是我一直以來所希望的。我想做的是開發,最喜歡前沿技術的研究,所以經常看草根網、51cto這一類網站,看看現在什么又熱啦,什么呢又有所下降!
??????? 看來看去,也清醒的思考了很久,決定往android這個火爆的陣營里鉆,以前學過一些android應用的開發,但總覺得學東西總不能學個大概,所以決定從android最底層的東西學起!當然這又牽涉到很多其他的知識,所以本人決定追隨前人的步伐,繼續奮斗,做一個技術"×××士"!下面將是我的學習計劃:(跟大家分享一下)
第一階段:基礎知識強化
一、深入計算機系統
計算機中數據的表示方法、計算機硬件的組成結構及各部件的功能介紹、計算機指令與程序,程序代碼的組織結構、操作系統概念、機器語言到高級語言、計算機軟件的運行過程及計算機啟動原理、計算機網絡。
二、嵌入式操作系統基礎
嵌入式操作系統的基本概念;?Unix簡介;?Windows?Mobile簡介;?Linux基礎知識和系統安裝;Linux常用命令,文本編輯器vi,簡單shell腳本編程;?Linux開發環境基礎:Gcc,Gdb,Make和Makefile;?嵌入式軟件開發環境搭建與使用。
三、嵌入式C/C++語言
基本數據類型和運算;控制結構;內存分配、堆內存和棧內存;C字符串處理;數組與指針;指針類型、指針運算、函數指針、指針與引用、函數定義、函數調用、參數傳遞、遞歸;結構體與共用體;位運算和位結構;文件操作;預編譯、條件編譯;宏定義、對象宏和函數宏;類與對象;函數重載技術與運算符重載;類的繼承與派生;虛函數與多態性;函數模板與類模版;輸入/輸出流和文件操作;模版機制、STL;預編譯;異常處理;嵌入式C語言開發特性;GNC?C拓展。
四、VC++快速進階
Windows程序運行原理及程序編寫流程;窗口產生過程;句柄原理;消息隊列;回調函數;VC工程的編譯原理與過程;MFC?AppWizard的原理與MFC程序框架的剖析、MFC消息映射機制的剖析;CDC的文字處理程序的編寫;Socket網絡程序的編寫;進程間通訊的四種方式;Hook編程。
五、數據結構強化
線性表、棧和隊列、鏈表、樹和二叉樹、索引表、索引樹、排序。
六、階段項目實戰與測試
通過深入了解Linux系統調用功能,開發Linux環境下多任務編程,掌握網絡socket接口調用的方法,開發終端程序,并熟練使用開發工具進行調試。
第二階段:ARM高級開發
一、ARM體系結構
嵌入式系統處理器簡介;ARM處理器體系結構;ARM芯片選型與外圍硬件設計;ARM?操作系統(ARM?Linux?/WinCE/Anroid)
二、ARM內核結構
ARM應用內核;ARM嵌入式內核;ARM安全內核;ARM流水線結構;ARM寄存器結構;ARM工作方式;ARM存儲器格式;ARM運行模式;ARM總線AHBA結構。
三、ARM指令系統
ARM指令系統概述;ARM指令集;ARM尋址方式;Thumb指令集;ARM/Thumb交互;ARM匯編語言編程;
四、ARM運行機制
ARM啟動代碼的基本流程;ARM程序的存儲和加載;ARM啟動代碼的遷移過程;ARM啟動代碼的初始化流;ARM異常處理流程概述;ARM異常向量表;ARM未定義異常的特殊處理;AWI?軟中斷指令與系統調用。
五、ARM基本開發
ADS?集成開發環境;ARM編譯器設置與使用;ARM鏈接器設置與使用;ARM調試器設置與使用;ARM內存地址重映射;ARM堆棧初始化;ARM段地址分配。。
六、階段項目實戰與測試
在ARM開發板上通過調用LCD驅動程序,實現漢字顯示功能。
第三階段:嵌入式Linux開發
一、嵌入式Linux構建
嵌入式Linux綜述;典型bootloader(uboot、armboot、redboot);Linux內核編譯和配置;根文件系統構建;嵌入式Linux開發工具介紹;Linux的gdb調試。
二、嵌入式Linux圖形用戶界面
Qt概述;Qt?designer;Qt定制;Qt交叉編譯。
三、嵌入式數據庫系統
關系數據庫基礎與強化;SQL基礎與強化;Sqlite嵌入式數據庫編程。
四、嵌入式Linux進程編程
進程基本概念;線程基本概念;進程與線程;Posix線程;線程狀態轉換;線程同步;IPC高級編程;Qt多線程編程。
五、嵌入式Linux網絡編程
TCP/IP協議;客戶端服務器編程;Socket編程;Web服務器編程;Qt網絡編程。
六、嵌入式Linux系統移植
Bootloader移植;交叉編譯鏈;鏈接腳本分析;構建jffs2和cramfs文件系統;操作系統移植;應用程序移植;Linux板級移植;Linux平臺級移植。
七、嵌入式Linux驅動開發
Linux內存管理;Linux設備管理;Linux文件系統;Linux設備驅動程序;Linux字符設備驅動程序;Linux?fs_operation結構分析;Linux塊設備驅動程序開發;Linux塊設備驅動注冊接口;Linux塊設備驅動操作接口;Linux塊設備驅動request隊列;Linux塊設備源碼分析;Linux網絡設備驅動程序;Linux?input驅動開發;Linux下的MTD驅動;Linux?LCD設備驅動程序開發;Linux?USB設備驅動程序開發。
八、階段項目實戰與測試
實現一個真實完整的嵌入式項目,涉及到數據采集、網絡通訊、圖形用戶界面顯示以及嵌入式數據庫存儲系統等多種嵌入式Linux編程技術:
Linux的內核編譯與裁剪
根文件系統的搭建與裁剪
A/D轉換設備驅動程序
socket網絡通信程序
sqlite和CGI應用程序
第四階段:Andriod系統開發
一、Android操作系統概述
Android平臺介紹;Android平臺特性;Android平臺架構;Android?Navtive?C/C++程序開發;Android?NDK;Native開發方式與JAVA開發方式比較。
二、Android開發環境搭建
Android?SDK介紹;Eclipse?ADT插件;Android模擬器開發。
三、Android項目結構分析
資源管理(Resources)分析;drawable分析;layout分析;Activity分析;Intent分析;Service分析;Content分析。
四、Android?UI設計
標準控件的使用;設計開發自定義控件;Layout布局的使用;觸摸/按鍵(UI?Events)事件處理方法;View,SurfaceView,Canvas,Paint類分析使用;顯示文本以及顯示特殊效果文本;繪圖及顯示圖片;實現動畫效果。
五、Intent?Receive
Intent的作用和目的;屬性講解;Android定義解析Intent;AndroidManifest.xml深入分析。
六、Service
什么是Service,如何使用Service,Service的生命周期,BroadcastReceiver的使用。
七、Content?Provider
SQLite介紹,創建Content?Providers,使用Content?Providers,使用URI語法進行增刪改查。
八、Android高級應用開發
訪問本地通訊錄;網絡連接的相關知識;流媒體的處理;URLConnection和HttpURLConnection的應用;
HttpClient的分析;本地文件瀏覽管理;音視頻播放處理;Widget應用開發。
九、Android程序發布部署建
Android?調試橋;啟用logcat日志調試;模擬器上安裝刪除軟件;打包、簽名和安裝軟件到設備。
十、Android底層架構分析
移植Android到新的硬件平臺;需要支持Linux?操作系統的硬件平臺架構分析;支持Android的Linux內核特性分析;為Linux內核增加Android特性;移植Android?Debug?Bridge調試接口;編寫/移植Android內核驅動;硬件支持double?frame?buffer/page?flipping;bionic庫移植與優化;Dalvik?Vm移植;第三方應用程序移植;建立Android移植開發平臺;新的嵌入式處理器引入的Android相關問題;獲得高效的Android工具鏈。
十一、Android移植
支持ARM11的Linux-2.6.28內核新特性簡介;移植LCD?double?buffer驅動;移植觸摸屏驅動;移植Android鍵盤驅動;移植Wifi驅動支持Android上網功能;移植電源管理驅動,支持Android電池管理;部署Android系統到實際ARM11平臺。
十二、階段項目實戰與測試
通過對ITelephony接口和ISms接口以及AIDL在Android程序中的開發應用,開發一個打電話和發短信的程序。
第五階段:移動通訊3G技術
一、移動通訊基礎
無線通信網絡的概念;GSM-UMTS-LTE的演進過程和網絡體系結構;GSM電路域CSV業務流程;GPRS/EDGE分組域(PS)數據業務基本流程;IMS網絡體系結構。
二、3G基礎技術
什么3G;WCDMA簡介;CDMA2000簡介;TD-SCDMA簡介;TD-SCDMA基本技術構成。
三、WAP技術
WAP協議;WAP建站系統業務模型;WAP建站系統業務流程;無線標記語言WML;Xhtml?MP、WCSS。
四、SMS/MMS開發
SMS/MMS協議;SMS/MMS移動增值業務開發流程。
五、GPS/LBS手機定位開發
GPS衛星定位技術介紹;LBS位置服務介紹;手機定位系統開發的基本流程;手機定位系統的技術架構。
六、3G流媒體技術
流媒體技術介紹;3G流媒體技術概述;3G流媒體文件格式;移動手機視頻客戶端開發技術。
七、階段項目實戰與測試
開發一個手機定位服務,實現POI位置查詢功能。
第六階段:綜合項目實戰
轉載于:https://blog.51cto.com/aoxiangluyu/678837
總結
以上是生活随笔為你收集整理的android学习之旅-学习计划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PCB布线总的原则
- 下一篇: SilverLight4.0数据验证ID