《第一行代码 Android 》学习记录(一)

Android
第一行代码 Android
  或许对大多数人来说,这本书有点老,基于Android4.X。
  但是对一些新手菜鸟(like I do),这本书是一本入门必读书。
  所以在此,记录一下自己的学习过程,每日一章,Keep it up。

郭神CSDN博客
刚看到郭大神换了CSDN博客头像,恭喜郭大神步入婚姻殿堂。
祝:永结同心,百年好合!新婚愉快,甜甜蜜蜜!哈哈。。。。

本人第一次认认真真的写Blog,如果有不足之处或者是写错写漏的地方望指出。
转载请注明出处:http://www.jianshu.com/p/7ab25e095568

我挥舞着键盘和本子,发誓要把世界写个明明白白。

种一棵树最好的时间是十年前,其次,就是现在。


第一章 开始启程,你的第一行Android代码

  • Android 系统架构

1.Linux内核层(Linux kernel)

Android系统是基于Linux2.6内核的,这一层是为Android设备的各种硬件提供了底层的驱动。如:显示驱动,音频驱动,照相机驱动,蓝牙驱动,WiFi驱动,电源管理等。

2.系统运行库层(Libraries)

这一层通过一些C/C++库来为Android系统提供了主要的特性支持。
如:SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,WebKit库提供了浏览器内核的支持等。

这一层还有Android运行时库(Android Runtime),它主要提供了一些核心库,允许开发者中Java语言来编写Android应用。另外,它包含了Dalvik虚拟机,Dalvik使得每个Android应用都能运行在独立的进程当中,默认内存16MB。

3.应用框架层(Application Framework)

主要提供了构建应用程序时可能用到的各种API。(所谓的源码,就是这些API了吧!再往下Libraries和LinuxKernel的源码,给我看我也看不懂!)

4.应用层(Applications)

所有安装在手机上的应用程序都是属于这一层,包括系统自带的联系人,短信,音乐等。还有你自己开发的应用程序。


  • Android 已发布的版本(这个表格是我自己网上下载统计的,至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“发条机器人”) PetitFour((法)小蛋糕)
Android 1.0 API 1 (Astro“铁臂阿童木”) 没有开发代号

在这贴两张图,是2016年谷歌官方给出的占比分布图


Android各个版本占比分布图

Android各个版本占比分布表

然后有两个数据是大家需要知道的:

  • Android 6.0 Marshmallow市场份额仅用一个月从0.7%涨到占比为1.2%,增幅达到了0.5%。
  • Android Lollipop的市场占比从34.1%下滑至32.6%。

就是说,你需要了解最新版本,你需要时刻知道Android官网又干了什么。

手机市场2016年1月各个系统占比:


你要知道ios虽然现在比例不大,但终究是在慢慢增长。因为中国人都有钱了,需要一个流畅的装逼手机。(作为一个程序员,不能吊死一棵树上!哈哈。。。)


Android应用开发特色(其实除了四大组建,别的都不算是特色吧!)

1.四大组件
Android系统提供的四大组件分别是:

  • Activity(活动)
  • Service(服务)
  • Broadcase Receiver(广播接收器)
  • Content Provider(内容提供者)

这是作为一个Android程序员必须要精通的东西,哎,小鸟我也就Activity理解的比较好一些,别的都一塌糊涂。Keep it up。

2.丰富的系统控件
就是自定义控件或者组件,需要对View有足够的认识。我的短板呀!!!

3.SQLite 数据库
这部分也是我的短板,作为一个程序员,数据库不得知道好几个?什么MYSQL,ORACLE,SQL Server,还有这个轻量级的SQLite。短板太多,这水全漏了。。。。

4.地理位置定位
手机最有特点的功能。需要了解百度SDK,高德SDK,腾讯SDK等。

5.强大的多媒体
Linux内核给了它那么多驱动,这些东西不是必须得有?

6.传感器
这些算是手机厂商给提供的硬件和驱动吧,我是这么理解的。

开发环境搭建(这部分就略过了)

Android主流开发环境(IDE)有Android Studio和 Eclipse


Android Studio
Eclipse

需要说一下的是:

  1. 谷歌已经不在给Eclipse提供支持,就是说,以后可能所有Android程序员都要转用谷歌亲儿子Android Studio这款IDE来开发Android应用。(这么牛逼一个公司,一直以插件ADT的形式混在别人的IDE中确实挺丢人,哈哈。。。)
  2. Android Studio书中没有介绍,不过网上还是有很多教程的,建议大家找最新的。还有对Gradle的理解要深入,我是就会用,还真是不太理解。给Gradle的导包过程一个赞,一行代码搞定!
  3. 这两个IDE最终还是需要JAVA JDK的支持,这个东西,必须得会!
面试中经常问道的一个问题,Android目录结构的解析。现在大多数都是Eclipse目录结构的详细解析,我这里就不写Eclipse的了。

这里重点说一下Android Studio的目录结构:

Android Studio提供了好几种目录结构类型


我们常用到的是Project结构类型Android结构类型

  • Project结构类型:


    Project结构类型
  1. app/build/ app模块build编译输出的目录
  2. app/build.gradle app模块的gradle编译文件
  3. app/app.iml app模块的配置文件
  4. app/proguard-rules.pro app模块proguard文件
  5. build.gradle 项目的gradle编译文件
  6. settings.gradle 定义项目包含哪些模块
  7. gradlew 编译脚本,可以在命令行执行打包
  8. local.properties 配置SDK/NDK
  9. MyApplication.iml 项目的配置文件
  10. External Libraries 项目依赖的Lib, 编译时自动下载的
  • Android结构类型:


    Android结构类型
  1. app/manifests AndroidManifest.xml配置文件目录
  2. app/java 源码目录
  3. app/res 资源文件目录
  4. Gradle Scripts gradle编译相关的脚本

以上Android Studio的目录结构原文


前行必备,掌握日志工具的使用(日志在Eclipse和Android Studio中都是比较重要的)

Android Studio中LogCat是在最底下Android Monitor栏中


Android Studio LogCat

LogCat需要知道的是怎么用它的过滤器,过滤自己需要的日志。

第一次写技术博客,有不足之处,望大家多体谅(谁没有过第一次啊!是吧,哈哈。。)


Android 书单

  • 第一行代码 Android
  • Android 编程权威指南
  • Android 4 高级编程(第三版)

我打算看完这三本书,并每章都写笔记,发到博客上。如果有正在看的朋友,可以一起探讨。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容