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 高级编程(第三版)

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

更多相关文章

  1. Android(安卓)Studio debug.keystore位置介绍
  2. Android设置铃声分析
  3. 对Android(安卓)Studio 中Android(安卓)类型的目录结构的解析
  4. Android如何在局域网中发送网络广播
  5. 正则表达式pcre在Android下的移植
  6. 【边做项目边学Android】小白会遇到的问题--创建Android项目不自
  7. Android响应按钮的程序结构
  8. Android(安卓)创建及调用自己的 ContentProvider
  9. Android(安卓)SDK目录及版本号区别

随机推荐

  1. android发送restful风格的http请求
  2. Android应用程序键盘(Keyboard)消息处理机
  3. 阅读《Android 从入门到精通》(31)——Inte
  4. FregServer进程,获取ServiceManager代理对
  5. Android Studio查看错误信息
  6. 百度地图android开发资料
  7. Android 通过按键旋转屏幕
  8. 2011.07.19——— android intent 传递li
  9. 高德地图自定义点聚合样式Android
  10. android 实现模拟按键