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. 自己写的AutoMapper

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  2. div垂直居中的几种方法

    CSS教程:div垂直居中的N种方法[转](原文地址:http://www.cnblogs.com/chuncn/archive/2008/10/09/1307321.html) 在说到这个问题的时候 ...

  3. Testing with a mocking framework (EF6 onwards)

    When writing tests for your application it is often desirable to avoid hitting the database.  Entity ...

  4. C# WinForm 慎用 override CreateParams 来重载窗体的一些特性

    窗体和控件的属性CreateParams(这真的是一个属性)很神奇,因为通过它你能够很方便的控制窗体或控件诸如边框.最大化最小化关闭按钮的隐藏.窗体的模式化弹窗模式等的一些特性.虽然,CreatePa ...

  5. Python之路第一课Day3--随堂笔记(文件操作)

    一.集合的介绍 1.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = se ...

  6. Java 对象拷贝方式

    (1)BeanUtils.cloneBean()使用: http://www.cnblogs.com/fervour/archive/2009/12/18/1627868.html package c ...

  7. 保护眼睛(ubuntu 和 chrome)

    chrome 安插件https://chrome.google.com/webstore/detail/%E4%BF%9D%E6%8A%A4%E7%9C%BC%E7%9D%9B/fgadnbmmoln ...

  8. 使用File类列出指定位置的文件信息,包含该路径子目录下的文件信息

    public class Test{ public static void main(String [] args) { File f=new File("d:"); File [ ...

  9. jQuery命名空间,插件开发

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  10. windows核心编程 - 线程基础

    一.基本概念: 一个进程至少需要一个线程. 组成:一个线程包括仅包括一个线程堆栈和一个线程内核对象 线程堆栈:用于维护线程在执行代码时需要的所有函数参数和局部变量 线程内核对象:操作系统用它来对线程实 ...