android
yqj234
https://edu.csdn.net/learn/23429/292400?spm=1002.2001.3001.4140
展开
-
Socket粘包,分包解决方法和算法
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport controlprotocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagramprotocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的选择转载 2016-06-21 18:25:02 · 6044 阅读 · 0 评论 -
Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
先说明一下粘包的概念: 发送时是两个单独的包、两次发送,但接收时两个包连在一起被一次接收到。在以前 WinCE 下 Socket 编程,确实也要处理粘包的问题,没想到在 Android 下也遇到了。首先想从发送端能否避免这样的问题,例如: (1) 调用强制刷数据完成发送的函数;(2) 设置发送超时。1 先试了调用 flush() 函数,但运行后现象依旧2 设置发送超时是 Windo转载 2016-06-29 08:44:53 · 2574 阅读 · 0 评论 -
阻塞与非阻塞的区别
阻塞与非阻塞的区别简单点说:阻塞就是干不完不准回来, 非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果T转载 2016-06-30 14:02:25 · 348 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要原创 2016-06-30 14:20:24 · 286 阅读 · 0 评论 -
Android平台对H264视频硬解码
Android平台对H264视频硬解码 本文讲述如何使用Android标准的API (MediaCodec)实现H264的硬件解码。 原本我们是用JNI调用平台提供的硬件解码接口得到YUV帧,再放入opengl脚本里处理渲染的。可是换了新平台之后,没有拿到底层的接口,所以这两天找在Android上的H264解码方案。前天在友人的提示下找到了MediaCodec这个类,A转载 2016-06-30 16:34:26 · 2844 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用的实例
package com.example.myapp2;import java.io.UnsupportedEncodingException;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.原创 2016-06-30 16:52:21 · 682 阅读 · 0 评论 -
wake lock And lightedgreenroom
android service長期運行原创 2016-06-16 09:20:43 · 277 阅读 · 0 评论 -
JAVA和C#之间SOCKET通信的问题
JAVA和C#之间SOCKET通信的问题java和C#之间SOCKET通信的问题一、服务器端(使用java编写)/*** 监听客户端的请求**/private static void socketService(){ExecutorService exec = Executors.newCachedThreadPool();try{转载 2016-06-21 11:52:13 · 501 阅读 · 0 评论 -
protobuf传输文件
protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式的数据。 谷歌使用其内部几乎RPC协议和文件格式的所有协议缓冲区。 参考文档http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/overview.html A转载 2016-06-21 13:11:39 · 10136 阅读 · 0 评论 -
Socket分包处理的解决方案
socket粘包是避免不了的,主要在于接收方如何解包和控制。处理方法: 定制socket传输协议。增加包头、命令、数据长度、数据体、结束位。比如发送消息:,String msg = "你好";byte[] byBuffer = msg.getBytes();//加入定制的协议该条数据位:byte[] b = new byte[4+byBuffer.length];b[0] =原创 2016-06-21 18:06:05 · 4466 阅读 · 0 评论 -
Android WIFI热点应用
1.熱點應用http://blog.csdn.net/hudashi/article/details/25283087转载 2016-07-16 16:22:47 · 366 阅读 · 0 评论 -
socket粘包,socket缓冲区设
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即转载 2016-06-21 19:09:15 · 2460 阅读 · 0 评论 -
Android进程保活招式大全
目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保持应用进程,但为了新建进程或转载 2016-08-13 17:02:06 · 653 阅读 · 0 评论 -
android-子线程更新UI实例
package com.example.test0207_handler;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Menu;import android.view.View;...转载 2019-03-30 10:55:04 · 134 阅读 · 0 评论 -
surfaceview-自定義畫圖或顯示圖片
package com.example.mysurfaceview;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import java.io.InputStream;import java.sql.Date;import java.text.Sim原创 2016-06-28 19:20:55 · 727 阅读 · 0 评论 -
surfaceview使用
1.概念 SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。2.实现方法1)实现转载 2016-06-28 15:49:35 · 216 阅读 · 0 评论 -
Android-自定義控件使用(方便修改控件的風格,只修改布局文件)
user_control_input.xml布侷文件------------ android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > androi原创 2016-04-26 11:31:47 · 406 阅读 · 0 评论 -
android Handler的使用
一Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button, Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数转载 2016-04-27 09:50:55 · 257 阅读 · 0 评论 -
Android开发实践:使用Service还是Thread
Service是Android的四大组件之一,被用来执行长时间的后台任务,同样,线程也可以实现在后台执行任务,它们的区别在哪呢?何时使用Service何时使用Thread呢?今天我也来说说我的理解和总结。首先,需要了解Service的几个特点。(1) 默认情况下,Service其实是运行在主线程中的,如果需要执行复杂耗时的操作,必须在Service中再创建一个Thread来执行任务转载 2016-04-27 10:02:14 · 294 阅读 · 0 评论 -
android-socket斷開之後重新連接
今天研究这个问题搞了整整一天啊!终于出来了,不过我没有多大的成就感,为什么呢?因为这是我学长的劳动成果。同样的问题,我却没想出来!心塞的很啊……不过还是要给大家分享一下,希望给大家带来帮助!先声明一下:不是我不放源码,是因为这个功能是我项目的一小部分,贴源码太声势浩荡了,,而且下载后不一定能用,所以就贴核心代码啦~我是以每分钟向服务端发送一个心跳来保持连接的,如下:转载 2016-04-27 10:24:49 · 1592 阅读 · 0 评论 -
socket判断网络连接状态
在 Android socket 编程中我们需要时刻对其网络状态进行判断,android(java)对网络状态判断的方法(isClosed(),isConnected(),isInputShutdown(),sOutputShutdown())中,并没有有效方法,这些都是判断本地socket端的状态的,如果要判断远端的socket状态,则可通过隔段时间向对方发送数据,如果发送过程出现异常,则证明网转载 2016-04-27 11:06:34 · 2084 阅读 · 0 评论 -
视频聊天程序
视频聊天的应用可以从下面的框图示意。 所以需要从camera获取视频数据(YUV420sp),压缩成H264/MPEG4/H263的包,再传递到对方。接收对方的压缩包,解压出来显示到LCD上。Android里通过给camera设定 previewcallback函数可以获取每一个Peview帧的yuv数据。我们现在看看如何按照你想要求的预览尺寸打开camera的转载 2016-05-09 15:45:07 · 663 阅读 · 0 评论 -
Android下摄像头预览数据
由于Android下摄像头预览数据只能 ImageFormat.NV21 格式的,所以解码时要经过一翻周折. Camera mCamera = Camera.open();Camera.Parameters p = mCamera.getParameters();p.setPreviewFormat(ImageFormat.NV21);/*这是唯一值,也可以不设置。有些同学转载 2016-05-11 19:44:07 · 1928 阅读 · 0 评论 -
自定義控件
http://www.open-open.com/lib/view/open1328836804515.html原创 2016-04-16 19:10:28 · 263 阅读 · 0 评论 -
设定相机的参数
//参考SDK中的API,获取相机的参数:Camera.Parameters parameters = camera.getParameters(); //获取预览的各种分辨率List supportedPreviewSizes = parameters.getSupportedPreviewSizes(); //获取摄像头支持的各种分辨率List supportedPictureSiz原创 2016-05-13 09:36:17 · 532 阅读 · 0 评论 -
YUV420
工作问题接触到图像这一块,需要对手机摄像头采集的原始帧做Rotate或者scale,但无奈对此的了解少之又少,于是网上搜了一顿,完事后将最近所学总结一下,以方便之后的人别踩太多坑。 首先想要了解YUV为何物,请猛戳:https://msdn.microsoft.com/en-us/library/aa904813(VS.80).aspx 上面的链接中,微原创 2016-05-13 13:51:37 · 557 阅读 · 0 评论 -
SurfaceView-基本使用
如果做游戏或者视频相关开发的时候,将会用到SurfaceView。对于SurfaceView,首先需要了解一下它自己的位置:extends Viewjava.lang.Object ↳android.view.View ↳Android.view.Surface转载 2016-05-09 13:27:01 · 971 阅读 · 0 评论 -
Android camera 竖直拍照 获取竖直方向照片
Android camera 竖直拍照 获取竖直方向照片根据需求,一般分为预览时竖直和拍照后得到竖直方向的照片一、拍照时竖直预览:实现原理①:设置拍照的Activity为横屏实现①:在AndroidManifest.xml相应的activity添加一句android:screenOrientation="landscape"缺点:Activity设置为横转载 2016-06-25 14:33:31 · 1129 阅读 · 0 评论 -
Android捕捉图像后在SurfaceView上变形显示问题的处理
Android捕捉图像后在SurfaceView上变形显示问题的处理 我们在Android中经常会使用SurfaceView编写自定义的摄像头,可是有的时候会经常会出现图像的变形,我们就会很郁闷的问这到底是为什么呢?其实这个最根本的原因是SurfaceView和PreViewSize的尺寸不是同一个比率。所谓PreViewSize就是在预览的时候帧数据的尺寸,Surface转载 2016-06-25 18:20:09 · 2034 阅读 · 0 评论 -
相機预览类
创建一个预览类为了让用户有效的获取图像和视频,必须能让他们看到相机中的影像。一个相机预览类是一个SurfaceView类,它可以显示相机中的实时影像,于是用户就可以框住并捕获图像或视频。下面例子中的代码演示了如何创建一个基本的相机预览类,此类可以被一个viewlayout包含。此类实现了SurfaceHolder.Callback,为的是获取创建和销毁view的回调事件,这个vie转载 2016-06-25 18:40:57 · 239 阅读 · 0 评论 -
gradle中輸出日記
Android Studio 3.2.1在build.gradle中输出自定义日志&查看构建日志在使用Android Studio开发Android项目的时候,我们有时候需要在build.gradle中增加一部分日志,来分析编译执行情况。早期版本只能使用logger对象输出内容,如下: 1 2 3 4 5 6 7 ...原创 2019-07-16 10:42:18 · 831 阅读 · 0 评论