Android使用LocalSocket抓取数据

Android中抓取手机视频流数据。 目前实时抓取手机视频数据有2种方法,一种是通过camera的回调获取源数据,这里获取的源数据是没有编码的数据。 有的人发送yuv数据然后在那绘制图片,也说视频聊天,真是可笑。这种方式是可是实现视频聊天的,但是需要移植编码库 目前可移植的有,android的opencore编码,参考http://www.shouyanwang.org/thread-184-1-1.html。 ffmpeg编码 阅读详情

LocalSocket类描述:在Unix域名下创建一个(非服务器)Socket,这种Socket和java.net.Socket不同

贴上一个LocalSocket简单应用

package com.snowice.local;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.app.Activity;
import android.net.LocalServerSocket;
import android.net.LocalSocket;
import android.net.LocalSocketAddress;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class AndroidLocalSocketActivity extends Activity {
	
	private static final String TAG = "MY_LOCAL_SOCKET";
	
	/** 开始演示按钮 */
	private Button button_start;
	/** 结束演示按钮 */
	private Button button_end;
	
        private LocalSocket receiver; 
        private LocalSocket sender;
	private LocalServerSocket lss;
	
	/** 数据缓冲大小 */
	private static final int BUFFER_SIZE = 500000;
	
	/** 判断是否正在运行 */
	private boolean running;
	
	/** 用于计数 */
	private int i = 1;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
               
        button_start = (Button) findViewById(R.id.button_start);
        button_end = (Button) findViewById(R.id.button_end);
        
        // 设置监听事件
        button_start.setOnClickListener(new Button.OnClickListener(){

			@Override
			public void onClick(View v) {
			    receiver = new LocalSocket();
			    try {
					lss = new LocalServerSocket("Local_Socket");
					
					receiver.connect(new LocalSocketAddress("Local_Socket"));
					receiver.setReceiveBufferSize(BUFFER_SIZE);
					receiver.setSendBufferSize(BUFFER_SIZE);
					
					sender = lss.accept();
					sender.setReceiveBufferSize(BUFFER_SIZE);
					sender.setSendBufferSize(BUFFER_SIZE);
					
					// 将控制器running设置为true
					running = true;
					
					// 启动发送接受线程
					new Thread (local_send).start();
					new Thread (local_receive).start();
				} catch (IOException e) {
e.printStackTrace();
				}
			}
		});
        
        // 取消数据发送
        button_end.setOnClickListener(new Button.OnClickListener(){
        	
        	@Override
		public void onClick(View v) {
        		running = false;
        	}
        });
    }
    
    // 发送线程
    Thread local_send = new Thread (){
    	// 线程运行函数
    	public void run() {
    		OutputStream m_Send = null;
    		
    		try {
				m_Send = sender.getOutputStream();
				
				while(running) {
					byte[] data = ("LOCAL-SOCKET" + i).getBytes();
					sender.setSendBufferSize(data.length);
					sender.setReceiveBufferSize(data.length);
					m_Send.write(data);
					m_Send.flush();

					Thread.sleep(100);
					i ++;
				}
				
				m_Send.close();
				sender.close();
			} catch (IOException e) {
e.printStackTrace();
			} catch (InterruptedException e) {
e.printStackTrace();
			}
    	}
    };
    
    // 接收线程
    Thread local_receive = new Thread(){
    	public void run(){
    		InputStream m_Rece = null;
    		
    		try {
				m_Rece = receiver.getInputStream();
				
				byte[] data;
				int receiveLen = 0;
				
				while(running) {
					receiveLen = receiver.getReceiveBufferSize();
					data = new byte[receiveLen];
					m_Rece.read(data);
Log.i(TAG, "receiver.getReceiveBufferSize()" + receiveLen + " --- "+new String(data) + " ---");
					Thread.sleep(1000);
					
					// 将i设为0
					i = 0;
				}
				
				m_Rece.close();
				receiver.close();
			} catch (IOException e) {
e.printStackTrace();
			} catch (InterruptedException e) {
e.printStackTrace();
			}
    	}
    };
}



第 18 章:ART 运行时 Android运行时(ART)是Android应用的执行环境,负责加载和执行DEX字节码。ART通过多层级编译策略(解释器、JIT、AOT)和并发垃圾回收(如CC和CMC收集器)优化性能。关键组件包括类链接器、dex2oat编译器、JIT编译器和内存管理系统。ART支持模块化更新,并通过配置文件引导优化(PGO)提升应用性能。调试能力基于JVMTI,提供断点、类重定义等功能。Android 17引入了多项改进,如分代标记-压缩GC、禁止反射修改static final字段、DEX容器格式V41等。ART架构 阅读详情

相关推荐

C++与android通过socket通信(上个版本端口弄错了,这个可以运行)

C++编写的服务器端跟android上编写的手机客户端进行socket通信,传动多种数据。用VC6.0直接打开C++ Server,用eclipse直接打开android socketTest。注意修改一下安卓代码中的IP地址。程序中java和C++的通信的内容使用了:http://download.youkuaiyun.com/detail/nuptboyzhb/4595415中的内容,在此感谢。

详谈Android进程间的大数据通信机制:LocalSocket

说起Android进行间通信,大家第一时间会想到AIDL,但是由于Binder机制的限制,AIDL无法传输超大数据。 那么我们如何在进程间传输大数据呢? Android中给我们提供了另外一个机制:LocalSocket

公众号:BennuCTech 1822

Android客户端抓取网络数据

使用http协议在安卓手机客户端引用网络资源,可以在手机上实现很多只有在网页上才能实现的功能

Android中LocalSocket实战

网上LocalSocket的知识可以搜到你读不完,所以它的知识本文就不介绍了。本文着重的是自己在实际使用中遇到的问题。 虽然早就经过各种代码洗礼,但是对于LocalSocket这方面还是第一次用到。但是咱不怕,发挥程序猿顶着油锅也要上的精神。巴拉巴拉把LocalSocket的基本知识过了一边。 看了看在Android中怎么用的,以及代码怎么写的。 还是先说一下背景吧,否则会凌乱哈。 本人需

小马过河的专栏 2253

STM32F103C8T6最小系统板GPIO配置避坑指南:从原理图到流水灯一次成功

本文详细介绍了STM32F103C8T6最小系统板GPIO配置的实战指南,从硬件准备到流水灯实现,涵盖了九大关键步骤。特别针对新手常见问题,如GPIO配置、开发环境搭建和程序下载调试,提供了详细的解决方案和避坑技巧,帮助开发者快速掌握STM32开发基础。

weixin_33756596的博客 340

手把手教你用Arduino Uno控制meArm机械臂(附完整代码+避坑指南)

本文提供了一份详尽的meArm机械臂控制指南,涵盖从Arduino Uno硬件连接到Servo库编程的完整流程。重点讲解了如何通过独立供电、软件限位和平滑运动函数实现稳定控制,并设计了串口指令协议与高级功能,帮助创客有效规避舵机抖动、电源不足等常见问题,让机械臂运行更流畅可靠。

gpt4scribbler的博客 541

在Android上使用LocalSocket实现上层Java和底层C++的通信案例

在看Android代码的时候发现有使用LocalSocket,比java本身的socket效率要高,好像没有经过协议栈,是android自己实现的类似共享内存一样的东东,在传输大量数据的时候就需要用到,比如视频数据,在RIL电话那部分也用到。刚好项目用到视频传输,我试用了一把,果然不错! public static final String SOCKET_ADDRESS ="socket_cmm

小明的专栏 1776

ESP32IDF 通过 PCA9685控制舵机的程序bug处理

esp32 PCA9685 bug 舵机

ztvzbj的博客 726

在Android上使用LocalSocket实现上层Java和底层C++的通信

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-07/65506.htm   在看Android代码的时候发现有使用LocalSocket,比java本身的socket效率要高,好像没有经过协议栈,是android自己实现的类似共享内存一样的东东,在传输大量数据的时候就需要用到,比如视频数

JESSE_ZHAO_503的专栏 1675

Halcon —— 图像像素类型与转换

图像类型 就目前工业领域主流的图像处理工具halcon来讲,有以下几张图像类型:‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’,具体含义如下图所示。相互间的转换可通过convert_image_type算子完成,但盲目转换会导致图像像素值异常。 ‘byte’ 每像素1字节,无符号 值范围: (0到255) ‘int1’ 每像素1字节,有符号 值范围: (-128到127) ‘

baidu_35536188的博客 1万+

从“盲控”到“预见”:聊聊永磁同步电机负载观测器(PMSM Load Observer)如何让控制更丝滑

本文深入探讨了永磁同步电机负载观测器(PMSM Load Observer)如何通过前馈补偿和转动惯量辨识技术实现智能抗扰控制。从传统‘盲控’到预见性调节,负载观测器显著减少转速波动和能耗,提升系统响应速度。文章详细解析了观测器算法架构、工程调参技巧及前沿发展趋势,为电机控制领域提供实用解决方案。

weixin_33737774的博客 406

android local socket,Android使用LocalSocket抓取数据

packagecom.snowice.local;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importandroid.app.Activity;importandroid.net.LocalServerSocket;importandroid.net.LocalSoc...

weixin_42300798的博客 383

R语言的下载、安装及环境配置(Rstudio&VSCode)

R for Windows是一个免费的用于统计计算和统计制图的优秀工具,是R语言开发工具。它拥有数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图等功能。提供的图形界面,可以在其中访问控制台、创建脚本或安装其他软件包。

zegeai的博客 2万+

Android中抓取手机视频流数据

目前实时抓取手机视频数据有2种方法,一种是通过camera的回调获取源数据,这里获取的源数据是没有编码的数据。 有的人发送yuv数据然后在那绘制图片,也说视频聊天,真是可笑。这种方式是可是实现视频聊天的,但是需要移植编码库 目前可移植的有,android的opencore编码,参考http://www.shouyanwang.org/thread-184-1-1.html。 ffmpeg编码

单向街的夏天 2452

Kalibr标定避坑指南:如何用AprilGrid板快速完成双目IMU标定

本文详细介绍了使用AprilGrid板进行Kalibr双目IMU联合标定的实战技巧,包括标定工具选型、数据采集优化、标定流程及结果验证。通过AprilGrid板的唯一标识性和抗遮挡优势,结合IMU静止标定和运动激励设计,显著提升标定精度。文章还提供了常见报错处理和高级优化技巧,帮助开发者高效完成传感器标定。

sunny的博客 282

地统计插值学习心得(一)

(创建地统计图层工具用于根据现有的地统计图层或者地统计模型来创建包含新要素数据集的地统计图层,也就是使用构建好的地统计模型用到新的数据集中)这表明,远离极值的区域预测不受极值的影响,并且还表明,包括极值会导致钼元素浓度高的区域周围的预测明显变高。通常,我们使用同一个数据集进行建模和预测,但是在实际插值过程中,这两步的数据可以是不同的,这就是处理极值的诀窍。如果你的数据集有无法忽略的极值时(比如这些钼元素浓度),一种常见的方法是首先显式移除极值进行建模,然后在预测中使用整个数据集(包括极值)。

JData_Engineer的博客 287

[转]Android中抓取手机视频流数据。

目前实时抓取手机视频数据有2种方法,一种是通过camera的回调获取源数据,这里获取的源数据是没有编码的数据。 有的人发送yuv数据然后在那绘制图片,也说视频聊天,真是可笑。这种方式是可是实现视频聊天的,但是需要移植编码库 目前可移植的有,android的opencore编码 ffmpeg编码,这个网上很难找,但是也有人实现哦。(编码效率好,但是支持不了高清视频) 编码完成...

{丸の子} 313

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android视频监控的解决方案探讨

1. camera YUV420数据直接socket发送到服务器端,转换成RGB显示 占用带宽较多。       原理阐述:基于socket,wifi。 android客户端获取的帧数据的格式为yuv420格式,本来将此data数据流直接传输到另一android端,由接收端完成图像的解码转换工作,但是发现如果直接传数据流数据量太大,还不如直接在本地解码转换完毕生成图片,然后将图片传到另外一a

zkq1989的专栏 1201

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

端侧物理AI商业化落地:从硬件部署到批量任务的全流程解析

随着人工智能模型从云端走向设备端,端侧AI成为降低推理成本、保障数据隐私和实现实时响应的关键技术。物理AI强调模型输出作用于真实物理空间,对端侧推理的延迟与稳定性提出了更高要求,由此推动了端侧AI硬件部署与Android端侧AI的工程化落地。从模型选型、量化转换到设备适配,开发者需要掌握一整套端侧部署方法论;同时,批量任务调度、接口协同和性能验收是商业化落地中不可忽视的环节。在投资与产业双重驱动下,围绕端侧物理AI的技术栈正加速成熟,为机器人、工业质检、智能交互等场景提供了可行的端到端解决方案。

weixin_34392435的博客 405

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: myBatis自动生成工具
下一篇: Java的Socket(一)
Android_Robot
博客等级 码龄15年 62粉丝 88原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值