最近简单学习了MVVM框架,记录一下. 结果演示: 分析其功能在不同框架下的构成: 无框架 可以明显感受到在无框架下,虽然一个单独的Activity即可实现功能,但其负担过重,代码复查时繁琐,一旦需要修改,复杂项目极难维护. MVC 在MVC框架下,虽然将获取数据与界面展示分割开来,但对于Controller层,仍然拥有很多权利,随着功能的增多,其代码量也将会大大增长,不利于维护修改. MVP 在使用MVP框架时,View层与Model层不通信,都通过 Presenter层传递,并且Presen…
概述 说到Android MVVM,相信大家都会想到Google 2015年推出的DataBinding框架.然而两者的概念是不一样的,不能混为一谈.MVVM是一种架构模式,而DataBinding是一个实现数据和UI绑定的框架,是构建MVVM模式的一个工具. 之前看过很多关于Android MVVM的博客,但大多数提到的都是DataBinding的基本用法,很少有文章仔细讲解在Android中是如何通过DataBinding去构建MVVM的应用框架的.View.ViewModel.Model每…
标题是阿里电话面试的问题,一直以为自己很清楚MVC模式,结果被问到时,居然没法将MVC和Android中各个组件对应起来,所以,面试肯定挂了,不过面试也是学习的一种方式,可以知道大公司看中什么,以及自己还有哪些知识漏洞,例如这次面试就学到了很多东西. 大家可以在看下面的内容之前,也想想能否把MVC及与Android各个组件的对应关系讲清楚,看是否还有和我一样对MVC一知半解的.  如果写的有问题的地方,欢迎讨论.转载请注明出处:http://www.cnblogs.com/John-Chen/p…
我们都知道,Android本身就采用了MVC模式,model层数据源层我们就不说了,至于view层即通过xml来体现,而 controller层的角色一般是由activity来担当的.虽然我们项目用到了MVP模式,但是现在人们并没有总结出一种规范,所以MVP模式的写法并不统一,而至于MVVM模式看网上的呼声似乎也是赞同和拍砖的参半,所以对于这几种模式我也不发表意见了,适合自己的才是最好的.下面是我看到的关于这几种模式的几篇文章,整合了一下分享给大家. ----------------------…
算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学),二来网络上的很多框架已经帮我们做了太多的事情了,我们只需要画画UI就可以了,感觉Android开发没有太多的技术含金量.最近闲来无事,开始总结之前学过的知识点,想着是否应该学点其他的东西呢?总不能局限于Android基础知识吧.慢慢的探索发现在大的项目工程中,一个好的框架,好的设计模式,能减少很大的…
算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学),二来网络上的很多框架已经帮我们做了太多的事情了,我们只需要画画UI就可以了,感觉Android开发没有太多的技术含金量.最近闲来无事,开始总结之前学过的知识点,想着是否应该学点其他的东西呢?总不能局限于Android基础知识吧.慢慢的探索发现在大的项目工程中,一个好的框架,好的设计模式,能减少很大的…
结合前一篇MVC框架模式 为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP(Model-View-Presenter)模式应运而生.      在MVP模式里通常包含4个要素:      (1)View:负责绘制UI元素.与用户进行交互(在Android中体现为Activity);      (2)View interface:需要View实现的接口,View通过View inte…
MVX框架模式的了解 MVX框架模式:MVC+MVP+MVVM 1.MVC: Model(模型)+View(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分开.View通过Controller来和Model联系,Controller是View和Model的协调者,View和Model不直接联系,基本联系都是单向的.用户User通过控制器Controller来操作模板Model从而达到视图View的变化. 2.MVP: 是从MVC模式演变而来的,都是通过Controll…
精炼并增补于:界面之下:还原真实的MV*模式 图形界面的应用程序提供给用户可视化的操作界面,这个界面提供给数据和信息.用户输入行为(键盘,鼠标等)会执行一些应用逻辑,应用逻辑(application logic)可能会触发一定的业务逻辑(business logic)对应用程序数据的变更,数据的变更自然需要用户界面的同步变更以提供最准确的信息. 在开发应用程序的时候,以求更好的管理应用程序的复杂性,基于职责分离(Speration of Duties)的思想都会对应用程序进行分层.在开发图形界面…
Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以供参考, 如果你发现本文还没有列出的组件,欢迎在评论中贴出来,我会定期的更新本文. 部分图片需要FQ才能显示 很好的中文教程 Google Android官方培训课程中文版 awesome-android, android列表. 另,github上的一个项目, 收集了好多的Android开源项目.…
说到WPF, 当然得从绑定说起,这也是WPF做的很成功的一个地方,这也是现在大家伙都在抛弃使用winform的其中一个主要原因,Binding这个东西从早说到完其实都说不完的,我先就做一些基本的介绍,在我们的项目中将会使用到的一些情况,至于一些比较深层次,不怎么会经常使用的到用的时候再具体介绍,其实都是一个道理,举一反三基本都一样的,这也使万物起源的一个逻辑,任何东西都有一个核心的运作思想. 在这之前,我想大家伙可以先看看WPF Visual Tree的一个结构,这样在你写UI的代码的时候会有一…
掌握Android从底层开发到框架整合技术到上层App开发及HTML5的全部技术: 一次彻底的Android架构.思想和实战技术的洗礼: 彻底掌握Andorid HAL.Android Runtime.Android Framework.Android Native Service.Android Binder.Android App.Android Testing.HTML5技术的源泉和精髓等核心技术,不仅仅是技术和代码本身,更重要的是背后的设计思想和商业哲学. 一.课程特色 l  贯通And…
Android开发中用到的框架介绍,主要记录一些比较生僻的不常用的框架,不断更新中...... 网路资源:http://www.kuqin.com/shuoit/20140907/341967.html Android动画效果库NineOldAndroids 介绍: Nine Old Androids是Android的一个开源动画效果库,实现了非常复杂的动画效果,它封装了许多动画处理效果算法,你可以非常方便地实现页面动画,物体移动等动画,本项目包含了一个动画效果的实现库Library和对如何使用…
微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 Android版飞机大战破解无敌模式手记 最近微信出了5.0,新增了游戏中心,并内置了一个经典游戏<飞机大战>.游戏其实很简单,但由于可以和好友一起竞争排名,一时间受到大家的追捧,小伙伴们进入“全民打飞机”时代. ios 版出来不久就被破解出了无敌模式.Android版出后好像一直风平浪静.周末无…
github: https://github.com/cayden/MySmall Android插件化(使用Small框架) 框架源代码 1. Create Project File->New->New Project... 1.1 Configure your new project 假设宿主包名为com.example.mysmall 设置Application name为MySmall 改动Company Domain为com.example.mysmall 这步是个技巧,在Step3…
转自:2015最流行的Android组件.工具.框架大全 Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件.本文试图将目前流行的组件收集起来以供参考, 如果你发现本文还没有列出的组件,欢迎在评论中贴出来,我会定期的更新本文. 部分图片需国内或许不能访问才能显示 很好的中文教程Google Android官方培训课程中文版 awesome-android, android列表. 另,g…
前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了,就准备调研一下,于是上报了此次课题. 名词解析: 以下用到的专业术语可能会有出入,为了避免混淆,下面做一个名词解析表: 名词 解析 备注 组件 可以控制页面展示的部分UI的逻辑单元 View 可以展示的UI,并具备自己维护状态的能力 微件 同组件,可以控制页面展示的部分UI的逻辑单元 Compose…
MVC框架模式 MVC框架模式是web开发中一种软件设计典范,他的全名是(Model -View -Controller),是模型(model)--视图(view)--控制器(controller)的缩写,用一种业务逻辑.数据控制.界面显示分离的方式组织代码, 实现代码的模块化设计. Model,意为数据模型,该块封装了对数据的处理(底层封装了对数据库的操作) Controller,意为控制器,该块获取用户输入,并控制数据到Model模块进行逻辑处理. View,意为界面,该块从model模块获…
Android系统中的6种模式 1:一般启动模式(normal mode):    功能是正常启动手机,方法为关机状态下按电源键启动. 2:安全模式(safe mode):    此模式和正常启动一样,但没有登记Google,所以不能访问Market或使用你的Google账号.操作方法为按住“menu”键,按电源键启动手机,直至手机启动完成松开“menu”键. 3:恢复模式(recovery mode)     可打开命令解释程序(shell),刷新映像文件(flash image),执行备份等…
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)  JSON,图像等的异步下载: (2)  网络请求的排序(scheduling) (3)  网络请求的优先级处理 (4)  缓存 (5)  多级别取消请求 (6)  和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2.android-async-http 项目地址:https://github.com/loopj/android-asyn…
习惯性的,把要说的内容先总结一下: TimePicker有两种模式:spinner 和clock,可通过如下方式配置: <TimePicker android:timePickerMode = "spinner" android:layout_width="match_parent" android:layout_height="match_parent"/> 或者 android:timePickerMode = "clo…
前言: 刚刚学完了MVC,根据自己的感悟和理解写了一个小项目. 完全按照MVC模式,后面有一个MVC的理解示意图. 用MVC模式重新完成了联系人的管理系统: 用户需求: 多用户系统,提供用户注册.登录功能,对于没有登录的用户,不允许使用任何功能. 可以查询.增加和删除联系人信息. 详细设计: 数据结构设计. 功能模块设计. 工具类设计. 搭建初步的项目框架.其他功能:防止用户重复提交.注册和登录时使用验证码. 项目代码在后面. 演示效果: 主页: 注册页面: MVC介绍: MVC全名是Model…
原文:Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式. Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags(); 一.Android Activity 四种启动模式 lunchMode 在Manifest 配置文件中的属性如下: (1) android:launchMode="standard" (2)android:launchMod…
转载链接:http://www.it165.net/pro/html/201401/9026.html 最近在对开发项目的性能进行优化.由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁的读写.查询等操作.因此首先想到了对整个项目的数据库框架进行优化. 原先使用android本身内置的sqllite,也就是用的最基本的SQLiteOpenHelper方法,这种方法对自己来说比较方便易懂.但是在使用过程中感觉很繁琐,从建表到对表的增删改查等操作,如果表对象的属性很多,就需要使用大量的…
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /> Activity的四种启动模式:…
1.1 音频框架 转载请注明,From LXS, http://blog.csdn.net/uiop78uiop78/article/details/8796492 Android的音频系统在很长一段时间内都是外界诟病的焦点.的确,早期的Android系统在音频处理上相比于IOS有一定的差距,这也是很多专业的音乐播放软件开发商没有推出Android平台产品的一个重要原因.但这并不代表它的音频框架一无是处,相反,基于Linux系统的Android平台有很多值得我们学习的地方. 1.1.1 Linu…
Android系统--Binder系统具体框架分析(二)Binder驱动情景分析 1. Binder驱动情景分析 1.1 进程间通信三要素 源 目的:handle表示"服务",即向实现该"服务"的进程发送数据:handle是"服务"的引用 int binder_call(struct binder_state *bs, struct binder_io *msg, struct binder_io *reply, uint32_t target,…
Android 4.2 版本 USB 调试模式打开方法 1. 进入“设置”页面,点击“关于平板电脑”.见下图红色方框.   2. 疯狂点击“版本号”,见下图红色方框,直到出现“您现在处于开发者模式!”. 8 3. 出现“您现在处于开发者模式!”.见下图红色方框. 4. 退回到“设置”页面,这时在“关于平板电脑”上面多了一个“开发者选项”,点击进入.见下图红色方框   5. 勾选“USB调试”.见下图红色方框.注意:右上角的开关要保持“打开”状态 11 6. 点击“确定”,允许USB调试.见下图红…
前言 随着前端各大框架的崛起,为我们平时的开发带来了相当的便利,我们不能一直停留在应用层面,今天就自己动手实现一个乞丐版的MVVM小框架 完整代码github地址 效果 html代码 <div id="app"> <p>{{a}}</p> <p>{{b.b}}</p> <input type="text" v-model="a"> </div> js调用代码 co…
在一个项目中会包括着多个Activity,系统中使用任务栈来存储创建的Activity实例,任务栈是一种“后进先出”的栈结构.举个栗子,若我们多次启动同一个Activity.系统会创建多个实例依次放入任务栈中.当按back键返回时,每按一次,一个Activity出栈,直到栈空为止.当栈中无不论什么Activity.系统就会回收此任务栈. 上面这个样例中的Activity并没有设置启动模式,你会发现多次启动同一个Activity.而系统却创建了多个实例,白白浪费内存,这样的情况Android早就替…