12 2014 档案
摘要:1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次3、...
阅读全文
摘要:在android应用开发中,打造良好的用户体验是非常重要的。而在用户体验中,界面的引导和跳转是值得深入研究的重要内容。在开发中,与界面跳转联系比较紧密的概念是Task(任务)和Back Stack(回退栈)。activity的启动模式会影响Task和Back Stack的状态,进而影响用户体验。...
阅读全文
摘要:Android程序主要是由java代码写成的,我们都知道java在内存回收方面有着自己的一套体系,完全不需要coder来做内存销毁,但是在编程的时候还是有内存泄露的事儿发生,这种情况一般是因为什么呢? 首先我们要明确的是java的内存自动回收机制是怎么一回事:在Java中,内存的分配是由程序完...
阅读全文
摘要:一、反编译:工作中apk的反编译用的较多,主要是通过Android反编译工具来实现:·dex2jar+jdgui·apktool二、防反编译: 代码混淆 这种方式,其实我不大愿意将他归类于防止反编译,从Android、Java编译原理上来说,针对自身代码做混淆等操作,必然防止不了反编译这个事实。...
阅读全文
摘要:获取system权限 上一篇随笔简单介绍了下Android权限的一些规则,我们发现很多事如果没有system权限基本上无法完成,那么如何让自己的应用获取system权限呢? 一般情况下,设定apk的权限,可在AndroidManifest.xml中添加android:sharedUser...
阅读全文
摘要:Android是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,在这里简单介绍一下Linux文件系统的权限与Android中如何获取system权限。(一)linux文件系统上的权限 下面是一个典型的linux文件系统权限说明: -rwxr-x-...
阅读全文
摘要:Handler、Thread和Runnable在开发中频繁使用,很多新手都因为概念不清而头绪全无,在这我来简单得缕缕这三者的联系与区别。 Runnable是最简单的,它并没有什么包装,Android源码如下: 1 /** 2 * Represents a command that can b...
阅读全文
摘要:毕竟是做Android的,对于ContentObserver是很熟悉的,在监听数据库变化时使用很频繁,android有一整套用来监听的API,直接拿来用就行了。观察者模式是用来监听对象的变化的行为型模式。 观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式。...
阅读全文
摘要:备忘录模式,翻译成标记模式好一些,因为这种设计模式的目的是为了反悔:GOF给备忘录模式的定义为:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 在之前的命令模式中,我们曾经提到利用中间的命令角色可以实现undo、redo ...
阅读全文
摘要:模板方法模式是一个非常简单的模式,因为它只使用到了继承关系。模板方法(Template Method)模式:定义一个操作中的算法的骨架,而将一些步骤延续到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。来看下这个简单模式的结构吧:1) 抽象类(Abstract Class):...
阅读全文
摘要:状态模式是策略模式的孪生兄妹,也属于行为型设计模式,GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。这有点像策略模式根本不同环境使用不同的行为(策略),状态模式只是这种环境是对象内部的状态集合。 能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就...
阅读全文
摘要:我们无时无刻不在时刻得调整自己的计划(策略)以完成目标,就跟玩dota一样,对局面的判断不同使得装备选择不同,阵容不同也使得自己的打法不一样,调整策略时刻都在发生。这些情况在实际系统中也是经常遇到,那么在软件系统中如何实现不同的策略呢? 策略模式是一种行为型设计模式,主要是定义一系列的算法,把...
阅读全文
摘要:迭代这个名词对于熟悉 Java 的人来说绝对不陌生。我们常常使用JDK 提供的迭代接口进行java collection 的遍历:1 Iterator it = list.iterator();2 while(it.hasNext()){3 //using “it.next();...
阅读全文
摘要:解释器模式和调停者模式都是行为型模式,由于二者用的情形比较少,不作过多解读,介绍一下相关概念,以作参考。 解释器模式有点儿“编译器”的概念,像个超级简单的编译器,且跟硬件无关,它的目的是定义语言(使用规定格式和语法的代码)的文法,然后建立一个解释器来解释该语言中的句子。 在 GOF 的书中指...
阅读全文
摘要:介绍命令模式之前,来看看Window的界面设计,同样的菜单控件,在不同的应用环境中的功能是完全不同的;而菜单选项的某个功能可能和鼠标右键的某个功能完全一致。按照最差、最原始的设计,这些不同功能的菜单、或者右键弹出菜单是要分开来实现的,你可以想象一下,word 文档上面的一排菜单要实现出多少个“形...
阅读全文
摘要:责任链模式听上去不太好理解,但是其实是非常简单的一种行为型设计模式。举个类比就知道它的定义了,说一个病人看牙的时候,医生不小心把拔下的一个牙掉进了病人嗓子里。各个科室的医生推卸责任,搞得病人因此楼上楼下的跑了不少冤枉路,最后无果而终。 责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解...
阅读全文
摘要:代理,一般人都知道是什么意思,代理是一种行为,在客户不想或不能直接操作时,把操作交付给代理来处理,代理模式亦是如此,代理模式是一种典型的行为型设计模式,想完成的行为引出了代理模式,其实现方法倒是不拘泥。 代理模式定义为:为其他对象提供一种代理以控制对这个对象的访问。简单的说就是,不直接引用一个...
阅读全文
摘要:介绍享元模式之前,来聊聊Java中的String类型特性:String类型的 1、对象一旦被创造就不可改变; 2、当两个String对象所包含的内容相同的时候,JVM只会创建一个String对象对应着两个不同的对象引用。 验证一下2的特性1 public class TestPattern...
阅读全文
摘要:设计模式的门面模式是一个非常容易理解的模式,有点像适配器模式,不过与之不同的是,门面模式注重降低复杂度,提供统一的封装接口。 门面模式又有外观模式的说法,为子系统中的一组接口提供一个一致的界面,门面模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 门面模式是指在设计中为了降低复杂...
阅读全文
摘要:装饰模式,很容易想到模式的定义,动态地给一个对象添加一些额外的职责,起到一个填充装饰的目的,旨在更加灵活地扩充对象的功能。装饰模式重在形式结构,也是结构型设计模式,结构也形成了装饰模式的作用。我们来看看装饰模式的类图,初步了解下装饰模式的形式:装饰模式的构件是由四部分组成的:1、抽象构件角色(Com...
阅读全文

浙公网安备 33010602011771号