书签 分享 收藏 举报 版权申诉 / 48
上传文档赚钱

类型Android应用开发介绍课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5193363
  • 上传时间:2023-02-16
  • 格式:PPT
  • 页数:48
  • 大小:1.19MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Android应用开发介绍课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Android 应用 开发 介绍 课件
    资源描述:

    1、Android平台架构Android环境配置和开发Android应用程序构成如何开发一个例子目录AndroidAndroid平台架构平台架构JNIJAVAC/汇编简介 LinuxLinux核心核心:Android依赖Linux 2.6来提供核心的服务,例如存储管理、进程(Process)管理等 Android RuntimeAndroid Runtime:Java语言层级的Virtual Machine LibrariesLibraries:Android里已经提供的C/C+组件。例如,SQLite、OpenGL 3D等。应用框架应用框架(Application Framework,)(App

    2、lication Framework,):这是结合Applications和Libraries的主架构,让Libraries組件能不断地为Applications所重复使用 应用程序应用程序(Applications)(Applications):根据用户的期望而将AF的组件及Libraries组件组合而成的服务。用汉堡比喻用汉堡比喻Android 平台架构平台架构Android环境配置和开发Android平台架构Android应用程序构成如何开发一个例子目录如何安装 Android SDK 和Eclipse 插件所需开发环境所需开发环境:JDK 5 或 JDK 6(仅有JRE不够)Eclip

    3、se 3.5(galileo)下载下载ADT 的的Eclipse 插件插件 http:/ Eclipse 插件插件(ADT)启动 Eclipse,选择 Help Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”,然后点击Archive.,浏览和选择已经下载的ADT插件插件压缩文件。点击 OK.。返回可用软件的视图,你会看到这个插件,然后选择Developer Tools(会选中下面的“Android Developer Tools”和“Android Editors“),点击 Next,最后重启 Eclipse。下载下载Andro

    4、id SDK:http:/ Eclipse,选择window-preferences,在打开的视图左边点击android,在右边的SDK Location中选择Android SDK所在位置。开发第一个Android应用打开Eclipse,新建项目(点击FileNewProject),在项目列表中展开Android目录,选择Android Project,如下图:开发第一个Android应用开发第一个Android应用点击”finish”即可完成项目的创建,创建后的项目已经是一个可运行的Android应用,我们可以通过下面方式运行此应用:点击工具栏上手机形状的虚拟设备管理器(简称“AVD“),

    5、如下:开发第一个Android应用在打开的虚拟设备管理器中创建一个虚拟手机:开发第一个Android应用在项目上右键点击run as Android application,如下图:Android应用程序架构src/java原代码存放目录原代码存放目录gen/自动生成目录自动生成目录gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修

    6、改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。res/资源资源(Resource)目录目录在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。具体请看ppt下方备注栏。AndroidManifest.xml 功能清单文件功能清单文件 这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、G

    7、PS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。default.properties 项目环境信息项目环境信息,一般是不需要修改此文件目录Android环境配置和开发Android平台架构Android应用程序构成如何开发一个例子Android应用程序构成ActivityServiceBroadcast ReceiverContent ProviderIntentActivity A visual user interface 通过view管理UI 每一个有用户界面的应用至少包含一个activity 一个应用可

    8、以有多个activity,其中一个作为main activity用于启动显示 Activity通过startActivity或startActivityForResult启动另外的activityActivity生命周期 Activity通过onCreate被创建 当一个activity失去焦点,该activity将进入pause状态,系统在内存不足时会将其终止 当一个activity被另一个activity覆盖,该activity将进入stop状态,系统在需要内存的时候会将其终止Intent 类似于消息、事件通知 Intent构成:action、category、data Activity、

    9、Service、broadcast receiver之间的桥梁IntentactivityserviceBroadcast receiverIntent 两类intent:显式:指定具体的目标组件处理 startActivity(new Intent(ActivityLifecycle.this,AnotherActivity.class);隐式:由系统接受并决定如何处理 startActivity(new Intent(Intent.ACTION_DIAL);在AndroidManifest.xml中定义activity、service、broadcast receiver接受的intent

    10、Intent Intent filter:action、category、dataframeworkComponent nameActionDataCategoryintentcomponentactivityserviceBroadcast receiver实例action-DIALdata-tel:01038639592action-VIEWdata-http:/Service 没有UI,启动之后一直运行于后台 例子:音乐播放器 与应用程序的其他模块(例如activity)一同运行于主线程中 通过startService或bindService创建Service 通过stopService

    11、或stopSelf终止Service 一般的,在activity中启动和终止serviceService生命周期Context.stopService()Serivce.stopSelf()Context.startService()Context.bindService()服务服务-Service-ServiceAndroid中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。服务的开发比较简单,如下:第一步:继承Service类public class SMSService extends Service

    12、服务服务-Service-Service第二步:在AndroidManifest.xml文件中的节点里对服务进行配置:服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法都可以启动Service,但是它们的使用场合有所不同。使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。如果打算采用Context.startService()Context.start

    13、Service()方法启动服务方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,。采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。服务服务-Service-Service如果打算采用Context.bindService()Context.bindService()方法启动服务方法启动服务,在服务未被创建时,系

    14、统会先调用服务的onCreate()方法,接着调用onBind()方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,接着调用onDestroy()方法。如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-onDestroy()方法。服务服务-Service-Service

    15、服务常用生命周期回调方法如下:onCreate()该方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次startService()或bindService()方法,服务也只被创建一次。onDestroy()该方法在服务被终止时调用。l 与采用Context.startService()方法启动服务有关的生命周期方法onStart()只有采用Context.startService()方法启动服务时才会回调该方法。该方法在服务开始运行时被调用。多次调用startService()方法尽管不会多次创建服务,但onStart()方法会被多次调用。l 与采用Context.bindServi

    16、ce()方法启动服务有关的生命周期方法onBind()只有采用Context.bindService()方法启动服务时才会回调该方法。该方法在调用者与服务绑定时被调用,当调用者与服务已经绑定,多次调用Context.bindService()方法并不会导致该方法被多次调用。onUnbind()只有采用Context.bindService()方法启动服务时才会回调该方法。该方法在调用者与服务解除绑定时被调用。采用采用startService()startService()启动服务启动服务采用Context.startService()方法启动服务的代码如下:public class Hello

    17、Activity extends Activity Override public void onCreate(Bundle savedInstanceState).Button button=(Button)this.findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener()public void onClick(View v)Intent intent=new Intent(HelloActivity.this,SMSService.class);startService(intent););

    18、采用采用bindService()()启动服务启动服务采用Context.startService()方法启动服务的代码如下:public class HelloActivity extends Activity ServiceConnection conn=new ServiceConnection()public void onServiceConnected(ComponentName name,IBinder service)public void onServiceDisconnected(ComponentName name);Override public void onCrea

    19、te(Bundle savedInstanceState)Button button=(Button)this.findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener()public void onClick(View v)Intent intent=new Intent(HelloActivity.this,SMSService.class);bindService(intent,conn,Context.BIND_AUTO_CREATE);/unbindService(conn);/解除绑定)

    20、;何为Content provider 什么是Content provider?Content Provider 是Android应用程序的四大组成部分之一 是android中的跨应用访问数据机制 为何需要content provider?Android中每一个app的资源是私有的 app通过content provider和其他app共享私有数据如何使用content provider 通过content resolver访问Context.getContentResolver()appContentResolverContentProvider AContentProvider BCont

    21、entResolverContentResolverappapp如何使用content provider URI定位资源 content:/contacts/people content:/call_log 类似关系数据库的访问方式 以二维数据表的格式暴露数据,缺省都包含_id字段delete(Uri url,String where,String selectionArgs)insert(Uri url,ContentValues values)query(Uri uri,String projection,String selection,String selectionArgs,Stri

    22、ng sortOrder)update(Uri uri,ContentValues values,String where,String selectionArgs)定义自己的content providerAndroid的存储 一般的,应用程序的数据(包括文件)都是私有的 四种持久存储方式 Preferences类似properties,xml文件 Files DatabaseSQLite NetworkBroadcast receiver 接收和处理android的广播消息 Android的广播机制 系统事件例如变换时区、电量低等 应用程序发出广播消息:sendBroadCast 广播消息

    23、:intentandroidappBroadcast receiverSend Send broadcastbroadcast创建Broadcast Receiver 实现一个BroadcastReceiver public class MyAndroidReceiver extends BroadcastReceiver override onReceive(Context context,Intents Intents)注册BroadcastReceiver 在AndroidManifest.xml文件当中进行注册 在代码当中直接进行注册 IntentsFilter filter=new

    24、IntentsFilter(NEW_BROADCAST);MyAndroidReceiver MyAndroidReceiver=new MyAndroidReceiver();registerReceiver(MyAndroidReceiver,filter);Broadcast receiver生命周期Broadcast receiver对象在onReceive返回后被销毁onReceive中不适合处理异步过程。例如弹出对话框与用户交互,可使用消息栏替代。Android权限控制 在AndroidManifest.xml中描述一个app的权限 例如:权限举例(参考android.Manife

    25、st.permission)Manifest.permission)权限名称权限名称权限描述权限描述接收短信android.permission.RECEIVE_SMS拨打电话android.permission.CALL_PHONE系统启动完毕通知android.permission.RECEIVE_BOOT_COMPLETED读取联系人信息android.permission.READ_CONTACTS修改联系人信息android.permission.WRITE_CONTACTS目录Android环境配置和开发Android平台架构Android应用程序构成如何开发一个例子从从Inter

    26、netInternet获取数据获取数据利用HttpURLConnection对象,我们可以从网络中获取网页数据.URL url=new URL(http:/);HttpURLConnection conn=(HttpURLConnection)url.openConnection();conn.setConnectTimeout(6*1000);/设置连接超时if(conn.getResponseCode()!=200)throw new RuntimeException(请求url失败);InputStream is=conn.getInputStream();/得到网络返回的输入流Stri

    27、ng result=readData(is,GBK);conn.disconnect();System.out.println(result);/第一个参数为输入流,第二个参数为字符集编码public static String readData(InputStream inSream,String charsetName)throws ExceptionByteArrayOutputStream outStream=new ByteArrayOutputStream();byte buffer=new byte1024;int len=-1;while(len=inSream.read(bu

    28、ffer)!=-1)outStream.write(buffer,0,len);byte data=outStream.toByteArray();outStream.close();inSream.close();return new String(data,charsetName);从从InternetInternet获取数据获取数据利用HttpURLConnection对象,我们可以从网络中获取文件数据.URL url=new URL(http:/ conn=(HttpURLConnection)url.openConnection();conn.setConnectTimeout(6*

    29、1000);if(conn.getResponseCode()!=200)throw new RuntimeException(请求url失败);InputStream is=conn.getInputStream();readAsFile(is,Img269812337.jpg);public static void readAsFile(InputStream inSream,File file)throws ExceptionFileOutputStream outStream=new FileOutputStream(file);byte buffer=new byte1024;int

    30、 len=-1;while(len=inSream.read(buffer)!=-1)outStream.write(buffer,0,len);outStream.close();inSream.close();向向InternetInternet发送请求参数发送请求参数利用HttpURLConnection对象,我们可以向网络发送请求参数.String requestUrl=http:/localhost:8080/itcast/contanctmanage.do;Map requestParams=new HashMap();requestParams.put(age,12);reque

    31、stParams.put(name,中国);StringBuilder params=new StringBuilder();for(Map.Entry entry:requestParams.entrySet()params.append(entry.getKey();params.append(=);params.append(URLEncoder.encode(entry.getValue(),UTF-8);params.append(&);if(params.length()0)params.deleteCharAt(params.length()-1);byte data=param

    32、s.toString().getBytes();URL realUrl=new URL(requestUrl);HttpURLConnection conn=(HttpURLConnection)realUrl.openConnection();向向InternetInternet发送请求参数发送请求参数conn.setDoOutput(true);/发送POST请求必须设置允许输出conn.setUseCaches(false);/不使用Cacheconn.setRequestMethod(POST);conn.setRequestProperty(Connection,Keep-Alive

    33、);/维持长连接conn.setRequestProperty(Charset,UTF-8);conn.setRequestProperty(Content-Length,String.valueOf(data.length);conn.setRequestProperty(Content-Type,application/x-www-form-urlencoded);DataOutputStream outStream=new DataOutputStream(conn.getOutputStream();outStream.write(data);outStream.flush();if(

    34、conn.getResponseCode()=200)String result=readAsString(conn.getInputStream(),UTF-8);outStream.close();System.out.println(result);=向向InternetInternet发送发送xmlxml数据数据利用HttpURLConnection对象,我们可以向网络发送xml数据.StringBuilder xml=new StringBuilder();xml.append();xml.append();xml.append(中国);xml.append();byte xmlby

    35、te=xml.toString().getBytes(UTF-8);URL url=new URL(http:/localhost:8080/itcast/contanctmanage.do?method=readxml);HttpURLConnection conn=(HttpURLConnection)url.openConnection();conn.setConnectTimeout(6*1000);conn.setDoOutput(true);/允许输出conn.setUseCaches(false);/不使用Cacheconn.setRequestMethod(POST);conn

    36、.setRequestProperty(Connection,Keep-Alive);/维持长连接conn.setRequestProperty(Charset,UTF-8);conn.setRequestProperty(Content-Length,String.valueOf(xmlbyte.length);conn.setRequestProperty(Content-Type,text/xml;charset=UTF-8);DataOutputStream outStream=new DataOutputStream(conn.getOutputStream();outStream.

    37、write(xmlbyte);/发送xml数据outStream.flush();if(conn.getResponseCode()!=200)throw new RuntimeException(请求url失败);InputStream is=conn.getInputStream();/获取返回数据String result=readAsString(is,UTF-8);outStream.close();HTTP多线程断点下载应用程序 多线程下载:HTTP多线程断点下载应用程序 如何才能从文件的指定位置处开始下载文件?(比如从50MB开始)这一点我们可以通过HTTP请求信息头来设置,可以使用HTTP请求信息头的“Range”属性。例如:只要在请求头中加入以下代码就可以只请求部分数据:Content-Range:bytes 20000-40000/47000,即从第20000字节请求到第40000个字节,(文件长度是47000字节)HTTP多线程断点下载应用程序 如何支持断点下载。就是将下载的进度保存到文件中,但在Android中却不能这么做。在Android平台中,我们需要向文件中写出下载的文件数据,我们通过数据库的方式保存下载进度 Thank You世界触手可及世界触手可及携手共进,齐创精品工程携手共进,齐创精品工程

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Android应用开发介绍课件.ppt
    链接地址:https://www.163wenku.com/p-5193363.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库