安卓android框架与应用开发介绍(10)
- 格式:ppt
- 大小:566.00 KB
- 文档页数:5


Android开发中的MVP架构
最近越来越多的人开始谈论架构。我周围的同事和工程师也是如此。尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建。这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的。
作者:佚名来源:安卓开发精选|2016-12-08 10:03
收藏
分享
推广 | 令人窒息的奖品等你—2016最权威的全球开发者调研
最近越来越多的人开始谈论架构。我周围的同事和工程师也是如此。尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建。
这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的,它包括以下几点:
为什么越来越多的人开始关注架构?
首先,MVP是什么?
哪种架构才是最好的,MVC,MVVM还是MVP?
MVP的利与弊
Show me the code!!!代码展示
不幸的,这篇文章将不包括:
详细生动的代码示例
如何编写测试代码
最后,我将告诉你如何更进一步学习这些专题。
顺便提一下,我于上周在当地的一个研讨会上对MVP架构进行了相关演讲。这篇文章与当时的演讲内容相差无几。
介绍~Activity是上帝类~
首先,让我们思考一下为什么在Android开发中如此迫切地需要一个清晰的软件架构。
该段摘自“代码大全第二版”:
避免创建神类。避免创建无所不知,无所不能的上帝类。如果一个类需要花费时间从其他类中通过Get()和Set()检索数据(也就是说,需要深入业务并且告诉它们如何去做),所以是否应该把这些功能函数更好的组织到其它类而不是上帝类中。(Riel 1996)
上帝类的维护成本很高,你很难理解正在进行的操作,并且难以测试和扩展,这就是为什么要避免创建上帝类的黄金法则。 然而,在Android开发中,如果你不考虑架构的话,Activity类往往会越来越大。这是因为,在Android中,允许View和其它线程共存于Activity内。其实最大的问题莫过于在Activity中同时存在业务逻辑和UI逻辑。这会增加测试和维护的成本。
安卓应用开发课程设计
一、课程目标
知识目标:
1. 理解安卓应用开发的基本概念,掌握安卓应用开发的基本框架和工具;
2. 学习并掌握安卓应用开发中的界面设计、组件使用、事件处理等基本技术;
3. 了解安卓应用的调试与发布流程,学会使用模拟器和真机进行应用测试。
技能目标:
1. 能够运用安卓开发环境,独立完成简单安卓应用的界面设计和功能开发;
2. 掌握使用安卓常用组件如TextView、Button、EditText等,并能结合布局文件进行合理布局;
3. 学会运用调试工具进行应用调试,找出并解决常见问题。
情感态度价值观目标:
1. 培养学生对计算机编程的兴趣,提高学生主动探究和解决问题的能力;
2. 培养学生的团队协作意识,通过分组讨论和实践,使学生学会共同解决问题;
3. 增强学生的创新意识,鼓励学生发挥想象,设计和开发具有个性的安卓应用。
课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际应用能力。
学生特点:学生已具备一定的编程基础,对安卓应用开发有一定了解,但对实际开发过程和技巧掌握不足。 教学要求:结合课本内容,注重理论与实践相结合,通过案例教学和实际操作,使学生掌握安卓应用开发的基本技能。在教学过程中,关注学生个体差异,提供有针对性的指导,确保课程目标的达成。将课程目标分解为具体学习成果,便于教学设计和评估。
二、教学内容
1. 安卓应用开发基础
- 了解安卓操作系统的发展历程及特点;
- 掌握安卓应用开发环境的搭建,包括Android Studio、SDK等工具的使用;
- 学习安卓应用的基本架构,理解Activity、Service、BroadcastReceiver等核心组件的作用。
2. 界面设计与布局
- 掌握常见布局如LinearLayout、RelativeLayout的使用;
- 学习使用TextView、Button、EditText等基本控件,以及对其进行样式定制;
简言:
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread和Android 3.0 Honeycomb。
系统介绍:
Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset
Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。
2010年末数据显示,仅正式推出两年的操作系统Android已经超越称霸十年的诺基亚(Nokia)Symbian OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony Ericsson、魅族M9等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。
系统架构:
应用程序:
Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
API概览
Android.nfc 和android.nfc.tech 为android 处理nfc的java 包.
1.Android.nfc package包含顶层类用来与本地NFC适配器交互. 这些类可以表示被检测到的tags和用NDEF数据格式。
类 描述
NfcManager一个NFC adapter的管理器,可以列出所有此android设备支持的NFC adapter.
只不过大部分android 设备只有一个NFC adapter,所以你大部分情况下可以直接用静态方法 getDefaultAdapter(context)来取适配器。
NfcAdapter表示本设备的NFC adapter,可以定义Intent来请求将系统检测到tags的提醒发送到你的Activity.并提供方法去注册前台tag提醒发布和前台NDEF推送。
前台NDEF推送是当前android版本唯一支持的p2p NFC通信方式。
NdefMessage
And
NdefRecord NDEF是NFC论坛定义的数据结构,用来有效的存数据到NFC tags.比如文本,URL,和其他MIME类型。
一个NdefMessage扮演一个容器,这个容器存哪些发送和读到的数据。一个NdefMessage对象包含0或多个NdefRecord,每个NdefRecord有一个类型,比如文本,URL,智慧型海报/广告,或其他MIME数据。
在NdefMessage里的第一个NfcRecord的类型用来发送tag到一个android设备上的activity.
Tag标示一个被动的NFC目标,比如tag,card,钥匙挂扣,甚至是一个电话模拟的的NFC卡.
当一个tag被检测到,一个tag对象将被创建并且封装到一个Intent里,然后NFC 发布系统将这个Intent用startActivity发送到注册了接受这种Intent的activity里。你可以用getTechList()方法来得到这个tag支持的技术细节和创建一个android.nfc.tech提供的相应的TagTechnology对象。