摘要:1、有一个方法,有一段类似于下面这样:new Thread(){ public void run(){ // 做了一些数据库操作 db.close(); } }.start(); 结果运行过程中,发现有时候会报数据库已经锁定的异常。最后才定位到上面这段代码。原因是在上面的run()方法中打开了数据库,这个时候会自动锁定Database,如果在关闭数据库之前,另外一个线程B也进行数据库操作,就会报这个异常。如果数据库已经关闭之后,另外一个线程B请求数据库操作,就没有问题。所以在新线程中进行数据库操作,或者是TimerTask中进... 阅读全文
Android事件处理之多点触摸与手势识别
2013-03-10 17:41 by Rudrj2, 24034 阅读, 4 推荐, 收藏, 编辑
摘要:一、Muilti-touch 双指缩放的实现探索:首先要实现OnTouchListener接口,然后重写方法:public boolean onTouch(View v, MotionEvent event); 从这个方法中我们就可以获取实现两指缩放功能的全部信息。View v是触发事件的源,MotionEvent event即一个触摸事件。对屏幕的几乎所有操作都会触发事件,如点击、放开、滑动等。不同的事件在MotionEvent中有不同的id,我们可以根据event.getAction() & MotionEvent.ACTION_MASK的结果来判断是何种事件。有如下事件使我们要用 阅读全文
Github下载Android源码
2013-03-08 19:09 by Rudrj2, 10035 阅读, 0 推荐, 收藏, 编辑
摘要:1 git clone https://android.googlesource.com/device/common.git 2 git clone https://android.googlesource.com/device/google/accessory/arduino.git 3 git clone https://android.googlesource.com/device/google/accessory/demokit.git 4 git clone https://android.googlesource.com/device/htc/common.git ... 阅读全文
Android View.post(Runnable )
2013-03-06 19:35 by Rudrj2, 31850 阅读, 2 推荐, 收藏, 编辑
摘要:Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub } });官方对这个方法的解释如下,注意其中的:“The runnable will be runon the user interface thread.”boolean android.view.View .post(Runnable acti... 阅读全文
Android图像处理之Bitmap类
2013-03-04 21:27 by Rudrj2, 1311 阅读, 2 推荐, 收藏, 编辑
摘要:Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。一、Bitmap的生成1.1 BitmapFactory decode出Bitmap Bitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。这必然是 某个辅助类提供了创建Bitmap的接口,而这个类的实现通过JNI接口来实例化Bitmap的,这个类就是BitmapFactory。图一、BitmapFactory 阅读全文
android中dip、dp、px、sp和屏幕密度
2013-02-17 18:12 by Rudrj2, 242 阅读, 0 推荐, 收藏, 编辑
摘要:1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这 这个,不依赖像素。 这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,有时候可能你的屏幕分辨率很大如480*800,但是屏幕密度没有正确设置比如说还是160,那么这个时候凡是使用dip的都会显示异常,基本都是显示过小。 dip的换算: dip(value)=(int) (px(value)/1.5 阅读全文
Sublime Text2 编译和运行C/C++程序(windows)
2013-01-02 23:50 by Rudrj2, 40790 阅读, 1 推荐, 收藏, 编辑
摘要:Sublime Text2的高亮显示代码,非常好用,界面也非常漂亮,Sublime Text2工具栏有编译项,所以想让它来编译C和C++代码,不想每次几行代码也都打开visual studio,网上有gcc的解决方案。我想用微软的编译器,因为电脑里面已经装了Visual studio 2010,所以想用系统已有的编译器了.<1> 如果你的编译环境是GCC并且已经可以在命令行里用gcc编译源文件,那么Sublime Text2不要任何配置就可以对单个源文件进行编译和运行,下面的东西可以不看了。<2> 如果没有GCC或者就是希望用Visual Studio里的编译器CL进行 阅读全文
System.setProperty and System.getProperty
2013-01-01 15:20 by Rudrj2, 306 阅读, 0 推荐, 收藏, 编辑
摘要:Question:我在一个类里面设置了一个System.setProperty,这个在我启动tomcat的时候也已经初始化了。但当我在有一个类调用System.getProperty时,就会报错,估计是没有这个值,打印出System.getProperty的值是null。我想问的是System.setProperty将数据设置到什么地方去了,在什么范围内System.getProperty可以得到我们设置的那个值。Answer:JDK1.6说明:setPropertypublic static String setProperty(String key, String value)设置指定键指 阅读全文
Android中Activity共享变量的另一方法:Application context
2012-12-27 20:37 by Rudrj2, 867 阅读, 0 推荐, 收藏, 编辑
摘要:最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方法好用,帖出来分享下!Android中在不同Activity中传递变量,通常使用Intent中Bundle添加变量的操作方法。保存参数时:Intent intent = new Intent(); intent.setClass(A.this, B.class); Bundle bundle = new Bundle(); bundle.putString("name", "xiaozhu"); in... 阅读全文
system()与execv()函数使用详解
2012-12-05 12:12 by Rudrj2, 32787 阅读, 1 推荐, 收藏, 编辑
摘要:在网上搜了很久都没有一个很好的解释,都只说了一方面system调用子进程后继续执行父进程,execv是调用一个新的进程,所以打算自己读读这两个执行文件源码,自己再找找其他不同: 相关函数: fork,execl,execle,execlp,execv,execvp 表头文件: #include<unistd.h> 定义函数: int execve(const char * filename,char * const argv[ ],char * const envp[ ]); 函数说明: execve()用来执行参数filename字符串所代表的文件路径,第二个参数系利用数组指针来 阅读全文