🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 第一天 Android架构与环境搭建 ## ### 1.1 android基础 ### #### 1.1.1 Android是什么? #### + 是一个针对移动设备的操作系统和软件平台 + 基于Linux内核 + 由 Google和开放手机联盟OHA开发的 + 容许使用Java语言来开发和管理代码 + Android开放源代码,Android遵从Apache Software License (ASL)2.0版本的协议 + Android于2007年11月5日开放手机联盟成立时发布 注:开放手机联盟 (OHA) ![](https://box.kancloud.cn/2016-05-18_573c705fb0f63.png) #### 1.1.2 Android的特点! #### + 应用框架可以重复使用,其组件也可以更换。 + Dalvik虚拟机针对移动设备进行了优化。 + 优化的图形能力支持2D、3D图形(OpenGL ES 1.0 )。 + 集成了基于开源WebKit引掣的浏览器。 + SQLite作为结构化数据存储。 + 多媒体支持多种音频、视频格式。 + GSM Telephony (hardware dependent) + 支持蓝牙Bluetooth,3G和WiFi + 支持照相机、GPS、指南针和加速度仪等传感器硬件。 + 丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为EclipseIDE所写的插件。 #### 1.1.3 Android优缺点! #### **优点** + 源代码完全开放。 + 采用了对有限内存、电池和CPU优化过的虚拟机Dalvik,Android的运行速度比想象的要快很多。 + 运营商(中国移动等)的大力支持,产业链条的热捧。 + 良好的盈利模式(3/7 开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。 + Android的源代码遵循Apache V2软件许可,而不是通常的GPL v2许可。有利于商业开发。 + 具有强大的Linux社区的支持。 **缺点** + Google提供了一套Java核心包(J2SE 5,J2SE 6)的有限子集,尚不承诺遵守Java任何Java规范,可能会造成Java阵营的进一步分裂。 + 现有应用完善度不太够,需要的开发工作量较大。 + 模拟器调试手段不十分丰富,速度慢。 #### 1.1.4 Android架构 #### ![](https://box.kancloud.cn/2016-05-18_573c706182a97.png) **Linux Kernel& Android内核** + Android 基于Linux内核,但不是Linux + 内核提供系统核心服务,如进程、内存、电源管理,网络连接,驱动与安全等。 + 并不包括全部的Linux。 + Linux 内核位于硬件和软件堆之间的抽象层 + 核心服务:安全机制、内存管理、进程管理、网络、硬件驱动。 + 内核扮演的是硬件层和系统其它层次之间的一个抽象层的概念。 + 操作系统的初始化和编程接口和标准的Linux 系统是有所不同的。 **Libraries** + C/C++库:被各种Android 组件使用通过应用程序框架开发者可以使用其功能包括: + 媒体库:MPEG4 H.264 MP3 JPG PNG ..... + WebKit/LibWebCore:Web 浏览引擎 + SQLite 关系数据库引擎 + 2D,3D 图形库、引擎 **Function Libraries** + WebKit + 基于开源WebKit的浏览器 + 支持CSS、Javascript、DOM、Ajax + 多媒体框架 + 基于PacketVideo OpenCORE平台 + 支持标准音频、视频 + SQLite + 轻型数据库,支持多种平台 **Native Servers-Surface** + 为多种应用提供2D、3D表面设计 ![](https://box.kancloud.cn/2016-05-18_573c7061ba306.png) **Native Servers-Audio** + 音频处理 **Hardware Abstraction Libs** + 硬件虚拟层 + User space C/C++ library layer + 硬件接口驱动 + 使Android平台逻辑与硬件接口分离 ![](https://box.kancloud.cn/2016-05-18_573c7061d454c.png) **DVM vs JVM** + DVM + Google + Dalvik excutable + JVM + Sun + Java bytecode **Applications Framework** + Activity manager + 管理运行应用程序 + Content Provider + 在各应用之间共享数据 + Resource Manager + 管理非代码资源 + Notification Manager + 显示用户提示和状态栏 + Views System + 可扩展显示,可构建UI ![](https://box.kancloud.cn/2016-05-21_573fc2c6f2fcc.png) **应用和框架** + 核心应用,例如联系人,电子邮件,电话,浏览器,日历,地图, ... + 充分访问所有核心应用框架API + 简化组件的重用 + 用Java 编写应用程序 **Applications** + JAVA编写的应用程序 ### 1.2搭建android环境 ### 注:如果想从头开始学怎么搭建android开发环境的请从1.2.1开始 如果想直接学开发了,请跳过此步骤,到1.2.6节直接下载谷歌提供的开发工具进行开发. #### 1.2.1 安装Java JDK 并配置java环境变量. #### 下载JDK(官方推荐使用1.6版本) http://www.oracle.com/technetwork/java/javase/downloads/index.html (官网下载地址) http://download.oracle.com/otn-pub/java/jdk/6u37-b06/jdk-6u37-windows-i586.exe (x86直接下载地址) http://download.oracle.com/otn-pub/java/jdk/6u37-b06/jdk-6u37-windows-x64.exe (x64直接下载地址) 安装JDK略过 打开环境变量窗口方法:右键【我的电脑】--单击【属性】--单击【高级】--单击【环境变量】。 在上方的用户变量中依次新建如下变量,并分别填入如下路径: + 变量名:JAVA_HOME 变量值:C:Javajdk1.6.0_22(此路径为JAVA安装路径) + 变量名:PATH 变量值:%JAVA_HOME%/bin + 变量名:CLASSPATH 变量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar ![](https://box.kancloud.cn/2016-05-21_573fc2db88e33.png) 测试环境变量配置是否成功 【开始】--【运行】--输入【cmd】--输入【javac】--按【回车键】若看到以下信息,则代表配置成功。 ![](https://box.kancloud.cn/2016-05-21_573fc2e62a495.png) #### 1.2.2 下载eclipse 安装ADT插件 #### Eclipse下载地址: http://www.eclipse.org/downloads/ (java和J2EE都行) http://build.eclipse.org/technology/phoenix/torrents/juno/eclipse-jee-juno-SR1-win32.zip.torrent (x86种子地址,如果下载不了请到官方下载) http://build.eclipse.org/technology/phoenix/torrents/juno/eclipse-jee-juno-SR1-win32.zip.torrent X64的 ![](https://box.kancloud.cn/2016-05-21_573fc2e65579a.png) 安装ADT 注意: 安装ADT的方法有两种 一 在线安装(输入Name和Location即可在线安装,不推荐使用,因为在线更新灰常慢) Name: Andriod Plugin Location:https://dl-ssl.google.com/android/eclipse/ ![](https://box.kancloud.cn/2016-05-21_573fc2e677c53.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e69292b.png) 执意想要在线更新的朋友,我们只需要配置一下hosts文件(翻墙不用我说吧?) Hosts文件只需要在C盘搜索一下就出来了 ![](https://box.kancloud.cn/2016-05-21_573fc2e6b6910.png) 在文件的末尾添加下面一句:74.125.237.1dl-ssl.google.com (记得右键吧hosts文件只读的勾去了) ![](https://box.kancloud.cn/2016-05-21_573fc2e6de523.png) 二 离线安装(离线安装要断网,不然它会自动联网安装的) ![](https://box.kancloud.cn/2016-05-21_573fc2e706792.png) 离线版ADT下载 http://developer.android.com/sdk/index.html 离线更新有两种方法 1. 点local..选择解压出来的ADT文件夹(好处是解包已在外部完成了,可以直接更新,不用等待,推荐使用) 2. 点archive选择打包的ADT(好处是不用在外部解包,但是不可直接更新,要等eclipse解包完ADT.ZIP才能进行安装,不推荐使用) 如果推荐使用的方法不行,哪就用其他方法吧! #### 1.2.3 安装android sdk 并更新版本 #### 安装完ADT之后它会提示你重启eclipse,重启完后会提示选择在线更新SDK还是选现有的SDK(这里只说明选现有的SDK) 注意:记得选第二个,默认的是让你选路径下载SDK的 下载SDK: http://developer.android.com/sdk/index.html 离线安装Sdk ![](https://box.kancloud.cn/2016-05-21_573fc2e71b393.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e740c0e.png) 找到SDK路径应用一下就可以了 ![](https://box.kancloud.cn/2016-05-21_573fc2e76efec.png) 管理自己的SDK,升级或者更新 ![](https://box.kancloud.cn/2016-05-21_573fc2e78d97f.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e7a5ebd.png) 在自己需要的版本上打勾然后按install (一般开发都用2.1,谷歌会提示你95%的开发者都在用2.1之类的话的) 点击install后如下图,选择所有再点install ![](https://box.kancloud.cn/2016-05-21_573fc2e7ce23d.png) 更新完后就大功告成了 #### 1.2.4 配置android环境变量. #### 在上方的用户变量中找到之前创建的【PATH】变量,双击它,然后在【变量值】的最后面添加上内容 ``` ;E:Androidandroid-sdk-windowsools;E:Androidandroid-sdk-windowsplatform-tools ``` 其中的分号不能少,分号在这里是起到分隔的作用。 配置完成之后,分别点击【开始】--【运行】--输入【cmd】--输入【android -h】--按【回车键】,若看到以下信息,则代表配置成功。 ![](https://box.kancloud.cn/2016-05-21_573fc2e80a388.png) #### 1.2.5 配置ADV 安卓虚拟机 并写hello android 测试 #### ![](https://box.kancloud.cn/2016-05-21_573fc2e8738da.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e88b251.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e8a7d71.png) #### 1.2.6 特别赠送:直接下载AndroidDeveloper Tools即可省略以上5个步骤 #### 直接下载AndroidDeveloper Tools 即可使用 官方已经推出集成ADT 和最新SDK(4.2版本)的eclipse了 命名为AndroidDeveloper Tools 下载地址: http://dl.google.com/android/adt/adt-bundle-windows-x86.zip 或者联系作者获取 如需安装其他版本SDK请看第3步 ![](https://box.kancloud.cn/2016-05-21_573fc2e8bd422.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e8bd422.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e8e499f.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e90b276.png) 写第一个android程序 ![](https://box.kancloud.cn/2016-05-21_573fc2e93cb68.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e95be2d.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e97d37c.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e99a832.png) ![](https://box.kancloud.cn/2016-05-21_573fc2e9b56ce.png) 第一个程序就创建好了,如下图启动你的程序 ![](https://box.kancloud.cn/2016-05-21_573fc2e9d433e.png) 如图,测试成功.第一天的android课程结束. ![](https://box.kancloud.cn/2016-05-21_573fc2ea02dad.png) **源代码下载** [HelloAndroid源码](http://www.apkbus.com/android-83159-1-1.html)