摘要: /** Init **/mkdir XXcd ~/XXgit inittouch READMEgit add READMEgit commit -m 'first commit'git remote add origin https://github.com/YYY/XX.gitgit push origin master/** Fork **/git clone https://github.com/YYY/XX.gitcd XXgit remote add upstream https://github.com/YYY/XX.gitgit fetch upstreamgit 阅读全文
posted @ 2013-06-20 21:54 WillYan 阅读(275) 评论(0) 推荐(0) 编辑
摘要: Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance。以下逐一举例说明他们的区别:standard:Activity的默认加载方法,即使某个Activity在Task栈中已经存在,另一个activity通过Intent跳转到该activity,同样会新创建一个实例压入栈中。例如:现在栈的情况为:A B C D,在D这个Activity中通过Intent跳转到D,那么现在的栈情况为: A B C D D 。此时如果栈顶的D通过Intent跳转到B,则栈情况为:A B C D D B。此时如果依次按返回键,D D C 阅读全文
posted @ 2013-03-31 23:00 WillYan 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1、JNIJava Native Interface(JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机(VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。上面过程分为2个部分:第一、用C语言生成一个库文件。第二、在java中调用这个库文件的函数。JNI是Java调用Native机制,是Java语言自己的特性,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.Net调用C/C++的API,所以说J 阅读全文
posted @ 2013-03-29 10:17 WillYan 阅读(294) 评论(0) 推荐(0) 编辑
摘要: AsyncQueryHandler是一个经典的分析Cursor 内存泄漏的例子。 AsyncQueryHandler:http://developer.android.com/reference/android/content/AsyncQueryHandler.html 下面这段代码是Android2.3系统中Mms信息主页面ConversationList源码的一部分,看看Cursor关闭的情况。private final class ThreadListQueryHandler extends AsyncQueryHandler { public ThreadListQue... 阅读全文
posted @ 2013-03-25 11:48 WillYan 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 推荐两个常用兼容包:ActionBarSherlock官方地址:http://actionbarsherlock.com/ViewPagerIndicator官方地址:http://viewpagerindicator.com/作者:Jake Wharton http://jakewharton.com/ 阅读全文
posted @ 2013-03-23 21:49 WillYan 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 这里将抽象工厂和工厂方法进行对比。从定义上说:Factory Method:Define an interface for create an object,but let subclass decide which class to instantiate.Factory Method lets a class defer instantiation to the subclasses.Abstract Factory:Provide an interface for creating families of related or dependent objects without spec 阅读全文
posted @ 2013-03-23 14:48 WillYan 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 单例模式是所有设计模式中可以说是最简单最易懂的一种编程方式 ,想保证某个特定类的对象实例绝对只有一个时,想在程序上表达出对象实例只会有一个时,这种做法就被称为单例模式。public class Singleton { private static Singleton singleton=new Singleton(); private Singleton(){ System.out.println("对象已产生"); } public static Singleton getInstance(){ return... 阅读全文
posted @ 2013-03-22 18:19 WillYan 阅读(140) 评论(0) 推荐(0) 编辑
摘要: FactoryMethod是一种创建型模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类。也就是说在父类规定对象的创建方法,但并没有深入到较具体的类名。当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了。简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类。Factory Method把创建这些实例的具体过程封装起来了,简化了客户端的应用,也改善了程序的扩展性,使得将来可以做最小的改动就可以加入新的待创建的类。通常我们将Facto 阅读全文
posted @ 2013-03-22 18:00 WillYan 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 1. 尽可能的把文件缓存到本地。可以是 memory,cache dir,甚至是放进 SD 卡中(比如大的图片和音视频)。 可以设置双重缓冲,较大的图片或者音频放到SD卡中,小的图片放到memory中。这样可以节约内存控件,避免频繁的造成内存占用过大而去清理缓存。2. 控制缓存中各条目的生存周期,有些时候犹如用户头像这一类内容甚至可以做成除非手动刷新否则永不过期。 缓冲中文件的生命周期可以在缓冲区的逻辑中进行处理,比如每次缓冲区的写入都判断下当前缓存中总文件大小是否达到了最大值,达到的话就清理掉一部分,我们一般是清理掉一半。3. 使用队列来管理所有的网络访问。当本地 Cache miss 的情 阅读全文
posted @ 2013-03-22 11:31 WillYan 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 1)在~/.gnome2/nautilus-scripts目录下添加名为“Terminal”的文件, 此处的文件名即是之后的菜单名,输入以下脚本,保存#!/bin/bash## This script opens a gnome-terminal in the directory you select.## Distributed under the terms of GNU GPL version 2 or later## Install in ~/.gnome2/nautilus-scripts or ~/Nautilus/scripts# You need to be running.. 阅读全文
posted @ 2012-11-20 14:19 WillYan 阅读(495) 评论(0) 推荐(0) 编辑