- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 Gradle3-新的output Api
大多数情况,在构建变体的时候,我们都需要对渠道包进行重命名的操作。在gradle2中也许要这样写:applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile !=...
2019-06-13 17:55:35
525
原创 浅谈MVC和MVP
在日常开发APP 的过程中,随着业务的扩展,规模的变化。我们的代码规模也会逐渐变得庞大,每一个类里的代码也会逐渐增多。尤其是Activity和Fragment ,由于Context 的存在,基本上所有对视图的操作我们只能在Activity和Fragment中完成;即便是对某些逻辑进行封装,Activity和Fragment 依旧会显得过于臃肿。因此,我们需要换一种思路去写代码,这个时...
2018-07-30 23:42:51
195
原创 设计模式 ③ — 行为型模式
模板方法模式(TEMPLATE METHOD)介绍:知道一个算法的关键步骤,并确定了这些步骤的执行顺序,但不用的程序步骤是不一样的,解决方案就是模板方法模式。定义:定义一个操作中的算法的框架,将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。使用场景:1.多个子类有公有的方法,逻辑基本相同时。2.重要、复杂的算法,可以把核心算法设计为模板方法,周边细节功能由子...
2018-06-09 18:25:30
519
原创 设计模式 ② — 结构型模式
代理模式(PROXY)介绍:代理模式也叫委托模式,日常生活中我们接触的最常见的就是代理上网。定义:为其他对像提供一种代理以控制对这个对象的访问。 使用场景:当无法或者不想直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端透明性,委托对象与代理对象需要实现相同的接口。 UML图:Subject : 抽象主题类。RealSubject : 真实主题类。ProxySu...
2018-06-08 16:15:30
439
原创 设计模式 ① — 创建型模式
创建型模式: 负责对象的创建。工厂方法模式(Factory Method);解决某个对象的创建工作。抽象工厂模式(Abstract Factory): 解决一系列相互依赖对象的创建工作。创建者模式(Builder):解决“一些复杂对象”的创建工作。原型模式(Prototype):解决某些结构复杂的对象的创建工作。单例模式(Singleton):解决了实体对象的个数问题。 单例模式(SIN...
2018-06-07 11:24:26
2000
原创 Jni里的内存管理
名词解释:JNI是什么:JNI是Java Native Interface的缩写,提供了若干API实现了Java和其他语言的通信(主要是C&C++)。为什么要用JNI:在C/C++中写的程序可以避开JVM的内存开销过大的限制、处理高性能的计算、调用系统服务(例如驱动)等功能。JVM: jvm是java虚拟机在jni层的代表,全局只有一个。JNIENV: 代表了java在本线程的运行环境,每...
2018-06-04 15:42:59
4419
原创 Activity的taskAffinity属性
dhtml:动态的html,dynamic(动态的)该技术并不是一项新的技术,是我们前面学过的几种技术的结合。 html:提供了标签用于封装数据。它是基础。没标签,什么都做不了 css:提供了样式,可以对标枪封装的内容进行样式的操作。 dom:将html文档封装成了对象。并将文档中的内容都封装成了对象。对象中都定义了更多的属性和行为,方便于对象的操作。
2013-05-08 01:22:48
479
原创 Java Annotation注释语法
JavaScript是基于对象和事件驱动的脚本语言,主要应用在客户端。特点:交互性(它可以做的就是信息的动态交互) 安全性(不允许直接访问本地硬盘) 跨平台性(只要是可以解释js的浏览器都可以执行,和平台无关)Js和Java区别:1.Js是基于对象,Java是面向对象。2.Js只需要解释就可以执行,Java需要先编译成字节码文件,再执行。
2013-05-08 01:22:15
603
原创 Android平台,如何调用javascript操作网页和js调用系统功能
javabean: JavaBean定义了一组规则,JavaBean就是遵循此规则的平常的java对象。javabean作为一个特殊的类,有自己独特的属性,应注意:1.javabean类必须有一个无参构造函数。2.javabean类所有的属性最好定义为私有的。3.javabean类中定义函数setXxx()和getXxx()来对属性进行操作。 方法名如果第二个字母为小写,则
2013-05-07 14:23:44
530
原创 Android应用程序与SurfaceFlinger服务
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无
2013-03-08 20:25:06
720
原创 Android帧缓冲区(Frame Buffer)硬件抽象层
(单独把一个东西说清楚,然后再说清楚另一个,这样,它们的区别自然就出来了,混在一起说,则很难说清楚)==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Obje
2013-03-08 00:11:50
636
1
原创 Android应用程序组件
String str = "abc";和String str = new String("abc");和char[] c = {'a','b','c'};String str=new String(c);一样吗?如果不同,为什么?1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但
2013-03-07 23:47:51
516
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人