摘要:
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
創丗仼
阅读(833)
推荐(0)
编辑
posted @ 2012-12-13 11:13
創丗仼
阅读(0)
推荐(0)
编辑
posted @ 2012-12-13 11:03
創丗仼
阅读(0)
推荐(0)
编辑
posted @ 2012-12-11 13:55
創丗仼
阅读(0)
推荐(0)
编辑
摘要:
我们需要用到android-sdk开发包中adb shell进入Android SDK中的platform-tools目录,然后运行命令:adb shell然后再输入:setprop net.dns IP(输入你的局域网地址)getprop退出adb shellexit
阅读全文
posted @ 2012-12-07 17:44
創丗仼
阅读(1386)
推荐(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
創丗仼
阅读(3172)
推荐(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
創丗仼
阅读(602)
推荐(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
創丗仼
阅读(277)
推荐(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
創丗仼
阅读(791)
推荐(0)
编辑
摘要:
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
創丗仼
阅读(447)
推荐(0)
编辑