或許對大多數(shù)人來說喜庞,這本書有點老诀浪,基于Android4.X。
但是對一些新手菜鳥(like I do)延都,這本書是一本入門必讀書雷猪。
所以在此,記錄一下自己的學(xué)習過程晰房,每日一章求摇,Keep it up。
郭神CSDN博客
剛看到郭大神換了CSDN博客頭像殊者,恭喜郭大神步入婚姻殿堂与境。
祝:永結(jié)同心,百年好合猖吴!新婚愉快摔刁,甜甜蜜蜜!哈哈海蔽。共屈。。党窜。
本人第一次認認真真的寫B(tài)log拗引,如果有不足之處或者是寫錯寫漏的地方望指出。
轉(zhuǎn)載請注明出處:http://www.reibang.com/p/7ab25e095568
我揮舞著鍵盤和本子幌衣,發(fā)誓要把世界寫個明明白白矾削。
種一棵樹最好的時間是十年前,其次泼掠,就是現(xiàn)在怔软。
第一章 開始啟程,你的第一行Android代碼
-
Android 系統(tǒng)架構(gòu)
1.Linux內(nèi)核層(Linux kernel)
Android系統(tǒng)是基于Linux2.6內(nèi)核的择镇,這一層是為Android設(shè)備的各種硬件提供了底層的驅(qū)動挡逼。如:顯示驅(qū)動,音頻驅(qū)動腻豌,照相機驅(qū)動家坎,藍牙驅(qū)動,WiFi驅(qū)動吝梅,電源管理等虱疏。
2.系統(tǒng)運行庫層(Libraries)
這一層通過一些C/C++庫來為Android系統(tǒng)提供了主要的特性支持。
如:SQLite庫提供了數(shù)據(jù)庫的支持苏携,OpenGL|ES庫提供了3D繪圖的支持做瞪,WebKit庫提供了瀏覽器內(nèi)核的支持等。
這一層還有Android運行時庫(Android Runtime),它主要提供了一些核心庫装蓬,允許開發(fā)者中Java語言來編寫Android應(yīng)用著拭。另外,它包含了Dalvik虛擬機牍帚,Dalvik使得每個Android應(yīng)用都能運行在獨立的進程當中儡遮,默認內(nèi)存16MB。
3.應(yīng)用框架層(Application Framework)
主要提供了構(gòu)建應(yīng)用程序時可能用到的各種API暗赶。(所謂的源碼鄙币,就是這些API了吧!再往下Libraries和LinuxKernel的源碼蹂随,給我看我也看不懂J佟)
4.應(yīng)用層(Applications)
所有安裝在手機上的應(yīng)用程序都是屬于這一層,包括系統(tǒng)自帶的聯(lián)系人糙及,短信详幽,音樂等。還有你自己開發(fā)的應(yīng)用程序浸锨。
-
Android 已發(fā)布的版本(這個表格是我自己網(wǎng)上下載統(tǒng)計的唇聘,至2016年3月)
PlatForm Version | API Level(版本等級) | Version Code(版本代號) |
---|---|---|
Android 6.0 | API 23 | Marshmallow(棉花糖) |
Android 5.1 | API 22 | Lollipop(棒棒糖) |
Android 5.0 | API 21 | Lollipop(棒棒糖) |
Android 4.4W | API 20 | KitKat(奇巧巧克力棒) |
Android 4.4 | API 19 | KitKat(奇巧巧克力棒) |
Android 4.3 | API 18 | Jelly Bean(果凍豆) |
Android 4.2 | API 17 | Jelly Bean(果凍豆) |
Android 4.1 | API 16 | Jelly Bean(果凍豆) |
Android 4.0.3 - 4.0.4 | API 15 | Ice Cream Sandwich(冰激凌三明治) |
Android 4.0 - 4.0.2 | API 14 | Ice Cream Sandwich(冰激凌三明治) |
Android 3.2 | API 13 | Honeycomb(蜂巢) |
Android 3.1 | API 12 | Honeycomb(蜂巢) |
Android 3.0 | API 11 | Honeycomb(蜂巢) |
Android 2.3.3-2.3.7 | API 10 | Gingerbread(姜餅) |
Android 2.3 - 2.3.2 | API 9 | Gingerbread(姜餅) |
Android 2.2 - 2.2.3 | API 8 | Froyo(凍酸奶) |
Android 2.1 | API 7 | éclair(閃電泡芙、松餅柱搜、法式奶油夾心甜點) |
Android 2.0.1 | API 6 | éclair(閃電泡芙迟郎、松餅、法式奶油夾心甜點) |
Android 2.0 | API 5 | éclair(閃電泡芙聪蘸、松餅宪肖、法式奶油夾心甜點) |
Android 1.6 | API 4 | Donut(甜甜圈) |
Android 1.5 | API 3 | Cupcake(紙杯蛋糕) |
Android 1.1 | API 2 | (Bender“發(fā)條機器人”) PetitFour((法)小蛋糕) |
Android 1.0 | API 1 | (Astro“鐵臂阿童木”) 沒有開發(fā)代號 |
在這貼兩張圖,是2016年谷歌官方給出的占比分布圖
然后有兩個數(shù)據(jù)是大家需要知道的:
- Android 6.0 Marshmallow市場份額僅用一個月從0.7%漲到占比為1.2%健爬,增幅達到了0.5%控乾。
- Android Lollipop的市場占比從34.1%下滑至32.6%。
就是說娜遵,你需要了解最新版本蜕衡,你需要時刻知道Android官網(wǎng)又干了什么。
手機市場2016年1月各個系統(tǒng)占比:
你要知道ios雖然現(xiàn)在比例不大设拟,但終究是在慢慢增長慨仿。因為中國人都有錢了,需要一個流暢的裝逼手機纳胧。(作為一個程序員镰吆,不能吊死一棵樹上!哈哈跑慕。万皿。。)
Android應(yīng)用開發(fā)特色(其實除了四大組建,別的都不算是特色吧O嗫堋)
1.四大組件
Android系統(tǒng)提供的四大組件分別是:
- Activity(活動)
- Service(服務(wù))
- Broadcase Receiver(廣播接收器)
- Content Provider(內(nèi)容提供者)
這是作為一個Android程序員必須要精通的東西慰于,哎,小鳥我也就Activity理解的比較好一些唤衫,別的都一塌糊涂。Keep it up绵脯。
2.豐富的系統(tǒng)控件
就是自定義控件或者組件佳励,需要對View有足夠的認識。我的短板呀G臁T叱小!
3.SQLite 數(shù)據(jù)庫
這部分也是我的短板悴侵,作為一個程序員瞧剖,數(shù)據(jù)庫不得知道好幾個?什么MYSQL可免,ORACLE抓于,SQL Server,還有這個輕量級的SQLite浇借。短板太多捉撮,這水全漏了。妇垢。巾遭。。
4.地理位置定位
手機最有特點的功能闯估。需要了解百度SDK,高德SDK,騰訊SDK等灼舍。
5.強大的多媒體
Linux內(nèi)核給了它那么多驅(qū)動,這些東西不是必須得有涨薪?
6.傳感器
這些算是手機廠商給提供的硬件和驅(qū)動吧骑素,我是這么理解的。
開發(fā)環(huán)境搭建(這部分就略過了)
Android主流開發(fā)環(huán)境(IDE)有Android Studio和 Eclipse
需要說一下的是:
- 谷歌已經(jīng)不在給Eclipse提供支持尤辱,就是說砂豌,以后可能所有Android程序員都要轉(zhuǎn)用谷歌親兒子Android Studio這款I(lǐng)DE來開發(fā)Android應(yīng)用。(這么牛逼一個公司光督,一直以插件ADT的形式混在別人的IDE中確實挺丟人阳距,哈哈。结借。筐摘。)
- Android Studio書中沒有介紹,不過網(wǎng)上還是有很多教程的,建議大家找最新的咖熟。還有對Gradle的理解要深入圃酵,我是就會用,還真是不太理解馍管。給Gradle的導(dǎo)包過程一個贊郭赐,一行代碼搞定!
- 這兩個IDE最終還是需要JAVA JDK的支持确沸,這個東西捌锭,必須得會!
面試中經(jīng)常問道的一個問題罗捎,Android目錄結(jié)構(gòu)的解析」矍現(xiàn)在大多數(shù)都是Eclipse目錄結(jié)構(gòu)的詳細解析,我這里就不寫Eclipse的了桨菜。
這里重點說一下Android Studio的目錄結(jié)構(gòu):
Android Studio提供了好幾種目錄結(jié)構(gòu)類型
我們常用到的是Project結(jié)構(gòu)類型和Android結(jié)構(gòu)類型
-
Project結(jié)構(gòu)類型:
Project結(jié)構(gòu)類型
- app/build/ app模塊build編譯輸出的目錄
- app/build.gradle app模塊的gradle編譯文件
- app/app.iml app模塊的配置文件
- app/proguard-rules.pro app模塊proguard文件
- build.gradle 項目的gradle編譯文件
- settings.gradle 定義項目包含哪些模塊
- gradlew 編譯腳本豁状,可以在命令行執(zhí)行打包
- local.properties 配置SDK/NDK
- MyApplication.iml 項目的配置文件
- External Libraries 項目依賴的Lib, 編譯時自動下載的
-
Android結(jié)構(gòu)類型:
Android結(jié)構(gòu)類型
- app/manifests AndroidManifest.xml配置文件目錄
- app/java 源碼目錄
- app/res 資源文件目錄
- Gradle Scripts gradle編譯相關(guān)的腳本
以上Android Studio的目錄結(jié)構(gòu)原文
前行必備,掌握日志工具的使用(日志在Eclipse和Android Studio中都是比較重要的)
Android Studio中LogCat是在最底下Android Monitor欄中
LogCat需要知道的是怎么用它的過濾器倒得,過濾自己需要的日志泻红。
第一次寫技術(shù)博客,有不足之處屎暇,望大家多體諒(誰沒有過第一次俺星拧!是吧根悼,哈哈凶异。。)
Android 書單
- 第一行代碼 Android
- Android 編程權(quán)威指南
- Android 4 高級編程(第三版)
我打算看完這三本書挤巡,并每章都寫筆記剩彬,發(fā)到博客上。如果有正在看的朋友矿卑,可以一起探討喉恋。