• 298.00 KB
  • 7页

自主学习项目报告.doc

  • 7页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'自主学习项目报告(一)一.自主学习项目要求1.收集编写代码过程中碰到的bug,说明bug发生的原因及解决方案2.自己在学习过程中总结的知识点3.上课内容之外自学的知识点二.自主学习内容按照上面的要求列出至少10条收集编写代码过程中碰到的bug,说明bug发生的原因及解决方案(1)使用actionProvider时出现的问题:解决方案:换一种import的方式即可,如下所示:12//importandroid.support.v4.view.ActionProvider;import android.view.ActionProvider;(2)FragmentTransactions和Activity状态丢失Fragmenttransactions用于在一个Activity上添加、移除或者替换fragment。大多数时候,fragmenttransaction会在activity的onCreate()方法中执行,也可能在与用户交互中响应。然而,BUG是当恢复一个activity时,fragmenttransaction被执行了,应用就可能发生下面的下崩溃:原因:不管何时,.. 如果一个FragmentActivity放在后台,对应FragmentMangerImpl中mStateSaved的flag就会设置为true。这个flag是用来检查是否有stateloss。当试图执行一个transaction时,如果这个flag为true,那么就首先会抛出IllegalStateException异常。解决方案:不要在让transactions在其他的Activity生命周期函数提交,如onActivityResult()、onStart()和onResume()自己在学习过程中总结的知识点(3)Android体系结构和Android项目目录Android是基于Linux内核的软件平台和操作系统,采用了软件堆栈的架构,共分为4层:第一层是Linux内核,提供由操作系统内核管理的底层基础功能;第二层是中间件层,由函数库和Android运行时构成;第三层是应用程序框架层,提供了Android平台基本的管理功能和组件重用机制;第四层是应用程序层,提供了一系列核心应用程序。src源代码目录gen目录(R.java文件是ADT自动生成,不能手动修改,R.java作用:src中的代码通过R.java访问res中的资源)res资源目录(/res/layout/目录:界面布局文件,xml;/res/raw不参加编译的资源,不能生成对应文件)AndroidManifest.xml清单文件(声明应用程序属性信息,声明组件,声明权限,唯一一个组件BroadcastReceiver不需在AndroidManifest中注册)(4)四大组件及其常用界面布局:Activity是app的表示层,作用:与用户交互,显示信息;Service用于无用户界面,但需长时间在后台运行的应用;BroadcastReceiver监听系统广播、其它应用程序广播、其它组件广播,并响应广播消息;ContentProvider用于进程间共享数据。线性布局---LinearLayout表格布局---TableLayout相对布局---RelativeLayout帧布局---FrameLayout网格布局---GridLayout绝对布局---AbsoluteLayout.. (5)Activity的两种启动方式、四种状态、四种模式直接启动:startActivity(Intentintent)带返回值启动:startActivityForResult(Intentintent,intrequestCode)onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestroy()Activity4种状态:运行状态:Activity位于前台,用户可见,获得焦点暂停状态:Activity可见,但被其它Activity覆盖,没有获得焦点停止状态:不可见,失去焦点销毁状态:Activity结束,或所在进程被结束Activity有4种启动模式,分别为standard、singleTop、singleTask和singleInstance(6)Intent的启动方式及其七大属性显式Intent(指定启动名称):明确指出目标组件名称的Intent告诉Android系统,我要“找谁”,Android平台将目标组件启动起来常用于APP内部组件间启动隐式Intent(满足条件):不指名目标组件名称的Intent告诉Android系统,我要“干什么”,Android平台将Intent请求与IntentFilter过滤器做比较,找出匹配Intent请求的组件,将其启动起来常用于不同APP之间传递消息Intent七大属性:Component:明确指定目标组件名称Action:动作Category:类别Data:向Action属性提供操作的数据Type:指定Data属性指定Uri对应的MIME类型Extra:携带数据.. Flag:控制旗标IntentFilter过滤器:一个隐式Intent与IntentFilter比较时,必须通过Action、Category和Data三个方面的检查,任一个不匹配,都不能启动该组件如果一个组件没有定义,只能响应显式Intent请求Intent添加Action只能一条(setAction)Intent-Filter可以多条(addAction)(7)数据存储3种方式及其SQLite数据库6个函数简单存储、文件存储、数据库存储execSQL()、rawQuery()、insert()、delete()、update()、query()(8)ContentProvider作用及其配置方式作用:应用程序间共享数据配置注册ContentProvider:AndroidManifest.xml域名:authorities(9)Service的6个回调函数及其生命周期:onCreate()、onStartCommand()、onDestroy()、onBind()、onUnbind()、onRebind()startService()、bindService()方式启动的Service,同一类的Service只存在一个对象。Service与Activity的区别:(1)Service一直在后台运行,没有用户界面,绝不会到前台来;(2)Activity在前台运行,有用户界面,负责与用户交互。Service两种启动方式:startService()和bindService(),Intent必须显示启动Service。startService().. 对应的停止方式stopService(),bindService()对应的停止方式unBindService()。图1Service两种方式生命周期图(10)发送广播的方式、支持的4种网络编程API、数据解析方式、sendBroadcast()、sendOrderedBroadcast()、sendStickyBroadcast()。BroadcastReceiver两种注册方式:静态注册、动态注册。静态注册在AndroidManifest.xml中注册,动态注册在代码中注册,取消注册该广播接收器调用Context的unregisterReceiver(BroadcastReceiverreceiver)。Android支持的4种网络编程API:SocketURLConnectionHttpURLConnection,HttpClient(Apache)两种数据解析方式:XML和JSONGPS定位Android网络定位:基站Wi-FiIP地址一.分析与小结学习心得体会Android系统是基于Linux的手机操作系统平台,要深入系统的学习Android,不仅仅是有Java和Android应用开发,必须要具备Linux,C/C++高级编程才能深入的涉及Android .. Framework和Android内核开发。成为Android开发的高素质人才。所以,在后续对Android的学习中可能会看一些较底层的书籍。通过Android的学习,深刻了解了应用程序的基本组件、界面布局的基础,结合Internet实现通讯录的设计和发送短信实例对Android系统平台开发有了进一步的学习。我们在毕业前,又掌握了一项新的前沿的开发技能,也有了更多的发展方向,这在以后的找工作的过程中无疑为我们增加了砝码,也可以成为我们的一项兴趣爱好,可以根据我们自己的需要设计一些小的程序。总之,在这门课程学习中,我获得了很多东西,提高了自己的编程技巧和编程方法,并且认识了Android应用程序的开发,以及加深了对Java的认识。虽然我对于它的掌握还不那么的深,学习的也还不足,但我还是会一直坚持的学习下去,因为它的奇妙,因为我们的生活需要它,它的开发是永无止境的,它的学习也将是永无止境的。.. ..'