- 博客(44)
- 收藏
- 关注
原创 常用的代码组织形式(C语言)
以下摘录自《Linux C 程序设计大全》。 对于小型代码而言,可以将所有的文件书写在一个源文件中。但是如果代码量很大,这种组织代码的形式就不适合了。那么应当怎样组织多个文件,多个模块的大型代码呢? 首先,应当将所有需要使用的函数分类。具体就是将功能相同的函数写在同一个文件内,在C语言中,一个文件即代表一个模块。例如,对于一个链表操作的程序而言,插入链表节点的操作函...
2013-04-27 16:11:59
504
原创 AsyncTask
下面的内容翻译自Android官方网站关于AsyncTask相关介绍。 AsyncTask提供了一种合适的和简单的方法使用UI线程。这个类允许执行后台操作并把操作结果在UI线程里呈现,且整个过程不需要操作线程和Handler类。 AsyncTask只是作为Thread和Handler的帮助类,而不是一种通用的线程框架(a generic threading fra...
2013-04-18 20:57:37
155
原创 AIDL跨进程调用学习笔记
该学习笔记根据一个网友的例子整理而成。 (1)服务器端 1.创建一个AIDL文件,可以看提供的源码。创建完成后,eclipse插件自动在gen目录下生成同名字的java文件。里面包含一个Stub抽象类,这个类继承自android.os.Binder,这个类是实现整个远程调用的核心。 // 声明Java包头,该AIDL文件会生成对应的Java类,并置于ge...
2013-04-11 10:08:55
157
原创 Java中的正则表达式学习笔记
关于正则表达式的定义可以看维基百科中的解释——正则表达式。正则表达式是一种强大而灵活的文本处理工具。它提供了一种完全通用的方式,能够解决各种字符串处理相关的问题:匹配、选择、编辑及验证。一般来说,正则表达式就是以某种方式来描述字符串。 在Java中,\\的意思是“插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义”。在Java中的String类自带了一个正则表达式工具—...
2013-04-02 21:40:38
135
原创 利用适配器构建Android界面布局(layout)
如果你的界面布局的内容是动态的或者不是预先设定的,那么你可以利用适配器视图的子类(ListView,GridView)在运行时填充你的界面。适配器视图可以利用适配器将数据与之绑定。适配器相当于数据源与适配器视图之间的中间人——适配器获得数据(数据源可以是一个数组或一个数据库查询)然后将每个数据条目转化为一个可以添加到适配器视图中的视图。具体请看——官方指南...
2013-03-22 10:26:37
264
原创 利用辗转相除法求两个整数的最大公约数
在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法。两个整数的最大公约数(亦称公因子)是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。例如,252和105的最大公约数21(252 = 21 × 12;105 = 21 × 5);因为252 − 105 = 147,所以147和105的最大公约数也是21。在这个...
2013-03-22 10:01:35
1948
原创 linux下的C语言编程(转载)
关于Linux下的C语言编程——http://blog.youkuaiyun.com/feixiaoxing/article/details/7271937
2013-03-20 14:07:16
127
原创 如何将GPS坐标转换为XY平面坐标(简易转换)
本文根据《GPS经纬度坐标转平面坐标的简化计算方法及精度分析》这篇文章中的的方法将GPS经纬度坐标转换为以地平面上平面直角坐标系中的X、Y坐标。这个转换方法的前提是在一定的范围以内。具体的转化公式请参考该文,下面是坐标转换的代码:public class PlaneCoordinate { /** * 平面坐标系 */ private static fina...
2013-03-06 15:22:48
24915
14
原创 Java集合框架(3)
Map(和Collection<E>一样都是集合框架的顶层接口) |--Hashtable:底层是哈希表数据结构,不可以用null对象作为键或值。它是线程同步的。 |--HashMap:底层是哈希表。允许使用null键null值,该集合是不同步的,效率高,将Hashtable替代。 |--TreeMap:底层是二叉树数据结构。线程不同步,可以用于给...
2012-12-06 19:27:21
89
原创 Java集合框架(2)
|--Set:元素是无序(存入和取出的顺序不一定一致)的,元素不可以重复 |--HashSet:底层数据结构是哈希表,线程是非同步的。 |--TreeSet:底层数据结构是二叉树。保证元素唯一性的依据compareTo()方法返回0;会自动对存入Set集合中的元素进行排序(自然排序)。 (1)Set集合的功能和Collection一致的,没有特有的方法。(2)Has...
2012-12-06 19:17:18
93
原创 Java集合中迭代实现(foreach语句)
对于集合的一个基本的操作利用foreach语句遍历集合以处理集合中的每个元素。看下面的代码:// 下面是关于foreach语句的使用,代码非常简洁和紧凑Stack<String> collection = new Stack<String>();// ....for (String s : collection) { System.out...
2012-12-06 12:29:59
191
原创 Java集合框架(1)
集合是存储对象最常用的一种方式,数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数据中可以存储基本数据类型,集合只能存储对象。集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。(其实,集合中能够存储的都是对象的引用或地址。)为什么会出现集合类呢?数据多了就封装成对象,对象多了也是需要存储的,然后集合类就出现了。集合框架: Collection(根节点)...
2012-11-29 22:04:34
95
原创 Java中如何重写equals()方法
/* 对于equals()的实现(重写,继承于Object类)是一个模型, 你可以把这个模型用于任何类型 ,下面是自定义的类Date来 说明这个模型 */public class Date { private final int month; private final int day; private final int year;...
2012-11-28 18:45:54
120
原创 String,StringBuffer和StringBuilder
(1)String类用于描述字符串事物。它提供很多方法对字符串进行操作。String对象是不可变的。在String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串的内容。而最初的String对象则丝毫未动。请看下面代码: public class Immutable { // 对于一个方法而言,参数是为该方法提供...
2012-11-21 15:18:30
103
原创 Java多线程(2)
—Input—>资源—Output—> 线程间通信:其实就是多个线程在操作同一个资源,但是操作的动作不同。 下面是一个关于线程间通信的例子:/* 程序的部分运行结果: Jack female Lily male Jac...
2012-11-20 16:36:40
131
原创 设计模式之单例模式(Singleton Pattern)
单例模式:确保一个类只有一个实例,并提供一个全局访问点。单例可以延迟实例化(lazy instantiate)。 // 经典的单件模式实现public class Singleton { /* 利用一个静态变量来记录Singleton类的唯一实例 */private static Singleton uniqueInstance;// 这里是其他的有用实例化变...
2012-11-18 21:02:29
97
原创 Java多线程(1)
1.首先我们明确一下进程和线程的概念:简单地说,进程就是是一个正在执行的程序,是一个动态的概念。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。而线程就是进程中的一个独立的控制单元,即线程在控制着进程的执行。每一个进程至少拥有一个线程。 Java VM 启动的时候会有一个进程java.exe,该进程中至少有一个线程负责java程序的执行,而且这个线程运行...
2012-11-18 20:33:27
85
原创 如何在Android项目中引入第三方JAR包
1.在项目的根目录下建立libs目录,然后将你需要的第三方JAR包放在该目录下。2.在Eclipse中,在项目上右键,先择Properties,会出现一个对话框,在对话框左边选择Java Build Path,然后点击右边的Add Class Folder,选择项目下的刚刚新建的libs目录。3.这样就已经把第三方的JAR包引入了,直接run就可以了。 ...
2012-11-18 14:04:54
158
原创 Windows下JDK环境变量配置
给下链接:http://docs.oracle.com/javase/tutorial/essential/environment/paths.html1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为C:\Java\jdk1.5.0_08;2.安装完成后,右击“我的电脑”,点击“属性”;3.选择“高级”选项卡,点击“环境变量”;4.在“系统变量”中,设置3...
2012-11-17 21:44:11
82
原创 Android中Activity,View,Window之间的关系
1.首先来看Activity中的attach()方法,在调用onCreate()之前会调用attach(),在这里我们先不管是谁调用这个方法。下面来看一下代码片段(Activity.java): // attach()中的一个语句,返回一个Window对象mWindow = PolicyManager.makeNewWindow(this); 从上面可以看到attach(...
2012-11-15 19:45:22
205
Android中如何使用WIFI来连接ADB
有的时候,我们限于种种原因,无法使用USB来连接设备进行调试,此时,可以通过Wifi连接来进行。首先打开手机的wifi设置,使其连接到网络。然后,需要在手机上对adb连接端口进行设置,这里需要有root权限的终端(terminal)应用,这种类型的应用在各个Market都有不少,选择一个适合的就可以了。本文所使用的为超级终端专业版Better Terminal。然后,在手机中打...
2012-04-01 17:00:00
91
实现Android手机(服务端)与PC(客户端)实现通信
本文在此基础上做了一些修改:http://blog.youkuaiyun.com/wufenglong/article/details/5778862我主要是要通过在PC端发送命令控制手机作出相应的反应,比如界面的切换,屏幕的滑动。手机和PC通过Socket进行通信,手机作为服务端监听PC端的连接请求,连接成功后接受命令。所以在这里需要两个部分来实现,一个手机端和一个服务端。 1.手机端:在手机需要启...
2012-03-13 15:07:00
1329
Android Toast大全(五种情形)建立属于你自己的Toast
Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。1.默认效果代码Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show(); 2.自定义显示位置效果代码toas...
2012-03-13 11:51:00
112
Android自动化测试初探: 模拟键盘鼠标事件(Socket+Instrumentation实现)
这篇文章是为了实现自动化测试,我主要是为了实现模拟键盘鼠标事件,实现PC控制手机,即PC发送指令控制手机执行相应的动作,例如界面的切换,屏幕的滑动等等。对于Socket编程和Service,我会在另外一篇文章里写明。下面讲的应该可以实现屏幕的滑动:通过Socket + Instrumentation实现模拟键盘鼠标事件主要通过以下三个部分组成: * Socket编程:实现P...
2012-03-11 11:39:00
149
如何在一个Service中启动一个Activity
Intent intent = new Intent(Service.this,TestActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);
2012-03-10 11:12:00
334
在Android 工程中的 R.java 文件丢失后 ---如何重新生成
方法:右击你的工程(项目)——>Android Tools——>Fix Project Properties 即可。注意:也不要自己创建R.java 类文件。
2012-03-07 19:24:00
135
Android 模拟键盘鼠标事件(Socket+Instrumentation实现)
通过Socket + Instrumentation实现模拟键盘鼠标事件主要通过以下三个部分组成: * Socket编程:实现PC和Emulator通讯,并进行循环监听 * Service服务:将Socket的监听程序放在Service中,从而达到后台运行的目的。这里要说明的是启动服务有两种方式,bindService和startService,两者的区别是,前者会使启动的...
2012-03-06 15:47:00
138
Java的字符流和字节流
IO分两种流字节流 InputStream OutputStream字符流 Reader Writer他们都是抽象类具体实现字节流 FileInputStream FileOutputStream字符流 FileReader FileWriter 字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java...
2011-12-09 17:35:00
106
HDOJ 2053 Switch Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2053解题思路:有n 盏灯,0,1表示开关两个状态,第i次时:如果是i的倍数就改变状态,最后输出第n盏灯的状态,刚开始没弄明白题目的意思!代码如下:#include<stdio.h>#define ON 1#define OFF 0int main(){...
2011-10-30 12:42:00
87
HDOJ 2052 Picture
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2052代码如下:#include<stdio.h>int a[80][80];int main(){int n, m, i, j;while (scanf("%d %d",&n,&m) != EOF){for (i...
2011-10-30 12:16:00
89
HDOJ 2051 Bitset
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2051解题思路:基本的进制转换,仔细一点就不会有错的。代码如下:#include<stdio.h>int main(){int n, bin[20], i, j;while (scanf("%d",&n) != EOF){i = 0;...
2011-10-30 11:46:00
112
HDOJ 2050 折线分割平面
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050解题思路:数学题啊 ,貌似没什么思路啊,杯具啊,搞了好久。这是网上的:http://blog.sina.com.cn/s/blog_76eabc150100swg8.html,这是一种方法。还有一种是:分割平面数 = 交点数+顶点数+1。若我们知道n-1条折线分割平面的最大数f(n-1),要知...
2011-10-26 18:05:00
99
HDOJ 2049 不容易系列之(4)——考新郎
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049解题思路:这坑爹的题目啊 搞了我那么久。思路其实早就有了。就是在错排公式的基础上,再加上一个组合数C(n,m):即在n个数中取m个数不排。代码如下:#include<stdio.h>int main(){int c, m, n, i;_int6...
2011-10-26 15:38:00
104
HDOJ 2047 阿牛的EOF牛肉串
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2047解题思路:此题只要找到递推关系式,即可解题。代码如下:#include<stdio.h>_int64 sum[41] = {0,3,8};int main(){int n, i;for(i = 3; i < 40; i++)s...
2011-10-25 18:48:00
102
HDOJ 2048 神、上帝以及老天爷(错排公式)
题目链接:http://acm.hdu.edu.cn/listproblem.php?vol=11解题思路:在做此题之前,我们先来了解一下错排公式: 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用f(n)表示,那么f(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推. 第一步,把第n个元素放在一个位置(除了第n位之外),比如位...
2011-10-25 18:44:00
132
HDOJ 2046 骨牌铺方格
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2046编程思想:这一题和2045类似,都是利用递推的方法,只要找到那个递推关系,问题就迎刃而解。c语言代码如下:#include<stdio.h>int main(){int n, i;_int64 a[51];a[0] = 0;a[1] = 1...
2011-10-22 15:22:00
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人