CanPHP框架技术讨论

导航

 
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页

2012年12月14日

摘要: 1.wifi-direct需要驱动支持的,你要找对应的芯片厂商(博通、realtek)拿驱动。2.wifi-direct android框架层是有源码的,这个你看android源码就好了。3.wifi-direct 应用层也是有sample的,在android sdk的WifiDirectDemo里面,只有4.0 以上的sdk才有。 阅读全文
posted @ 2012-12-14 14:33 創丗仼 阅读(830) 评论(0) 推荐(0) 编辑
 

2012年12月13日

该文被密码保护。 阅读全文
posted @ 2012-12-13 11:13 創丗仼 阅读(0) 评论(0) 推荐(0) 编辑
 
该文被密码保护。 阅读全文
posted @ 2012-12-13 11:03 創丗仼 阅读(0) 评论(0) 推荐(0) 编辑
 

2012年12月11日

该文被密码保护。 阅读全文
posted @ 2012-12-11 13:55 創丗仼 阅读(0) 评论(0) 推荐(0) 编辑
 

2012年12月7日

摘要: 我们需要用到android-sdk开发包中adb shell进入Android SDK中的platform-tools目录,然后运行命令:adb shell然后再输入:setprop net.dns IP(输入你的局域网地址)getprop退出adb shellexit 阅读全文
posted @ 2012-12-07 17:44 創丗仼 阅读(1367) 评论(0) 推荐(0) 编辑
 
摘要: 很多Android开发者可能发现,将Bitmap转为字节数组可能文件大小和原始图片差异很大,代码如下1. 字节数组data保存Bitmap对象转为字节数组,处理代码: BitmapFactory.decodeByteArray(data, 0, data.length);2. 而第二种方法处理代码:ByteArrayOutputStream baos = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);data2 = baos.toByteArray(); 这里其实很好理解,第 阅读全文
posted @ 2012-12-07 15:22 創丗仼 阅读(3147) 评论(0) 推荐(0) 编辑
 
摘要: ExecutorService 建立多线程的步骤:1。定义线程类class Handler implements Runnable{}2。建立ExecutorService线程池ExecutorService executorService = Executors.newCachedThreadPool();或者int cpuNums = Runtime.getRuntime().availableProcessors();//获取当前系统的CPU 数目ExecutorService executorService =Executors.newFixedThreadPool(cpuNums * 阅读全文
posted @ 2012-12-07 12:21 創丗仼 阅读(600) 评论(0) 推荐(0) 编辑
 
摘要: 1.类Executors此类中提供的一些方法有:1.1 public static ExecutorService newCachedThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。1.2 public static ExecutorService newFixedThreadPool(intnThreads)创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。1.3 public static ExecutorService newSingleThreadE 阅读全文
posted @ 2012-12-07 11:39 創丗仼 阅读(275) 评论(0) 推荐(0) 编辑
 
摘要: handler.post(r)其实这样并不会新起线程,只是执行的runnable里的run()方法,却没有执行start()方法,所以runnable走的还是UI线程。1.如果像这样,是可以操作ui,但是run还是走在主线程,见打印出来的Log线程名字是main,说明是主线程。这就是为什么可以直接在run方法里操作ui,因为它本质还是ui线程handler.post(new Runnable(){ public void run(){ Log.e("当前线程:",Thread.currrentThread.getName());//这里打印de结果会是main setTit 阅读全文
posted @ 2012-12-07 11:25 創丗仼 阅读(790) 评论(0) 推荐(0) 编辑
 

2012年12月5日

摘要: Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。1,利用invalidate()刷新界面 实例化一个Handler对象,并重写ha.. 阅读全文
posted @ 2012-12-05 10:17 創丗仼 阅读(446) 评论(0) 推荐(0) 编辑
 
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页