随笔分类 -  开发笔记

此分类用于记录软件开发中的备忘点
摘要:/** 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 阅读(283) 评论(0) 推荐(0)
摘要:在以前的版本中只要在AndroidManifest.xml文件中对activity指定android:configChanges="orientation"属性,转屏的时候就会不再重新调用OnCreate()函数,而是调用onConfigurationChanged()。但是在自从android3.2以后,再这样设置的话,会发现转屏后仍然会调用OnCreate(),而不是onConfigurationChanged();跟踪framework层代码,就会发现问题所在,是由于google在android3.2中添加了screensize改变的通知,在转屏的时候,不仅是orie 阅读全文
posted @ 2013-04-03 11:47 WillYan 阅读(36) 评论(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 阅读(189) 评论(0) 推荐(0)
摘要:TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。TCP提供IP环境下的数据可靠传输,是面向连接的协议,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是通过三次握手,事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。UDP则不为IP提供可靠性、流控或差错恢复功能。UDP 阅读全文
posted @ 2013-03-29 10:31 WillYan 阅读(13) 评论(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 阅读(312) 评论(0) 推荐(0)
摘要:Intent 是及时启动,intent 随所在的activity 消失而消失。PendingIntent可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包含的intent,而是在外部执行 pendingintent时,调用intent的。正由于pendingintent中 保存有当前App的Context,使它赋予外部App一种能力,使得外部App可以如同当前App一样的执行pendingintent里的 Intent, 就算在执行时当前App已经不存在 阅读全文
posted @ 2013-03-26 22:47 WillYan 阅读(11) 评论(0) 推荐(0)
摘要:android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。Serializable是JavaSE本身就支持的;Parcelable是Android特有的功能,效率比实现Serializable接口高,像用于Intent数据传递也都支持,而且还可以用在进程间通信。一 序列化原因:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。二 至于选取哪种可参考下面的原则:1.在使用内存的时候,Parcelable 类比Serializable性能高,所以推荐使用Parcelabl 阅读全文
posted @ 2013-03-26 22:34 WillYan 阅读(9) 评论(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 阅读(1242) 评论(0) 推荐(0)
摘要:推荐两个常用兼容包:ActionBarSherlock官方地址:http://actionbarsherlock.com/ViewPagerIndicator官方地址:http://viewpagerindicator.com/作者:Jake Wharton http://jakewharton.com/ 阅读全文
posted @ 2013-03-23 21:49 WillYan 阅读(227) 评论(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 阅读(183) 评论(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 阅读(147) 评论(0) 推荐(0)
摘要:FactoryMethod是一种创建型模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类。也就是说在父类规定对象的创建方法,但并没有深入到较具体的类名。当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了。简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类。Factory Method把创建这些实例的具体过程封装起来了,简化了客户端的应用,也改善了程序的扩展性,使得将来可以做最小的改动就可以加入新的待创建的类。通常我们将Facto 阅读全文
posted @ 2013-03-22 18:00 WillYan 阅读(152) 评论(0) 推荐(0)
摘要:1. 尽可能的把文件缓存到本地。可以是 memory,cache dir,甚至是放进 SD 卡中(比如大的图片和音视频)。 可以设置双重缓冲,较大的图片或者音频放到SD卡中,小的图片放到memory中。这样可以节约内存控件,避免频繁的造成内存占用过大而去清理缓存。2. 控制缓存中各条目的生存周期,有些时候犹如用户头像这一类内容甚至可以做成除非手动刷新否则永不过期。 缓冲中文件的生命周期可以在缓冲区的逻辑中进行处理,比如每次缓冲区的写入都判断下当前缓存中总文件大小是否达到了最大值,达到的话就清理掉一部分,我们一般是清理掉一半。3. 使用队列来管理所有的网络访问。当本地 Cache miss 的情 阅读全文
posted @ 2013-03-22 11:31 WillYan 阅读(291) 评论(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 阅读(527) 评论(0) 推荐(0)
摘要:和多语言一样,不同的设备分辨率也对应不同的value文件夹,比如value,value-xlarge,value-sw600dp等等...实例:在value下可以新建xxx.xml文件,写入: false在value-sw600dp下新建同样的xxx.xml文件,写入: true在需要用到的地方调用:context.getResources().getBoolean(R.xxx.isTablet) 阅读全文
posted @ 2012-11-07 15:59 WillYan 阅读(102) 评论(0) 推荐(0)
摘要:前言看到CSDN的网友(fenger)发布了一帖子,关于Android广告收入的文章,写的很好,很感谢分享。又搜索了其他相关的文章,不过个人觉得大部分都是软文,参考价值有限。有了一点想法,于是放了一个极其简单的应用到市场上试水。关于广告平台先选择了万普世纪的积分墙,由于积分墙刷新出来的时间太长,以及自动推送(可以自己设计推送相关设置,不过万普还是会默认推送一次,这一点让我很不舒服),有看到有文章说,有些市场禁止万普的SDK,就放弃了万普。万普的审核时间也很快,相对于其他平台的审核机制,我怀疑它都没审核就通过了。后来又看到果壳的一篇文章说到腾讯聚赢,比较喜欢果壳,当时就信了,虽然那很可能是一篇软 阅读全文
posted @ 2012-09-24 16:48 WillYan 阅读(421) 评论(0) 推荐(0)
摘要:开启/关闭 移动数据连接 Mobile DataDataconnection 开关的API 并没有直接提供给上层使用,不过可以通过Java的反射机制使用ITelephony来实现。 Method dataConnSwitchmethod; Class telephonyManagerClass; Object ITelephonyStub; Class ITelephonyClass; TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Contex... 阅读全文
posted @ 2012-07-03 11:59 WillYan 阅读(2181) 评论(0) 推荐(0)
摘要:消耗最少的电量来传输数据原文转载自 云在千峰:http://yunfeng.sinaapp.com/?p=381#ixzz1v6d6TcZN优化下载来提高网络使用效率这节内容介绍无线信号传输的状态机来解释您程序的网络连接模型如何与之相互作用,并介绍如何能最小化您的数据连接以及使用预读取和捆绑(Bundling)手段来最小化在传输数据过程中对电量的消耗。最小化定期更新的影响这节内容解释您程序的刷新频率如何影响到底层的无线信号传输的状态机。冗余的下载是不可忍受的减少下载数据的基本要求就是只下载您需要的。这节内容介绍用来消灭冗余数据的一些最佳实践。基于连接类型来修改下载模式不同的连接类型对电量的消耗 阅读全文
posted @ 2012-06-27 11:47 WillYan 阅读(203) 评论(0) 推荐(0)
摘要:AppWidget setImageViewBitmap issue以下是Google Code中网友的结论:I can confirm:1) Not workingBitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_1);remoteViews.setImageViewBitmap(R.id.battery, bitmap);2) WorkingremoteViews.setImageViewResource(R.id.battery, R.drawable.ic_1);work 阅读全文
posted @ 2012-06-11 15:27 WillYan 阅读(1386) 评论(0) 推荐(0)
摘要:在原来的ADT版本里,在gen目录下的R.java文件中,对于常量的声明是:public static final int main = 0x7f030004;在ADT 14.0里,却是这样声明的:public static int main=0x7f030004;这样会造成以下语句不会编译通过:int id = view.getId();switch (id) { case R.id.button1: action1(); break; case R.id.button2: action2(); break; case... 阅读全文
posted @ 2012-04-17 16:04 WillYan 阅读(444) 评论(0) 推荐(0)