Android应用开发课程Android应用开发课程中关村软件园人才服务平台1Android应用开发课程Android简介Android应用开发课程Android简介•Android一词本意是指“机器人”,是Google在2007年11月5日公布的基亍Linux内核的操作系统,早期由Google开发,后由开放手机联盟开发。•市场上第一款支持Android的手机是在2008年9月22日发布的由HTC制造幵由T-Mobile供应的G1。Android应用开发课程Android市场份额Android应用开发课程Android开发人员薪资调查Android应用开发课程特点1•开放的平台•应用程序相互平等,其组件也可以更换。•Dalvik虚拟机针对移动设备进行了优化。•优化的图形能力支持2D、3D图形(OpenGLES1.0)。•集成了基于开源WebKit引掣的浏览器。•SQLite作为结构化数据存储。Android应用开发课程特点2•多媒体支持多种音频、视频格式。•支持蓝牙Bluetooth,3G和WiFi•支持照相机、GPS、指南针和加速度仪等传感器硬件•依托Java丰富的编程资源•丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为EclipseIDE所写的插件。Android应用开发课程系统架构Android应用开发课程AndoidRuntime•应用开发语言:Java•Dalvik虚拟机–指令:DalvikExcutable•Java标准库–把java代码编译为Dalvik可执行文件(dexformat)Android应用开发课程开发环境•JDK•IDE–Eclipse•Eclipseplug-in-ADT•SoftwareDevelopmentKit(SDK)•AndroidEmulator•DebugerAndroid应用开发课程AndroidSDK•AndroidSDK包括一系列的开发工具以帮助开发者开发和调试应用程序。•包含以下几部分:–Android应用程序框架API–Android模拟器–辅助工具:ADB(调试工具)、AAPT(生成APK)、DX(编译工具)、DDMS(调试窗口)–Android开发文档Android应用开发课程GettingStartAndroid应用开发课程开发环境搭建安装Android的sdk和eclipse插件开发环境:JDK5或JDK6Eclipse3.5下载ADT的Eclipse插件安装Eclipse插件(ADT)启动Eclipse,选择HelpInstallNewSoftware,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”,然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件件的视图,你会看到这个插件,然后选择DeveloperTools(会选中下面的“AndroidDeveloperTools”和“AndroidEditors“),点击Next,最后重启Eclipse。下载AndroidSDK:通过官网下载或者通过一些论坛下载()下载完SDK后,把.zip文件解压到你电脑上合适位置。启动Eclipse,选择window-preferences,在打开的视图左边点击android,在右边的SDKLocation中选择AndroidSDK所在位置。Android应用开发课程第一个Android应用程序•打开eclipse,新建android工程打开Eclipse,新建项目(点击FileNewProject),在项目列表中展开Android目录,选择AndroidProject,如图:Android应用开发课程应用程序的名称包名称启动类名称兼容的最低版本Android应用开发课程Android应用开发课程•在项目上右键点击runasAndroidapplication,如下图:Android应用开发课程Android程序架构src/java原代码存放目录gen/自动生成目录gen目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。res/资源(Resource)目录在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。AndroidManifest.xml功能清单文件这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。default.properties项目环境信息,一般是不需要修改此文件Android应用开发课程R.javapublicfinalclassR{publicstaticfinalclassattr{}publicstaticfinalclassdrawable{publicstaticfinalinticon=0x7f020000;}publicstaticfinalclassid{publicstaticfinalintlayout=0x7f050000;}publicstaticfinalclasslayout{publicstaticfinalintmain=0x7f030000;}publicstaticfinalclassstring{publicstaticfinalintapp_name=0x7f040001;publicstaticfinalinthello=0x7f040000;}}Android应用开发课程Activityimportandroid.app.Activity;importandroid.os.Bundle;publicclassHelloActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}Android应用开发课程Activity的运用•Activity的主要作用•创建Activity的方法•在AndroidManifest.xml文件中注册Activity方法•在Activity中添加控件的方法Android应用开发课程•Activity是android应用程序的用户接口。一个Activity中可以放置很多控件。•Activity也可以理解为控件的容器。如图:按钮列表文本Android应用开发课程1、一个Activity就是一个类,并且这个类要继承于Activity。2、重写onCreate方法。•publicvoidonCreate(BundlesavedInstanceState){•super.onCreate(savedInstanceState);•setContentView(R.layout.main);•}3、每一个Activity都需要在AndroidMainfest.xml中文件当中进行配置•activityandroid:name=.TestActivity•android:label=@string/app_name•intent-filter•actionandroid:name=android.intent.action.MAIN/•categoryandroid:name=android.intent.category.LAUNCHER/•/intent-filter•/activity4、为Activity添加必要的控件。同过findViewById(控件的id);可以得到所要显示的控件。例如:取得TextView的控件TextViewtextView=(TextView)findViewById(R.id.Test);Android应用开发课程布局文件•?xmlversion=1.0encoding=utf-8?•LinearLayoutxmlns:android=•android:orientation=vertical•android:layout_width=fill_parent•android:layout_height=fill_parent••TextView•android:layout_width=fill_parent•android:layout_height=wrap_content•android:text=@string/hello•/•/LinearLayoutAndroid应用开发课程重要属性•android:layout_width宽度•android:layout_height高度–fill_parent|wrap_content•android:layout_weight权重(默认为0)•android:id唯一标识用于在程序或配置文件中引用Android应用开发课程资源文件•?xmlversion=1.0encoding=utf-8?•resources•stringname=helloHelloWorld,HelloActivity!•/string•stringname=app_nameHello应用/string•/resourcesAndroid应用开发课程资源文件•除string之外,还可以定义color,dimen(大小)•string-array(子标记为item)•每种资源都需要定义name属性•资源文件放在res/values目录下,可以是单独的文件,也可以分类放在不同文件中,文件名任意Android应用开发课程其他资源•任意XML文件:放入res/xml目录,程序中用R.xml.文件名访问•原始资源:放入res/raw目录,程序中用Resources对象.openRawResource(R.raw.XXX)获得一个输入流,原始资源不会被编译为二进制•资产:放入assets目录,系统不会自动生成id,程序中用Resources对象.getAssets().open(文件名)获得输入流.•资源目录中不能随意创建子目录,资产目录则可以随意创建子目录Android应用开发课程引用资源程序中:利用R.资源类型.资源名访问如:R.layout.mainR.id.abcXML文件中:利用@资源类型/资源名访问如:@id/abc而@+id/abc表示添加一个id资源”abc”程序中:getResources()得到Resources对象用于将资源的id值转为相应的对象如getTextgetColorgetDrawableAndroid应用开发课程Log•android.util.Log类的静态方法来查找错误和打印系统日志消息。•Log常用的方法有以下5个:–Log.v(Stringtag,Stringmsg);(VERBOSE)–Log.d(Stri