最新Android基础.docx

上传人:b****7 文档编号:8985783 上传时间:2023-02-02 格式:DOCX 页数:94 大小:1.89MB
下载 相关 举报
最新Android基础.docx_第1页
第1页 / 共94页
最新Android基础.docx_第2页
第2页 / 共94页
最新Android基础.docx_第3页
第3页 / 共94页
最新Android基础.docx_第4页
第4页 / 共94页
最新Android基础.docx_第5页
第5页 / 共94页
点击查看更多>>
下载资源
资源描述

最新Android基础.docx

《最新Android基础.docx》由会员分享,可在线阅读,更多相关《最新Android基础.docx(94页珍藏版)》请在冰豆网上搜索。

最新Android基础.docx

最新Android基础

 

Android基础

1.前言

1.1.什么是3G、4G

•第三代移动通信技术(3rd-Generation),速率一般在几百Kbps,较之前的2G和2.5G在数据传输速度上有很大提升。

•第四代移动通信技术(4th-Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求。

•目前主流的3G技术标准有三种:

WCDMA:

全球80%以上的3G网络都是采用此种制式。

中国联通运营。

186

CDMA2000:

目前日韩及北美使用较多。

中国电信运营。

189

TD-SCDMA:

中国自主知识产权的3G通信技术。

中国移动运营。

188

•目前主流的4G技术为LTE,但还没有被广泛应用:

GSM→GPRS→EDGE→WCDMA→HSDPA→HSDPA+→LTE

1.2.什么是Android

•Android本义指“机器人”,Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,官方中文名:

安卓。

•Android系统早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营。

•底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,大部分程序以Java语言编写。

•由于Android系统的开源特性,很多制造商都在生产Android系统的设备,如:

摩托罗拉、HTC、三星、索爱、LG、小米、华为、魅族等。

•Android系统除了运行在智能手机上之外,还可以用做平板电脑、电视、汽车等很多设备上。

•Android系统架构图:

1.3.Android的版本升级

•1.5Cupcake(纸杯蛋糕)

拍摄/播放影片,并支持上传到Youtube

支持立体声蓝牙耳机,同时改善自动配对性能

最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索

GPS性能大大提高

提供屏幕虚拟键盘

主屏幕增加音乐播放器和相框widgets

应用程序自动随着手机旋转

短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件

相机启动速度加快,拍摄图片可以直接上传到Picasa

来电照片显示

•1.6Donut(甜甜圈)

重新设计的AndroidMarket

手势支持

支持CDMA网络

文字转语音系统(Text-to-Speech)

快速搜索框

全新的拍照接口

查看应用程序耗电

支持虚拟私人网络(VPN)

支持更多的屏幕分辨率。

支持OpenCore2媒体引擎

新增面向视觉或听觉困难人群的易用性插件

•2.1Éclair(闪电泡芙)

优化硬件速度

"CarHome"程序

支持更多的屏幕分辨率

改良的用户界面

新的浏览器的用户接口和支持HTML5

新的联系人名单

更好的白色/黑色背景比率

改进GoogleMaps

支持MicrosoftExchange

支持内置相机闪光灯

支持数码变焦

改进的虚拟键盘

支持蓝牙2.1

支持动态桌面的设计

•2.2Froyo(冻酸奶)

支持将软件安装至扩展内存

集成AdobeFlash10.1支持

加强软件即时编译的速度

新增软件启动"快速"至电话和浏览器

USB分享器和WiFi热点功能

支持在浏览器上传档案

更新Market中的批量和自动更新

增加对MicrosoftExchange的支持(安全政策,auto-discovery,GALlook-up)

集成Chrome的V8JavaScript引擎到浏览器

加强快速搜索小工具

更多软件能透过Market更新,类似2.0/2.1中的Map更新

速度和性能优化

•2.3Gingerbread(姜饼)

修补UI

支持更大的屏幕尺寸和分辨率(WXGA及更高)

系统级复制粘贴

重新设计的多点触摸屏幕键盘

本地支持多个镜头(用于视频通话等)和更多传感器(陀螺仪、气压计等)

电话簿集成InternetCall功能

支持近场通信(NFC)

强化电源、应用程序管理功能

新增下载管理员

优化游戏开发支持

多媒体音效强化

从YAFFS转换到ext4文件系统

开放了屏幕截图功能

对黑色及白色的还原更加真实

•3.xHoneycomb(蜂巢)

仅供平板电脑使用

GoogleeBooks上提供数百万本书

支持平板电脑大萤幕、高分辨率

新版Gmail

GoogleTalk视讯功能

3D加速处理

网页版Market(Webstore)详细分类显示,依个人Android分别设定安装应用程序

新的短消息通知功能

专为平板电脑设计的用户界面(重新设计的通知列与系统列)

加强多任务处理的接口

重新设计适用大屏幕的键盘及复制粘贴功能

多个标签的浏览器以及私密浏览模式

快速切换各种功能的相机

增强的图库与快速滚动的联络人接口

更有效率的Email接口

支持多核心处理器

3.2优化7吋平板显示

•4.0IceCreamSandwich(奶油三明治)

虚拟按键,增大屏幕面积同时控制手机整体大小

桌面插件Widgets列表呈现在标签页中,与程序列表类似并且共存

文件夹更容易创建和管理,与iOS类似

可定制的桌面系统

可视语音邮件

日历支持缩放操作

Gmail离线搜索,两行预览,以及底部新快捷栏

音量下键+电源键组合截图

改进虚拟键盘纠错

从锁屏界面直接访问应用程序

优化复制粘贴

新版浏览器

新的Roboto字体

流量控制系统

相机应用

人脸识别,刷脸解锁

内置照片编辑器

多任务列表

新的图库布局和组织方式

联系人应用整合社交网络信息

AndroidBeam

1.4.主流智能手机操作系统

2.搭建开发环境

2.1.所需资源

•JDK,Java开发环境。

下载地址:

•Eclipse,IBM公司开发的一款开源IDE。

•AndroidSDK,Android开发工具,包含开发Android程序所需类库、源码、文档、案例等资源。

•ADT插件,ADT是Eclipse平台下用来开发Android应用程序的插件。

2.2.Eclipse安装ADT插件

2.3.配置SDK路径

2.4.启动虚拟机

Ø点击机器人图标

Ø弹出虚拟机管理器

Ø修改虚拟机默认目录

指定环境变量android_sdk_home,通常指定为SDK所在目录,可以随意指定。

重启Eclipse之后将会以这个目录作为存放虚拟机文件的位置。

Ø配置虚拟机

•Name:

虚拟机的名字,可随意定义

•Target:

虚拟机版本

•SDCard-Size:

虚拟机的SDCard大小,会在本地硬盘创建指定大小的文件用来存储数据,模拟真实手机的SDCard

如果使用原有文件,可以选择File并点击Browse指定文件

•Snapshot:

保存快照,可以提高虚拟机启动速度,但在开发时bug多,一般不勾

•Skin-Built-in:

选择分辨率

HVGA:

480x320

QVGA:

320x240

WQVGA400:

400x240

WQVGA432:

432x240

WVGA800:

800x480

WVGA854:

854x480

也可以选择Resolution自行指定

Ø成功进入Android操作系统界面

•如果虚拟机显示无信号,需要对电脑的网络连接进行配置

无论电脑是否联网,IP地址、子网掩码、默认网关、首选DNS服务器都需要配置

•电脑如果未连接局域网或互联网,可以见默认网关和首选DNS服务器配置成本机IP,例如:

•电脑如果已连接局域网,需要将网关和首选DNS服务器进行设置,例如:

•如果电脑已连接互联网,正常情况虚拟机不会显示无信号,重启虚拟机

2.5.命令行操作

为了能在任意目录使用一下命令,需要将SDK目录下的platform-tools文件夹路径和tools文件夹路径配置到path环境变量中

•列出可以使用的android版本

androidlisttargets

•列出可以使用的虚拟机

androidlistavd

•创建虚拟机

androidcreateavd–n<虚拟机名>-t-c-s<屏幕尺寸>

•启动虚拟机

emulator–avd<虚拟机名>

•显示已连接的设备

adbdevices

•导入文件到手机

adbpush<手机目标路径>

•从手机导出文件

adbpull<手机源文件路径>

•安装程序

adbinstall

•卸载程序

adbuninstall<包名>

•重启adb

adbkill-server

abdstart-server

3.开发一个Android程序

3.1.创建Android程序

Ø创建AndroidProject

•Projectname:

项目名

•BuildTarget:

Android版本

•Applicationname:

程序名,显示在程序列表中,以及程序启动后的标题栏

•Packagename:

包名,程序的唯一标识

•CreateActivity:

选择程序启动时是否创建一个窗体,设置主窗体名字

•MinSDKVersion:

设置运行该程序所需的最低版本

3.2.安装、卸载程序

•Eclipse安装

右键点击工程–Runas–AndroidApplication

•虚拟机卸载

设置–应用程序–管理应用程序–选中要卸载的程序–卸载

3.3.了解项目目录结构

•src:

源代码

•gen:

系统自动生成的文件

R.java中记录了项目中各种资源ID

•res:

系统资源,所有文件都会在R文件生成资源ID

drawable:

图片

layout:

界面布局

values:

数据

anim:

定义动画的XML

raw:

原生文件

•assets:

资源路径,不会在R文件注册

•project.properties:

供Eclipse使用,读取该项目使用Android版本号。

早期版本名为:

default.properties

•AndroidManifest.xml:

清单文件,在软件安装的时候被读取

Android中的四大组件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在该文件中注册

程序所需的权限也需要在此文件中声明,例如:

电话、短信、互联网、访问SD卡

•bin:

二进制文件,包括class、资源文件、dex、apk等

•proguard.cfg:

用来混淆代码的配置文件,防止别人反编译

3.4.Android程序启动过程

•将.apk文件安装到虚拟机完成程序安装

•启动程序–开启进程–开启主线程

•创建Activity对象–执行OnCreate()方法

•按照main.xml文件初始化界面

4.演示案例

4.1.电话拨号

•搭建界面需要组件:

TextView、EditText、Button

•当点击Button时获取EditText中文本

•使用Intent向系统内置的电话拨号器发送意图拨打电话

•注册拨打电话权限

4.2.查看程序错误信息

•Android程序中如果出错,错误不会显示在Console中,而是显示在LogCat界面下。

可以从window–showview中打开

•日志信息分为5个级别:

verbose>debug>info>warn>error高级的包含低级的

•可以创建过滤器对日志进行过滤显示,点击绿色加号,可以按照tag、pid、level进行筛选

4.3.将程序安装到真实手机

•在电脑上安装手机驱动

有些手机自带驱动,有些没有,可以从官网下载。

•在手机设置中打开USB调试,将手机用USB数据线连接到电脑

我的手机是:

三星i9100

双核1228MHz、1GBRAM、4GBROM、480×800像素、Android2.3、4.3英寸

•检查Eclipse的设备管理器中是否显示出新设备

如果未能显示出设备,检查驱动安装是否正常,USB调试是否打开

•Eclipse安装程序

Eclipse上右键点击工程–Runas–AndroidApplication–自动安装运行

•手动打包安装

右键点击工程–Export–ExportAndroidApplication–选择或创建密钥对程序签名并打包生成apk文件

将apk文件放到手机的SD卡中,通过手机文件浏览器执行安装

4.4.短信发送

•搭建界面需要组件:

TextView、EditText、Button

•给Button添加监听器,当被点击的时候获取号码,获取内容

•使用SmsManager发送短信

•需要注册短信发送权限

4.5.布局

ØRelativeLayout(相对布局)

•android-sdk-windows/docs/guide/topics/ui/layout-objects.html#relativelayout

ØTableLayout(表格布局)

android-sdk-windows/docs/guide/topics/ui/layout-objects.html#tablelayout

ØFrameLayout(帧布局)

android-sdk-windows/docs/guide/topics/ui/layout-objects.html#framelayout

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

4.6.Junit

Ø项目中添加测试类

•在AndroidManifest.xml清单文件中添加配置

targetPackage=android:

name=/>

name=/>

•定义一个类继承AndroidTestCase,定义测试方法

•在Outline视图下右键点击测试方法–Runas–AndroidJunitTest

Ø创建测试项目

•创建AndroidTestProject

•输入项目名,选择一个已存在的工程,Eclipse可以自动配置Junit环境

4.7.日志信息

•在LogCat视图中我们可以看到程序的日志信息,也可以在程序中输出信息到LogCat中

•程序中我们可以使用Log类来输出信息

5.文件操作(File、XML、SharedPreferences)

5.1.读写文件

Ø写入文件到SD卡

•需要在清单文件中注册权限

name=/>

可以通过Environment.getExternalStorageDirectory()获取当前SDCard位置,兼容所有版本

•获取SDCard状态

通过Environment.getExternalStorageState()方法获取SDCard当前状态

常量Environment.MEDIA_MOUNTED为已安装

Ø写入文件

•通过Context.openFileOutput(Stringname,intmode)可以获取一个文件输出流

name为文件名,mode为文件模式,有4种模式

输出流指向路径为:

/data/data/包名/files/

•文件模式在Context中有定义常量

MODE_PRIVATE私有

MODE_WORLD_READABLE其他程序可读(不可写)

MODE_WORLD_WRITEABLE其他程序可写(不可读)

模式可以组合使用,例如:

MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE

MODE_APPEND追加

Ø读取文件

•通过Context.openFileInput(Stringname)可以获取一个文件输入流

该输入流可以读取/data/data/包名/files/路径下的文件

•获取当前程序Files文件路径

ContextWrapper.getFilesDir()

5.2.偏好设定(SharedPreferences)

•在程序中保存一些配置参数的时候我们经常使用SharedPreferences

Context.getSharedPreferences(Stringname,intmode)

该方法可以在/data/data//shared_pref/目录下创建一个以name命名的xml文件,mode文件为模式

•存储偏好

调用edit()方法可以获取一个Editor对象,对数据进行存储,存储之后需要调用commit()保存到文件

•读取偏好

获得SharedPreferences之后调用getString()、getInt()等方法获取其中设置的值

•在Activity中获取SharedPreferences

在Activity中可以调用getPreferences(intmode)方法获得一个SharedPreferences,文件名和Activity名一致

5.3.XML

ØPull简介

•常见的XML解析方式有三种,DOM、SAX、Pull,Android系统中推荐使用Pull

•Pull解析器是一个开源的Java项目,Android系统内部解析XML文件均为此种方式,也可用于JavaEE项目

•AndroidSDK中已经集成了Pull解析器,无需添加任何jar文件

•Pull解析器运行方式与SAX类似,提供各种事件的判断

•官方网站:

http:

//xmlpull.org/

Ø使用Pull解析器解析XML文件

•Xml.newPullParser()获得解析器

•parser.setInput(in,"UTF-8")设置输入流以及编码

•parser.next()获取下一个解析事件,得到一个事件代码

•XmlPullParser中定义了常量来标识各种解析事件

START_DOCUMENT、END_DOCUMENT、START_TAG、END_TAG、TEXT

Ø使用XmlSerializer写出XML

•使用以下方法生成XML,和XML文档顺序类似

startDocument

startTag

attribute

text

endTag

endDocument

6.数据库(SQLite)

6.1.SQLite特点

•Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型

例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数。

除非是主键被定义为Integer,这时只能存储64位整数

•创建数据库的表时可以不指定数据类型,例如:

CREATETABLEperson(idINTEGERPRIMARYKEYAUTOINCREMENT,nameVARCHAR(20))

CREATETABLEperson(idINTEGERPRIMARYKEYAUTOINCREMENT,name)

•SQLite支持大部分标准SQL语句,增删改查语句都是通用的,分页查询语句和MySQL相同

SELECT*FROMpersonLIMIT20OFFSET10

SELECT*FROMpersonLIMIT10,20

6.2.创建数据库

•定义类继承SQLiteOpenHelper

•声明构造函数,4个参数

•重写onCreate()方法

•重写upGrade()方法

•注意:

SQLite数据库中列一旦创建不能修改,如果一定要修改,需要重新创建表,拷贝数据

6.3.CRUD操作

•和JDBC访问数据库不同,操作SQLite数据库无需加载驱动,不用获取连接,直接可以使用

获取SQLiteDatabase对象之后通过该对象直接可以执行SQL语句

SQLiteDatabase.execSQL()

SQLiteDatabase.rawQuery()

•getReadableDatabase()和getWritableDatabase()的区别

查看源代码后我们发现getReadableDatabase()在通常情况下返回的就是getWritableDatabase()拿到的数据库

只有在抛出异常的时候才会以只读方式打开

•数据库对象缓存

getWritableDatabase()方法最后会使用一个成员变量记住这个数据库对象,下次打开时判断是否重用

•SQLiteDatabase封装了insert()、delete()、update()、query()四个方法也可以对数据库进行操作

这些方法封装了部分SQL语句,通过参数进行拼接

6.4.事务管理

•在使用SQLite数据库时可以用SQLiteDatabase类中定义的相关方法控制事务

beginTransaction()开启事务

setTransactionSuccessful()设置事务成功标记

endTransaction()结束事务

•endTransaction()需要放在finally中执行,否则事务只有到超时的时候才自动结束,会降低数据库并发效率

7.内容提供者(ContentProvider)

7.1.什么是内容提供者

•内容提供者是Android中的四大组件之一,可以将应用中的数据对外进行共享

•内容提供者将数据的访问方式统一,不必针对不同数据类型采取不同的访问策略

•内容提供者将数据封装,只暴露出我们希望提供给其他程序的数据

•内容提供者中数据更改可被监听

7.2.创建内容提供者

•定义类继承ContentProvider,根据需要重写内部方法

•在清单文件的节点下进行配置,标签中需要指定name和authorities属性

name为类名,包名从程序Package开始,以“.”开始

authorities:

是访问Provider时的路径,要唯一

•URI代表要操作的数据,由scheme、authorites、path三部分组成

content:

//cn.itcast.sqlite.provider/person

scheme:

固定为content,代表访问内容提供者

authorites:

节点中的authorites属性

path:

程序定义的路径,可根据业务逻辑定义

7.3.完成CRUD方法

•当程序调用CRUD方法时会传

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1