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. letter upper lower combo

    以前同事为了炫耀ruby的简洁,特意出一道题来考小陈: 在写一个爆破密码的字典生成工具,其中有这样一个需求: 输入一个单词:列出这个单词的所有大小写组合,比如ruby Ruby rUby ruBy r ...

  2. ZeroMQ接口函数之 :zmq_send_const – 从一个socket上发送一个固定内存数据

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...

  3. MySQL、mybatis的查询条件-时间段

    1.配置文件中的写法 <if test="startTime !=null and startTime !='' "> <![CDATA[ and createT ...

  4. SQL SERVER 数据库操作脚本

    创建数据库 create Database MYDB on ( Name=mydb_dat, FileName='c:\data\mydate.mdf',size=10,maxsize=50 ) LO ...

  5. php取整函数ceil,floor,round,intval函数的区别

    开发过程中,遇到数据处理取整的时候,你会用哪个呢,小涛来介绍一下:PHP取整函数有ceil,floor,round,intval,下面详细介绍一下: 1.ceil — 进一法取整说明float cei ...

  6. webrtc初识

    最近由于项目的需求,开始接触了webrtc这个东西.没想到这东西的门槛还是蛮高的,接下来分享一下我所踩过的坑,希望对以后初次接触这个东西的人有所帮助. webrtc官网 第一步当然是看官方主页了(ww ...

  7. POJ2965

    #include <stdio.h> char map[4][4]; int map1[4][4]; int map2[4][4]; int num[16]; int min=1000,n ...

  8. 出售一套Unity + Lua热更新框架代码

    出售一套Unity + Lua的客户端框架代码,功能有资源管理.网络通信.配置文件解析.热更新.文件读写.Lua加密揭秘.UI框架.打包工具.编辑器工具等,已经在多个实际项目(已上线)中使用.代码优雅 ...

  9. django--forms

    forms模块的功能 1 表单提交验证 2 生成HTML标签 其他 提交后保留页面数据 创建forms类 首先从django中引入forms,一般会在application中新建一个文件专门保存for ...

  10. oracle正则表达式的用法

    <SPAN style="FONT-SIZE: 18px">Oracle 正则表达式函数-REGEXP_SUBSTR 使用例子 .5个参数 第一个是输入的字符串 第二个 ...