android简介
Android简介
安卓学习内功心法:
1: 耐心
2: 多练,反复练,直到熟练
3: 卸掉包袱----手机助手类软件
4: 记的零散的东西多,不如java阶段理论系统性强.
5: 有道云笔记
6: 有道词典
7: 谁用谁知道。。。先编程试验,不懂的再问
一.本节知识点概述
1.Android概述
- 什么是Android?Android的发展历史.
- Android的四层体系架构
- Android的应用开发体系
2.环境搭建resource
- Android集成开发环境下载与解压
- Android集成开发环境目录说明
- Eclipse工具的使用说明
- AVD创建参数说明
- 启动AVD与DDMS说明
3.第一个Android项目HelloWord
- Eclipse中创建Android项目
- Android项目目录说明
- 运行Android项目
4.扩展知识
- Genymotion模拟器
- 常用adb命令
- JVM与DVM的区别
二.本节知识点学习要求
- 了解Android系统
- 掌握Android四层体系架构
- 了解Android应用开发体系
- 掌握Android环境搭建
- 掌握Android项目的创建与运行
- 掌握Android学习方法
三.Android知识点详细讲解
一、Android概述
<1>.什么是Android 【了解】
简单地说,就是一款基于Linux内核的手机操作系统。
l手机设备的软件栈,包括
l一个完整的操作系统l中间件l关键的应用程序
l底层是linux内核
l安全管理l内存管理l进程管理l电源管理l硬件驱动
<2>.Android系统特点【了解】
l开放
l开源lJava语言
<3>.不同移动平台简介【了解】
BlackBelrry,Symbian,Windows Phone,IOS,Android
<4>.Android发展史【了解】
android是目前市场上占有率最高的移动操作系统.
- Android公司于2003年在美国加州成立,创始人Andy Rubin;
- 2005年由Google收购注资;
- 2007年,组建开放手机联盟(同年1月,苹果推出第一个ios系统);2007年11月12日,Google发布Android1.0操作系统;
- 2008年9月,首款搭载Android 1.0 OS的Android手机诞生T-Mobile G1。不支持触摸输入,因此G1配置实体键盘。(HTC宏达电代加工);
- 2009年4月30日发布Android 1.5 Cupcake。这是Android发展历史上第一个重要的里程碑。此后,Android系统版本都是以甜点进行命名,并以字母排序;
- 2009年9月15日发布Android 1.6 Donut。Android1.6首次支持了CDMA网络;
- 2009年11月Android 2.0 Eclair闪电泡芙 降临了。它是Android发展历史上第二个重要的里程碑;
- 截止到2010年,android成为全球第一大智能手机操作系统。2010年5月20日发布Android 2.2 Froyo。
- 2010年12月7日发布Android 2.3 Gingerbread。该版本开始对NFC的支持(Near Field Communication);
- 2011年2月2日发布Android 3.0 Honeycomb。“蜂巢”正式进军平板电脑。
- 2011年10月19日在香港发布Android4.0 Sandwich。4.0是Android发展历史上又一次重大的升级;
- 2012年6月28日发布Android 4.1/4.2/4.3 2013年7月24日 Jellybean果冻豆 。Android4.1是谷歌继蜂巢之后,一次全新的平板策略尝试。
- 2013年9月3日,Google在Android.com上宣布下一版本命名为KitKat“奇巧”。版本号为4.4。
- 2014年6月25日于Google I/O 2014大会上发布Developer版(Android L),之后在2014年10月15日正式发布Android 5.0且名称定为Lollipop“棒棒糖”。
- 2015年8月17日,谷歌宣布,新版系统的正式版本号为6.0,系统的名字是“棉花糖”(Marshmallow)
<5>.Android版本更替【掌握】
- 1.0 Astral(阿童木) 2008-9-23 API 1
- 1.1 Bender(发条机器人) 2009-02 API 2
- 1.5 Cupcake(纸杯蛋糕) 2009-4-30 API 3
- 1.6 Donut(甜甜圈) 2009-9-15 API 4
- 2.0/2.0.1/2.1 Eclair(闪电泡芙) 2009-10-26 API 7
- 2.2 Froyo (冻酸奶) 2010-5-20 API 8
- 2.3.1/2.3.3 Gingerbread(姜饼) 2010-12-7 API 9/API 10
- 3.0/3.1/3.2 Honeycomb (蜂巢) 2011-2-2 API 11/12/13
- 4.0/4.0.3 Icecream Sandwich (冰激凌三明治) 2011-10-19 API 14/15
- 4.1.2/4.2.2/4.3JellyBean(果冻豆) 2012-2013 API 16/17/18
- 4.4 KitKat (奇巧巧克力) 2013-10 API 19
- Android L 开发者预览版 2014-6 API 20
- 5.0 Lollipop['lɑlɪ'pɑp]棒棒糖 2014-10-16 API 21
- 6.0 棉花糖 Marshmallow 2015-8 API 24
①.从2007年11月Google发布Android 1.0 Beta版开始,Android经历了1.x、2.x、3.x、4.x、5.x、6.x几个时代;②.1.x和2.x只支持手机;③.3.x是专门用在平板电脑上的版本;④.4.0开始,Android将手机和平板电脑两种平台上的系统合二为一.
<6>.Android的四层体系架构【掌握】
1. 系统内核层(Linux Kernel):是硬件和其他软件堆层之间的一个抽象隔离层。
该层主要包括:安全机制、驱动、内存管理、进程管理、网络协议等组件。
2. 系统运行库层(执行层,c/c++函数库层(Libraries)及Android Runtime):
- Java不能直接访问硬件,要访问硬件,必须使用NDK。NDK是由c/c++语言编写的库(.so文件),该层是对应用程序框架层提供支持的层。
- 本地库:提供一组基于C/C++的函数库;
- 运行环境:包括核心库和Dalvik虚拟机.核心库提供android系统特有的函数功能和java语言函数功能;Dalvik虚拟机实现基于linux内核的线程管理底层的内存管理。
3.应用程序框架层(Application FrameWork):该层一般都是开发人员直接调用的API。
该层主要由Java语言编写。提供android平台基本的管理功能和组件重用机制。
4.应用程序层(Applications):由运行在Dalvik虚拟机上的app组成。(Dalvik是Google公司为Android专门设计的Java虚拟机,运行 Java程序的速度比JVM更快)。 该层由Java语言编写。
<7>.Android的应用开发体系
- Android开发环境配置
- Android界面编程(常用布局、基本组件)
- Android高级组件编程(Dialog设计、ListView设计及分页、Toast、Notification、Menu、WebView)
- 事件处理
- Activity及Intent
- Android应用资源的访问
- Android网络应用开发及异步任务AsyncTask
- Android数据存储(内部存储及SDcard存储)和IO
- 使用ContentProvider实现数据共享
- Service编程
- Broadcast编程
- 图像图像处理
- 多媒体应用开发
- 传感器应用开发
- GPS应用开发
- 性能优化、apk安装、平板技术开发
<8>.Android学习路线图:
- JavaSE基本知识:集合、IO操作、线程、HttpClient、HttpURLConnection、XML解析、JSON解析
- WEB开发知识:HTML、jsp、servlet
- 安卓开发技术
二、Android开发环境搭建
<1>.移动开发的三要素【了解】
①.SDK:每一种移动平台都会提供一套SDK供开发者开发应用程序。
- JavaSDK(software development kit),7.x版本
- AndroidSDK(不分32位,64位)
②.Emulator['emjʊleɪtə](模拟器):每一种移动平台均会提供一个模拟器用于在PC上调试和运行程序. 开发工具中自带的AVD模拟器;genymotion模拟器;真机。③.IDE(Integrated Develop Environment):集成开发环境,允许开发者开发和调试程序,并将程序部署在目标机上运行
- Eclipse及ADT插件(android development tools)
<2>.开发环境搭建方法【了解】
①.方法一:下载并安装Java SDK -> 下载Eclipse -> 下载Android SDK -> 安装并配置ADT ->创建配置AVD②.方法二:从Android官网上直接下载已打包好的Android开发工具包
<3>.具体搭建过程【掌握】
方法一的安装步骤:
1.下载并安装Java SDK:下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html2.下载eclipse:下载地址:http://www.eclipse.org/downloads/
Eclipse IDE for Java EE Developers
3.下载Android SDK:下载地址:http://developer.android.com/sdk/index.html
需要FQgreat fire wall : GFW
4.安装ADT:安装ADT有两种方式:(方式1)先下载,然后从本地安装
下载地址:http://developer.android.com/sdk/installing/installing-adt.html
下载好ADT的压缩包之后,进行解压缩;然后打开Eclipse,从顶部菜单栏选择Help -> Install New Software,点击Add Site...,然后点击Archive... 在Eclipse插件安装界面中,找到刚才已解压的ADTPlugin文件夹,并确认返回。 在返回的配置窗口,将会列出待添加的插件。点击复选框项目 Android Development Tools,点击Install..(方式2)直接在线安装:
启动Eclipse,点击Help ->Intall New Software插件安装界面中,在“Location”栏中输入ADT在网络上的地址:https://dl-ssl.google.com/android/eclipse/
需要FQ
配置ADT:
启动Eclipse,在菜单栏中选择Windows -> Preferences,点击Android这个条目,将SDK Location栏中的内容设置为Android SDK文件夹的路径。至此,Android开发环境已搭建完毕。
方法二的安装步骤:
<4>.Eclipse的首选项设置[可选]:window菜单->preferences字符集设置:
- General——Editors——TextEditors——Spelling——UTF-8
- General——Workspace——Text file encoding——UTF-8
<5>.Android-sdk目录结构介绍
- tools 独立于 Android 平台的开发工具,这里的程序可能随时更新
- platforms 一系列 Android 平台版本
- platform-tools 开发工具,在平台更新时可能会更新
- sources 源代码
- add-ons Android 开发需要的第三方文件
- docs Android 的文档。包括开发指南、 API 等
- extras 附件文档
- samples 例子
- temp 缓存目录
<6>.开发Android的Eclipse透视图设置
- DDMS:Dalvik Debug Monitor Service (Dalvik调试监视服务)
- LogCat:Log的五个等级(按严重程度从小到大): verbose(冗烦的)< debug < info < warn < error
不推荐用System.out.println(...);输出日志,因为
- 时间无法确定
- 不能添加过滤器
- 没有级别区分
- AVD Manager
- SDK Manager
<7>.eclipse关联源码点击需要访问的类或者方法,显示界面如下图:
点击“Attach source”,选择"External location"单选按钮 ,点击“External Folder”,找到android_sdk下面的sources目录下的某个子目录即可。
三、第一个Android小程序--HelloWorld及Android项目目录结构介绍
在导航栏点击鼠标右键new--android application project①.HelloWorld小程序初体验:
在xml布局文件中给一个文本控件的id赋值;
在MainActivity的onCreate方法中,加载该文本控件;
给该文本控件赋值。
②.Android程序的目录结构
- src(开发人员源码放置目录):src是source的简称.
- gen(自动生成R.java,所有的资源文件都会在R.java文件中以final static 内部类的形式被注册。所以可以通过R.id,R.layout等形式来访问资源。)不要手动修改.
- assets(资产目录。在这个目录中放置的资源文件,不会在R.java文件中被注册。一般程序中的音频或视频文件可以放置在这个目录下。)
- bin(编译后的class等文件在此目录。系自动生成)
- libs(项目自动生成)
- res(资源文件夹。是Android编程中最重要的目录之一。多数重要资源都定义在这个目录下。) res是resource的简称.
- drawable(放置图片的目录)【注意:android中不允许图片资源的文件名中出现大写字母,并且不能以数字开头】
- layout(放置布局文件的目录)
- menu(放置菜单文件的目录)
- values(放置字符串、尺寸等文件的目录)
- AndroidManifest.xml (Android清单文件——是Android开发中非常重要的配置文件)
- 该文件中定义了本App的包名和版本号;
- 适用的手机操作系统最大及最小的兼容版本号;
- 注册和管理Android的应用组件;
- 用户权限的声明等等。
【备注:】res和assests目录的不同:
- 是否在R.java文件中被注册;res自动注册, assets不会注册.
- res所放的文件类型是规定好的;而assests目录下放置的文件类型不受限制;
- 访问方法不同。res中文件使用 R.内部静态类名(例如layout).资源id 来访问;而assest中的文件通过IO流来访问
四.创建安卓模拟器
创建新的AVD:AVD Name: avd1Device设备:推荐2.7'' QVGA (240 X 320: ldpi)Target模拟器上安卓的版本:推荐4.4.2CPU:ARM/INTEL如果能够安装intel加速器成功,则推荐选择使用intel的cpuD:\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_ManagerKeyboard:保持选中.允许使用电脑键盘输入.Skin:Skin with dynamic hardware controls,提供回退/主页等按钮Back Camera:后摄像头(主摄像头),推荐:noneRAM:相当于电脑"内存"的概念,一般不修改.VM heap一般不改.Internal Storage:相当于电脑硬盘的概念,一般不改.SD Card:相当于电脑的移动硬盘,size通常设置为100. 如果不设置,写SD卡的时候会出错!Emulation options:一般选中Snapshot快照,来加快模拟器启动的速度.Use Host GPU表示使用宿主机的GPU,如果宿主机性能很好,且有GPU,可以选择使用.选择AVD设备,点start按钮,在弹出对话框中,保留Launch from snapshot,表示如果有已经保存的快照,则从快照启动,以提高速度.和Save to snapshot两个复选框选中,点击Launch(启动)按钮
五.拓展知识.
1.genymotion模拟器的安装[见Day01_扩展_Genymotion].
2.常用的adb命令:Android debug bridge准备工作: 将platform-tools和tools目录都加入系统环境变量Path键中(类似于java第一天加JDK的目录到环境变量)
1. 显示当前运行的全部模拟器:
adb devices
List of devices attached192.168.91.101:5555 device
2. 安装应用程序:格式: adb install -r 路径名/应用程序名.apk其中 -r 表示 replace existing application
如 adb install -r d:/com.qihoo.appstore_300030223.apk
3. 获取模拟器中的文件,传到电脑中:adb pull <手机目录文件名> <电脑目录文件名>
如 adb pull /mnt/sdcard/Angel.mp3 d:/a.mp3
4. 把电脑中的文件 传给模拟器:adb push <电脑目录文件名><手机目录文件名>如a.mp3是d盘根目录下的一个文件在dos命令行下d:\> adb push a.mp3 /mnt/sdcard/abc.mp3
5. 卸载apk包:
adb uninstall apk包的主包名(不加后缀)
例如: adb uninstall com.qihoo.appstore
6、访问数据库SQLite3adb shell进入 shell之后,进入 /mnt/sdcard/目录, sqlite3 abc.dbcreate table <表名>(<字段名1> <数据类型1> [primary key] [autoincrement],<字段名2> <数据类型2>, ......);drop table <表名>;alter table <表名> add [column] <字段名> <数据类型>;CRUD:新建/查询/修改/删除insert into <表名> (字段1,字段2...) values(值1,值2 ....);select * from <表名> where <条件> order by <字段1> [asc/desc],<字段2> [asc/desc].....
update <表名> set <字段名1>=值1,<字段名2>=值2 where <条件>;delete from <表名> where <条件>;
3.JVM与DVM的区别.
①.编译过程:JVM: .java--->.class--->.jar;DVM: .java--->.class--->.dex--->.apk;
- Dalvik是冰岛一个小镇的名字。Dalvik VM获取生成的java类文件,将它们组合为一个或者多个、Dalvik可执行文件(.dex)。Dalvik VM的目标是找到所有可能的方式来优化JVM性能、内存及电池寿命。
- 采用Dalvik VM的一个结果是,Android中最终的可执行程序代码不是java字节码,而是.dex文件。这意味着无法直接执行java字节码,必须得到java的.class文件,然后将它们转换为.dex文件。
②.基于的架构:JVM: 基于栈的架构;DVM: 基于寄存器的架构;
在有限的人生中,你总是在追寻更大的世界,
在忙碌中,赢得更多人生财富,
也在前进中,扩展生命的宽度,
活在当下,去收获更多激情,也活出自我,懂得放弃更多,每一次的自由,让心更辽阔,
你走得越远,就越知道,
世界再大,总有牵挂,
因为,爱,一直都在!