今天学习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. 我的第一个GitHub仓库

    GitHub 仓库地址 https://github.com/FBean/test.git GitHub 常用命令 add--Add file contents to the index bisect ...

  2. HTTP请求 GET POST 网络编程实现

      HTTP请求 GET POST 网络编程实现(转) 原文地址 http://bbs.neworigin.net/forum.php?mod=viewthread&tid=488 在开发网络 ...

  3. ie浏览器 jsp中链接参数为中文的处理

    在js中,使用 encodeURIComponent(encodeURIComponent("警情抽查"))来处理参数,例如: mini.get("khxmdm" ...

  4. css高级

    1.复杂选择器 1.作用 匹配 页面的元素 ... ... 2.选择器分类 1.兄弟选择器 1.作用 通过 元素的位置关系匹配元素 位置关系:兄弟关系(平级元素) <div> <p ...

  5. 配置DNS服务器,实现局域网内的地址正反向解析

    这里会用到BIND(Berkeley Internet Name Domain) 首先查询下本地bind有没有安装 yum list all | grep "^bind" 如果没有 ...

  6. html框架

    1.框架的概念 框架:将一个浏览器窗口划分成若干个小窗口 2.框架集合框架页 框架集<frameset>:主要用来划分窗口的. 框架页<frame>:主要用来指定窗口默认显示的 ...

  7. 取得系统属性和Java环境

    代码如下: import java.util.Enumeration; import java.util.Iterator; import java.util.Map; import java.uti ...

  8. oracle创建删除用户和表空间

    创建用户:sqlplus /nologconn / as sysdba;create user username identified by passwordgreant dba to usernam ...

  9. sublime插件使用整理

    考虑到后续要有更多的时间来写js,周末好好的把sublime整理了下,很多插件非常好.下面一一来说 1.  注释生成插件 DocBlockr 之前每次写函数的注释都要复制其他函数的注释,然后在写,非常 ...

  10. MySQL Innodb数据库性能实践——热点数据性能

    摘要: 对于大部分的应用来说,都存在热点数据的访问,即:某些数据在一定时间内的访问频率要远远高于其它数据. 常见的热点数据有“最新的新闻”.“最热门的新闻”.“下载量最大”的电影等. 为了了解MySQ ...