—高级软件人才实作培训专家!北京传智播客教育讲师:黎活明—高级软件人才实作培训专家!北京传智播客教育,全称为3rdGeneration,中文含义就是指第三代数字通信。所谓3G,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。3G只是一种通信技术标准,符合这个标准的技术有WCDMA、CDMA2000、TD-SCDMA三种无线接口标准。中国联通使用的是WCDMA(世界上大部分3G网络都采用的是该标准);中国电信使用的是CDMA2000(日、韩和北美使用);中国移动使用的是具有自主知识产权的TD-SCDMA(只有中国才使用)。相对第一代模拟制式手机(1G)和第二代GSM、CDMA等数字手机(2G),3G手机能处理图像、音乐、视频等多种媒体形式,提供包括网页浏览、电话会议、电子商务等多种信息服务。3G网络与前两代的主要区别是整合了互联网并且数据传输速度有很大的提升。目前中国正在建设3G网络,大城市的3G网络基本上已经铺设好,像北京铺设好了超过2000个基站,深圳铺设了1000多个基站。但是要全民普及到3G手机尚且需要几年时间。现在,大家使用的手机大多还是2.5G手机,符合2.5G网络的接口标准有CDMA20001X和GPRS,中国联通使用的是CDMA20001X标准,中国移动使用的是GPRS标准。目前,我们可以把2.5G移动通信技术看作是2G迈向3G的衔接性技术,在2.5G网络下出现了如WAP、蓝牙(Bluetoot)等技术。对于2.5G网络,我们应该也要有所了解,因为以后大家到企业中有可能会面对2.5G网络下的应用,如:wap项目。—高级软件人才实作培训专家!北京传智播客教育Android是Google在2007年11月5日推出的开源手机操作系统。目前Android在中国的发展是非常火的,为了节省研发费用,国内很多的手机厂商和移动运营商纷纷加入到了android阵营,其中包括中国移动,中国联通,中国电信,华为,联想等大企业。在中国不管是知名的手机生产厂商还是山寨手机厂商,都已经开始生产Android操作系统的手机。另外android应用的范围不仅仅在手机,还被应用在汽车、平板电脑、和智能上网设备上,听说国外已经有了安装Android系统,并且能够上网的智能电饭煲,用户在千里之外就可以操作电饭煲进行煮饭。由于大家大多使用的手机都属傻瓜手机,也就是打打电话、发发短信。从今天开始,大家必须改变这个观念了,大家需要把智能手机看作是一台电脑,只要安装上相应软件它就能完成电脑所能完成的一切。—高级软件人才实作培训专家!北京传智播客教育智能手机软件平台智能手机软件平台有:Symbian,WindowsMobile,RIMBlackBerry,Android,iPhone,Java/J2ME。2010年市场份额:Symbian36.6%Android25.5%iPhone16.7windowsMobile2.8%linux2.1%—高级软件人才实作培训专家!北京传智播客教育插件所需开发环境:JDK5或以上版本(仅有JRE不够)、Eclipse3.4或以上版本下载用于在Eclipse开发android应用的ADT插件在企业开发中,很多程序员使用EclipseIDE作为应用的开发环境。为了使得Android应用的创建,运行和调试更加方便快捷。Android的开发团队专门针对EclipseIDE定制了一个插件:AndroidDevelopmentTools(ADT)下载地址:安装Eclipse插件(ADT)启动Eclipse,选择HelpInstallNewSoftware,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”,然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件。点击OK.。返回可用软件的视图,你会看到这个插件,然后选择DeveloperTools(会选中下面的“AndroidDeveloperTools”和“AndroidEditors“),点击Next,最后重启Eclipse。下载安装AndroidSDK:AndroidSDK包含了开发Android应用所依赖的jar文件、运行环境及相关工具。下载地址:下载完SDK后,把.zip文件解压到你电脑上合适位置。启动Eclipse,选择window-preferences,在打开的视图左边点击android,在右边的SDKLocation中选择AndroidSDK所在位置。—高级软件人才实作培训专家!北京传智播客教育,新建项目(点击FileNewProject),在项目列表中展开Android目录,选择AndroidProject,如下图:—高级软件人才实作培训专家!北京传智播客教育应用—高级软件人才实作培训专家!北京传智播客教育应用点击”finish”即可完成项目的创建,创建后的项目已经是一个可运行的Android应用,我们可以通过下面方式运行此应用:点击工具栏上机器人形状的虚拟设备管理器(简称“AVD“),如下:—高级软件人才实作培训专家!北京传智播客教育应用在打开的虚拟设备管理器中创建一个虚拟手机:—高级软件人才实作培训专家!北京传智播客教育Androidapplication,如下图:—高级软件人才实作培训专家!北京传智播客教育原代码存放目录gen/自动生成目录gen目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。res/资源(Resource)目录在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。具体请看ppt下方备注栏。assets资源目录Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gpAndroidManifest.xml项目清单文件这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。default.properties项目环境信息,一般是不需要修改此文件—高级软件人才实作培训专家!北京传智播客教育电话拔号器效果图:—高级软件人才实作培训专家!北京传智播客教育电话拔号器因为应用要使用手机的电话服务,所以要在清单文件AndroidManifest.xml中添加电话服务权限:?xmlversion=1.0encoding=utf-8?manifestxmlns:android==cn.itcast.actionandroid:versionCode=1android:versionName=1.0略....uses-sdkandroid:minSdkVersion=“6/uses-permissionandroid:name=android.permission.CALL_PHONE//manifest—高级软件人才实作培训专家!北京传智播客教育电话拔号器界面布局:?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentTextViewandroid:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:text=@string/inputmobile/EditTextandroid:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:id=@+id/mobile/Buttonandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=@string/buttonandroid:id=@+id/button//LinearLayoutLinearLayout(线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)—高级软件人才实作培训专家!北京传智播客教育中的显示单位px(pixels)像素一般HVGA代表320x480像素,这个用的比较多。dip或dp(deviceindependentpixels)设备独立像素这个和设备硬件有关,一般为了支持WVGA、HVGA和QVGA推荐使用这个,不依赖像素。sp(scaledpixels—bestfortextsize)比例像素主要处理字体的大小,可以根据系统的字体自适应。除了上面三个显示单位,下面还有几个不太常用:in(inches)英寸mm(millimeters)毫米pt(points)点,1/72英寸为了适应不同分辨率,不同的像素密度,推荐使用dip,文字使用sp。—高级软件人才实作培训专家!北京传智播客教育{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Buttonbutton=(Button)findViewById(R.id.button);button.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){EditTexteditText=(EditText)fi