2011年买了第一部安卓操作系统的手机,当时势头正盛的HTC不可思议(incredible),当时的想法就是想学习下智能手机开发,但是由于各种原因,客观上是公司的项目太忙了,忙于项目管理、团队建设、客户上线,分析设计、编写代码,一直在做传统的业务管理系统,主观上还是压力不够,没有挤出时间涉猎智能手机这块。时光一晃,今年已经33岁,按照中国的国情,技术路线生涯估计最多还有7、8年的时间,抓紧时间利用多年的开发经验,迅速补上移动开发这块内容。

今年中秋节,用了一天时间把开发环境配置好了,按照我的学习习惯,先打好基础,再往上盖高楼,万丈高楼平地起,开始学习。

Andriod是基于Linux的开发源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Goodle公司和开放手机联盟领导及开发。2003年10月,Android公司及团队成立,22个月后被Goodle公司收购,2008年9月,Goodle正式发布了1.0系统,2014年最新版本是4.4。时光荏苒,安卓已经有10年的历史。

Andriod的系统架构和其他操作系统一样,采用了分层的架构,分为四层,从高层到底层分别是应用程序层(Applications)、应用程序框架层(Application Framework)、系统运行库层(Libraries)和Linux内核层(inuxKernel),其中第三层还包括Android运行时的环境。

1、  应用程序层

Android连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用JAVA编写的。

2、  应用程序框架

开发者完全可以访问核心应用程序所使用的API框架。该应用程序框架架构用来简化组件软件的重用,就像是.net框架一样,提供了很多类库。

  1. 一个可扩展的视图(Views)可以用来创建应用程序,包括列表(Lists)、网络(Grids)、文本框(Text boxes)、按钮(Buttons),甚至可嵌入的web浏览器。
  2. 内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
  3. 一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。
  4. 一个通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
  5. 一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

3、  系统运行库

Android包含一些C/C++库,这些库能被安卓系统中的不同组件使用。它们通过安卓应用程序框架为开发者提供服务。主要包括,系统C库、媒体库,该库支持录放许多流行的音频视频格式、Surface Manager、LibWebCore,一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图、3D libraries,该库可以使用硬件3D加速、FreeType,位图和向量的字体显示、SQLite,一个小型的关系型数据库。

4、  系统内核

Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的硬件抽象层。

看完安卓的体系结构,顿时感觉难度小了很多,老外已经把核心的模块封装好,我们只要学会应用即可,老外是为了兴趣学习,很多中国人是为了工作而学习,所以他们可以做很多创新的工作,我们能把应用做好已经很优秀了。

Android开发语言是Java,也是一种面向对象的语言,C#是后来的语言,所以很多特性和Java差不多,学习起来应该难度不大。首先第一步需要配置开发环境,之前在网上看到许多资料,配置起来非常繁琐,需要下载JDK、Eclipse、ADT(Android Development Tools)、Android SDK,然后还需要按照步骤来谨慎操作才能成功,在按照这个办法快安装完成时在网上看到一个新的办法,ADT Bundle for windows,Goodle Android官方提供的集成式IDE,已经包含了Eclipse,并且里面已经集成了插件,它解决了大部分eclipse配置Android开发环境的复杂问题,这点估计是向微软学习的,强大、简单的IDE,降低复杂度,提高工作效率。

第一步:Java SDK的安装

我下载的是jdk-8u20是Oracle2014年8月20号最新发布的版本java8,Java SE Development Kit,java桌面版就够用了,不用装java EE。安装这个步骤必不可少,复杂度稍高的是需要配置一系列复杂的环境变量,成功的标志是在命令行工具cmd下输入java和javac有相应提示。JAVA_HOME:表示java所在的目录;Path:路径列表,用于搜索可执行文件,沿着每个路径搜索可执行文件,直至找到,找不到则报错。CLASSPATH:路径列表,是用于搜索java编译或者运行时需要用到的类,PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。

JAVA_HOME    java的安装路径 C:\Program Files\Java\jdk1.8.0_20

Path            %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

CLASSPATH    .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;

第二步 安装 adt-bundle-windows

这是个Android的集成开发环境,将下载的压缩包进行解压后,包含两个目录和一个文件,一个目录是eclipse,里面包含已经安装好的eclipse和ADT,另一个目录是sdk,里面包含安装后的android sdk的各个版本。先运行SDK Manager.exe,安装sdk的各个版本,这个花费的时间很长,我是装了10个小时,把4.0以上的版本都装上后,文件夹大概有10G左右。

第三步,打开Eclipse,创建AVD

选中,点击start。

然后创建第一个应用程序Hello World,

经典的Hello World 运行出来,安卓基础和环境搭建完毕,有.net的开发基础学习起来很轻松,只是需要投入很多时间和精力,把这部分内容吃透。

Android 开发基础及环境配置的更多相关文章

  1. [android开发篇]java环境配置

    http://www.runoob.com/java/java-environment-setup.html Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window ...

  2. Android Studio1.4.x JNI开发基础-基本环境配置

    从Eclipse时代到Android Studio普及,开发工具越来越好用.早些时候还需要安装Cygwin工具,从Android Studio1.3以后,在Android 环境开发JNI程序搭建开发环 ...

  3. 20145337实验四Android开发基础

    20145337实验四Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件处 ...

  4. 20145208 实验四 Android开发基础

    20145208 实验四 Android开发基础 安装Android Studio 安装的具体步骤在老师的链接中已经很详细了,在此就不做赘述了. 在此提出我觉得安装的时候需要注意的两个地方 一是安装地 ...

  5. 20145215实验四 Android开发基础

    20145215实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件 ...

  6. 实验四:Android 开发基础

    实验四:实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 张旭升 学号:20162329 指导教师:娄嘉鹏 王志强 实验日期:5月26日 实验密级: 非密级 预习程度: 已预习 必修/选修 ...

  7. 20145221 《Java程序设计》实验报告四:Android开发基础

    20145221 <Java程序设计>实验报告四:Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管 ...

  8. 20155219实验四 Android开发基础设计实验报告

    20155219实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World!+学号的小程序 实验步 ...

  9. 20145326实验四 Android开发基础

    20145326实验四 Android开发基础 一.实验内容及步骤 安装 JDK 并配置 JDK 环境变量 找到之前path变量中的jdk文件所在位置并复制. 并用复制的变量名新建一个 JAVA_HO ...

随机推荐

  1. JAVA面试题1

    1.在main(String[] args)方法内是否可以调用一个非静态方法? 答案:不能[public static void main(String[] args){}] 2.同一个文件里是否可以 ...

  2. java分享第六天(冒泡排序)

    冒泡排序 基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们 的排序与排序要求 ...

  3. Android 双卡双待识别

    简介 Android双卡双待已经越来越普及了,解决双卡双待管理是广大手机开发人员必须得面对的问题,为实现Android平台的双卡双待操作,笔者研究了Android 应用层操作双卡双待的机制. 机制 获 ...

  4. JS 点击弹出图片/ 仿QQ商城点击左右滚动幻灯片/ 相册模块,点击弹出图片,并左右滚动幻灯片

    1, 点击弹出图片 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  5. [LintCode] Add Two Numbers 两个数字相加

    You have two numbers represented by a linked list, where each node contains a single digit. The digi ...

  6. java 打印流(PrintStream)

    打印流(PrintStream):打印流可以打印任意类型的数据,而且打印流在打印数据之前会将数据转为字符串在进行打印 PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的 ...

  7. 判断.NET4.0是否安装

    Clinet 和 Full存在一个都说明安装了Framework "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client"&qu ...

  8. 从DataGridView导出Excel

    从DataGridView导出Excel的两种情况,不多说,直接记录代码(新建类,直接引用传入参数). using System; using System.Collections.Generic; ...

  9. 完全卸载MySQL重新安装MySQL

    在"运行(win+R)"里键入regedit进入注册表, 输入之后回车(Enter)确认. 确认之后进去注册表界面 1.HEKY_LOCAL_MACHINE\SOFTWARE\MY ...

  10. stl文件格式

    http://wenku.baidu.com/view/a3ab7a26ee06eff9aef8077b.html [每个三角形面片的定义包括三角形各个定点的三维坐标及三角形面片的法矢量[三角形的法线 ...