今天学习Android基本环境及基础知识,正确来说是重新温习Android知识,因为初次接触Android开发已经是两年前的事,如今又回到Android开发依然那么熟悉,依然可以让人很兴奋,Android选择了以java为基础让众多java平台的开发者偷笑了……

  很多书本在开端长篇大论Android的起源,像讲故事一样,但我们只需知道几点知识即可,剩下的后面再回来看故事也不迟,毕竟Android是拿来开发不是拿来讲故事。Android是由Google领导的OHA(开发手持设备联盟)公开发布的,并且开放源代码,Google在里面发挥了挑大旗的责任,现在都还是,Android的爷爷是Andy Rubin,后来任职于Google,再后来又离职了。现在大家担心的是Android系统愈加碎片化,但不知道这是好事还是坏事,以后再说。

  Android是由Linux为核心的移动设备操作系统,主要架构分为四层:最低层就是linux kernel,提供硬件驱动、内存、进程、网络等等底层管理;接着的一层就是链接库和Android Runtime,链接库包含C链接库、SQLite函数库、WebKit函数库等等,Android Runtime主要包含核心库以及DVM(非常类似JVM的一种东东);再上来一层就是应用程序框架,也就是Android应用的各种框架规则;最顶层就是Android应用程序,直接面对用户,没话可说了。由此可见,我们绝大多数的应用开发者是在第三层玩,少数底层开发、架构设计研究者会到第二层玩(估计是要模拟出另一个Android系统了,就像 阿里云),第四层就没话可说了,只要考虑用户体验、用户操作。

  好像讲了听到,像是讲故事了。但此故事非彼故事,这个过程是引导学习Android的基本架构,先从宏观方面一览众山小,而后在微观学习的时候举一反三,事半功倍,当然,这只是我的个人学习思路。下面还要继续啰嗦。

  Android的1.X和2.X版本都是为手机准备的,3.X版本是专为平板准备的,而4.X版本是集大成者,大家都懂,而且还加入了未来的功能,可能应用到网络电视、其他家电设备等等,API Level更要分清楚,以便后面选择模拟器,以及应用的发布最低系统版本要求。Level 10以下是1.X和2.X的,属于低版本Android系统应用,可以兼容绝大多手持设备,但有一些高级功能就不能用,Level11~13是3.X的,开发平板应用的时候选择,Level14以上是4.X的属于高版本,可以使用高级功能,但可能有些旧的手机系统不支持。具体选择哪一个要看自身的产品定位喽,事实上智能机的更新换代速度也是惊人的。

  搭建开发环境包括五样东西:OS、JDK、Eclipse、ADT、Android SDK,具体的安装教程网上一大堆,而且前三项也是java程序员最熟悉的了,只需在Eclipse中安装插件ADT再将Eclipse和SDK关联起来就OK了,以前这个方法很顺畅,但Google回家了以后就没那么容易了,这会让一些新手苦逼地折腾不少时间,所以我建议直接去下载整套环境,直接开发了,推荐地址http://pan.baidu.com/share/link?shareid=249563&uk=3358019106

  搭建好开发环境后就直接开发吧,少年。新建一个项目的流程在网上一堆,没什么障碍。下面分析项目的文件目录架构。/src目录放的是程序的源代码,/bin目录放的是编译后的文件,这对java程序员太熟了,/gen文件夹放一个R.java文件,打开就知道它是个专门提供很多静态属性的类,记录各部分资源的地址位置,以便调用,不能修改,因此这个调用都是底层完成的,知道就好。/assets存放在这个目录下的文件,无论是 mp3 还是图片,都会被打包到发布包中。/res目录放置各种资源,如果/res 下存放的资源在应用中没有使用到,那么在 gen 下的 R.java 的文件中就不会显示,那么打包的时候就不会将这部分资源打包,减少了应用的发布文件大小,/drawable存放图片文件,注意图片名称必须是[a-z0-9_.]组成,drawable 目录下不能分子级目录,只能通过命名方法来加以区分,/raw 直接复制到设备中的任意文件,不会被编译,可以放数据库文件,/values存放字符串,颜色,数组等常量数据。可以任意命名,但是通常命名:color.xml、strings.xml、array.xml、styles.xml、dimens.xml(定义尺寸值:dimension value )。。。还有一些就是设置文件了。

  然后?然后就是去背诵各种基本组件、属性、方法、调用细节……

参考http://www.inandroid.cn/bbs/thread-1401-1-1.html

  

Android基础的更多相关文章

  1. Android基础测试题(四)

    看了前两道题大家有没有发现,测试题少了(一),大家猜猜测试题(一)是什么? Android基础测试题(四): 需求: 建一个方法,格式化输出2016-11-14 10:15:26格式的当前时间,然后截 ...

  2. Android基础测试题(二)

    今天给大家带来的是Android基础测试题(二) 题目要求: 定义一个5位长度的整型数组并初始化,然后构建方法根据用户传入的数字判断是否存在数组中,如果存在,返回所在位置,如果不存在,返回-1 首先第 ...

  3. Mono.Android 基础

    Mono.Android 基础 (地址) Mono.Android项目结构是 — Project + Assets + Resources + drawable + layout + values R ...

  4. 深入理解gradle编译-Android基础篇

    深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...

  5. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

  6. 基础4 Android基础

    基础4 Android基础 1. Activity与Fragment的生命周期. Activity生命周期 打开应用 onCreate()->onStart()->onResume 按BA ...

  7. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

  8. 【Xamarin开发 Android 系列 4】 Android 基础知识

    原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...

  9. Android基础_web通信3

    在Android基础_web通信2中,我运用的JSONObject是Android原生的json类,通过import org.json.JSONObject来导入. 还有另外一种更简单的方法,就是用G ...

  10. Android 基础:常用布局 介绍 & 使用(附 属性查询)

    Android 基础:常用布局 介绍 & 使用(附 属性查询)   前言 在 Android开发中,绘制UI时常需各种布局 今天,我将全面介绍Android开发中最常用的五大布局 含 Andr ...

随机推荐

  1. 第五篇T语言实例开发,百变字符(版本5.0)

    自动生成字符编码 字符的编码 参见下面链接 http://blog.jobbole.com/74109/ http://baike.baidu.com/link?url=QN7HMY2fJTIUfIT ...

  2. SVN-Server搭建及配置

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion ...

  3. LeetCode() Merge Intervals 还是有问题,留待,脑袋疼。

    感觉有一点进步了,但是思路还是不够犀利. /** * Definition for an interval. * struct Interval { * int start; * int end; * ...

  4. 前端基础 JavaScript~~~ 数据处理 奇技淫巧!!!!!!

    常用的JS数据处理手段      2016-09-21          17:40:07 1.   number类型  数组中取出里面的最大/最小值: // 数组中取出 最小值 [数值] var n ...

  5. 前端学习 第四弹: HTML(一)

    前端学习 第四弹: HTML(一) 元素分类:块元素 内联元素 块级元素在浏览器显示时,通常会以新行来开始(和结束). 例子:<h1>, <p>, <ul>, &l ...

  6. shiro中的filterChainDefinitions

    anno:对所有请求放行 logout:立刻退出当前登录用户,并重定向到指定redirectUrl,如果没有指定redirectUrl,貌似是默认重定向到登录页面. authc:当访问需要通过权限验证 ...

  7. Kettle使用介绍

    本文主要阅读目录如下: 1.Kettle概念 2.下载和部署 3.Kettle环境配置 4.Kettle使用及组件介绍 ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装 ...

  8. kali 初始化

    关于kali使用前的一些配置,网上有很多版本,但是几乎都很雷同,或者是不全,或者是根本就没有测试过,或者是有的方法是错的(换句话说是版本变化的差异),因此让很多人接触kali时百度无数,效果一般,浪费 ...

  9. BizTalk调用WS-Security的web services

    最近做个项目,biztalk跟OTM(Oracle Transportation Management)系统做对接,双方通过web services通讯,这部分是BizTalk调用OTM的web se ...

  10. Python六大开源框架对比:Web2py略胜一筹

    Python是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性.除了语言本身的设计目的之外,Python标准库也是值得大家称赞的,Python甚至还自带 ...