资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,Android,开发交流,交流内容,Android,介绍,开发环境,应用组件,工程结构,项目介绍,开发要点,Q&A,开放手机联盟,-Open HandsetAlliance,什么是开放手机联盟?,开放手机联盟,,Open Handset Alliance,:是美国,Google,公司与,2007,年,11,月,5,日宣布组建的一个全球性的联盟组织。这一联盟将会支持,Google,发布的,Android,手机操作系统或者应用软件,共同开发名为,Android,的开放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员数量已经达到了,43,家。,手机联盟创始成员,?,Aplix,、,Ascender,、,Audience,、,Broadcom,、中国移动、,eBay,、,Esmertec,、谷歌、宏达电、英特尔、,KDDI,、,Living Image,、,LG,、,Marvell,、摩托罗拉、,NMS,、,NTT DoCoMo,、,Nuance,、,Nvidia,、,PacketVideo,、高通、三星、,SiRF,、,SkyPop,、,Sonic Network,、,Sprint Nextel,、,Synaptics,、,TAT,、意大利电信、西班牙电信、德州仪器、,T-Mobile,和,Wind River,等。,联盟目的,?,将会支持,Google,可能发布的手机操作系统或者应用软件,共同开发名为,Android,的开放源代码的移动系统。谷歌早在,2002,年就进入了移动领域,可是由于目前的手机操作系统企业和手机企业相对封闭,提行业的进入门槛,移动互联网的发展远没有拥有统一标准的传统互联网发展迅速,此次推出的开源手机操系统平台就是出于这个目的。,也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和移,动互联网。,Android,介绍,什么是,Android,Android,是一种以,Linux,为基础的开放源码,操作系统,,主要使用于便携设备。目前尚未有统一中文名称,,中国大陆,地区较多人使用安卓(非官方)或安致(官方)。,Android,操作系统最初由,Andy Rubin,开发,最初主要支持手机。,2005,年由,Google,收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。,2010,年末数据显示,仅正式推出两年的操作系统的,Android,已经超越称霸十年的诺基亚,Symbian,系统,跃居全球最受欢迎的智能手机平台。,Android,的主要竞争对手是苹果的,IOS,,微软的,WP7,以及,RIM,的,Blackberry OS,。,Android,介绍,系统架构,Android,介绍,应用程序,程序库,Android,运行库,Linux,内核,应用程序框架,Android,的相关文件类型,Java,文件:,应用程序源文件,Class,文件:,Java,编译后的目标文件,Dex,文件:,Android,平台上的可执行文件(,Dalvik,),Apk,文件:,Android,上的安装文件,Android,介绍,开发,Android,环境,JDK1.5,、,JDK1.6,Eclipse,ADT,(基于开发,Android,的,Eclipse,插件),Android SDK,(运行环境),Android,开发环境,Activiy,介绍,活动是最基本的,Android,应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动,都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对,事件做出响应。大多数的应用是由多个屏幕显示组成。例如,:,一个文本信息的应用也许有一个显示发送消息的,联系人列表屏幕,第二个屏幕用来写文本消息和选择收件人,再来一个屏幕查看消息历史或者消息设置操作,等。这里每一个这样的屏幕就是一个活动,很容易实现从一个屏幕到一个新的屏幕并且完成新的活动。在某,些情况下当前的屏幕也许需要向上一个屏幕活动提供返回值,-,比如让用户从手机中挑选一张照片返回通讯录,做为电话拨入者的头像。,当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前,一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,,Android,将会保留从主屏幕到每一,个应用的运行屏幕。,简单理解,Activity,代表一个用户所能看到的屏幕,,Activity,主要是处理一个应用的整体性工作,例如,监听系统事件,(,按键事件、触摸屏事件等,),、为用户显示指定的,View,,启动其他,Activity,等。所有应用的,Activity,都继承于,android.app.Activity,类,该类是,Android,提供的基层类,其他的,Activity,继承该父类后,通过,Override,父类的方法来实现各种功能,这种设计在其他领域也较为常见。,应用组件,Activiy,生命周期,应用组件,Intent,介绍,调用,Android,专有类,Intent,进行架构屏幕之间的切换。,Intent,是描述应用想要做什么。,Intent,数据结构两,个最重要的部分是动作和动作对应的数据。典型的动作类型有,:MAIN,(活动的门户)、,VIEW,、,PICK,、,EDIT,等。而动作对应的数据则以,URI,的形式进行表示。例如,:,要查看某个人的联系方式,你需要创建一个动作类,型为,VIEW,的,Intent,,以及一个表示这个人的,URI,。,Android,使用了,Intent,这个特殊类,实现在屏幕与屏幕之间移动。,Intent,类用于描述一个应用将会做什么,事。在,Intent,的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:,M AIN,(,activity,的门户)、,VIEW,、,PICK,、,EDIT,等。而动作对应的数据则以,URI,的形式进行表示。例如:要查看一个人的联系方式,你需要创建一个动作类型为,VIEW,的,intent,,以及一个表示这个人的,URI,。,与之有关系的一个类叫,IntentFilter,。相对于,intent,是一个有效的做某事的请求,一个,intentfilter,则用于描述一个,activity,(或者,IntentReceiver,)能够操作哪些,intent,。一个,activity,如果要显示一个人的联系方式时,需要声明一个,IntentFilter,,这个,IntentFilter,要知道怎么去处理,VIEW,动作和表示一个人的,URI,。,IntentFilter,需要在,AndroidManifest.xml,中定义。,通过解析各种,intent,,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,,activity,将会调用,startActivity(IntentmyIntent),方法。然后,系统会在所有安装的应用程序中定义的,IntentFilter,中查找,找到最匹配,myIntent,的,Intent,对应的,activity,。新的,activity,接收到,myIntent,的通知后,开始运行。当,startActivity,方法被调用将触发解析,myIntent,的动作,这个机制提供了两个关键好处:,A,、,Activities,能够重复利用从其它组件中以,Intent,的形式产生的一个请求;,B,、,Activities,可以在任何时候被一个具有相同,IntentFilter,的新的,Activity,取代。,应用组件,IntentReceiver,:,特定事件的响应与处理,Service,:,不可见,后台持续运行的进程,Content Provider,:,内容提供者,与其它应用共享数据(,SQLite,数据库),应用组件,UI,布局,View,与,ViewGroup,LayoutParams (,布局参数,),应用组件,工程文件结构,src,:,java,源文件目录,res,:,资源文件目录,AndroidManifest.xml,:,工程配置文件目录,bin,目录:,编译后相关文件生成的目录,gen,目录,R .java,:,资源文件相关信息生成的文件,assets,:,其它媒体等文件的目录,工程结构,res,资源文件结构,values,:,可以定义字符串,数组,样式,提供国际化实现,layout,:,自定义,view,的,xml,配置文件,drawable,:,各种图片资料,,android,根据不同手机屏幕自动选择不同目录下图片(,drawable-hdpi,、,drawable-mdpi drawable-ldpi,),工程结构,程序入口,打开另一个新窗口,传递数据与取出数据,Xml,解析,Webservice,调用,Map,开发,引入外部样式,项目介绍,AVD,模拟器:,安装好,SDK,后,需要新建,AVD,,才能运行工程,工程,SDK,版本需与,AVD,版本匹配,Acitvity,:,工程有执行到的,Activity,需要在,AndroidManifest.xml,中注册,layout,:,大部分,UI,元素都需要至少设置,android:layout_height,与,android:layout_width,两个属性;,访问权限:,部分功能需要在,AndroidManifest.xml,中设置对应权限,如访问网络等。,日志:,使用,Log,对象输出,使用,LogCat,窗口查看,开发要点,应用程序签名:,网上参考,调试,D,:,调试工具,开发要点,Q&A,
展开阅读全文