最近在开发一个远程办公的软件。

昨天在手机调通,并且成功通过手机打开电脑上的Eclipse撸出来一个HelloWorld。

也许不久的将来, 下班后,拿着手机在家写代码了。工作时间直接变成24/24 /7

废话不多说,先来看下面的截图,图片都是手机截图

直接通过手机打开一个Windows操作系统。

下面打开Eclipse,创建了java工程。

相关原理

本篇我们简单介绍下。有些低层代码还没有来得及仔细研究,写的有点水。

1. 首先服务器开发一个虚拟桌面,类似阿里云的虚拟镜像一样,然后手机端进行交互。

2. 具体界面通过GLSerfaceView进行绘制。

3. 通过Spice协议传递交互数据

代码需要用到C语言函数库。这里armeabi和x86架构下都放置了这两个函数库,保证能够正常在模拟器和真机运行。

涉及到的开源框架

传输的流媒体框架使用GStreamer

SDK下载地址:

http://docs.gstreamer.com/display/GstSDK/Installing+the+SDK

教程下载地址:

http://docs.gstreamer.com/display/GstSDK/Android+tutorial+1%3A+Link+against+GStreamer

代码中首先加载本地函数库,提供一个native方法.

package org.freedesktop.gstreamer;

import android.content.Context;

public class GStreamer {
private static native void nativeInit(Context context) throws Exception; static {
System.loadLibrary("gstreamer_android");
} public static void init(Context context) throws Exception {
nativeInit(context);
}
}

程序一开始调用init方法。

    @Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle); mContext = this;
try {
GStreamer.init(mContext);
} catch (Exception e) {
Log.e(TAG, "Can't initialize GStreamer" + e.getMessage());
finish();
}
//.....
}

关于具体通信主要参考开源项目flexVDI/launcher-mobile

https://github.com/flexVDI/launcher-mobile

函数库源码通过cerbero获取

https://github.com/EricssonResearch/cerbero

或者

https://github.com/flexVDI/cerbero

下面一大堆native方法,大部分都是和手势 / 输入内容交互的。(请忽略native方法红色警告)

最后

代码还是比较多,没法一一列举,水了一篇。原谅我吧。以后有时间肯定会详细的分享出来。

更多精彩请关注微信公众账号likeDev

Android手机控制电脑撸出HelloWorld的更多相关文章

  1. 手机控制电脑,在WIFI局域网下(关机,重启,遥控)

    这个软件叫百变遥控:http://blog.sina.com.cn/s/blog_9abc7dbc0101hmut.html 今天周末,在家里看电影,家里用的是台式电脑,我自己买了一个投影仪来专门看视 ...

  2. 手机控制电脑定时关机,重启WiFi

    需求 晚上上床,电脑开着WiFi让手机上网.要么上床之前就给电脑设置定时关机:要么就电脑开通宵:要么就待会下来关电脑.这3种情况都非常不好,要么麻烦,要么浪费. 最无奈的是电脑刚开好WiFi,上床后才 ...

  3. 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(三)Android客户端功能实现

    我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(一)PC服务器端(地址:http://blog.csdn.net/ouyang_pen ...

  4. Android手机同步电脑端google chrome书签

    我先声明:文中FQ 都是博客园自动将中文(fan qiang)转换为FQ的,并不是我本来写的就是FQ~~ 手机和电脑都必须要能登录google(Xee:几乎所有做开发的人都每天的生活都离不开谷歌了,可 ...

  5. WIFI环境下Android手机和电脑通信

    前面已经写过一篇java实现最基础的socket网络通信,这篇和之前那篇大同小异,只是将客户端代码移植到手机中,然后获取本机IP的方法略有不同. 先讲一下本篇中用到Android studio的使用吧 ...

  6. Android手机播放电脑视频文件-屌丝必备

    今天早上一到办公室,照常打开博客园看文章,看到有一片文章是用  http://www.cnblogs.com/wdfrog/p/3738180.html 看到这哥们实现的方法好复杂,又是配置电脑端,又 ...

  7. Android 手机插入电脑后提示“”ADB Interface"安装失败的问题

    安装ADB Interface 1. Android Studio开发时,如果在真机上测试并不是那么的顺利.直接将手机插入电脑,并不能识别.往往提示ADB Interface驱动未安装.如下图所示. ...

  8. 手机控制电脑第二弹之HIPC

    点击蓝字关注我们 是否很多时候电脑不在身边,又急需要使用,比如正好要用一个文件,又没有放在我们的网盘中,想用手机查看电脑状态,但是很多太复杂的方式不会使用,需要简单的方式,今天方成分享给你 前言 故事 ...

  9. scrcpy投屏android手机到电脑

    在mac os下 投票iPhone投屏是最简单不过了,只需要用Quicktime player就可以. 但是在mac下咱投屏android的手机呢,就需要用到scrcpy了. 1.打开终端,输入命令: ...

随机推荐

  1. Odoo models.py BaseModel

    class BaseModel(object): """ Base class for OpenERP models. OpenERP models are create ...

  2. java基础之集合(Set,Map,List)总结

    一.Collection接口 1.Collection接口两个子接口     -List接口         -ArrayList:         -Vector:         -LinkedL ...

  3. Python爬虫笔记【一】模拟用户访问之设置处理cookie(2)

    学习的课本为<python网络数据采集>,大部分代码来此此书. 做完请求头的处理,cookie的值也是区分用户和机器的一个方式.所以也要处理一下cookie,需要用requests模块,废 ...

  4. Linux上用户执行命令记录

    HFILE=`who -m | awk '{print $1}'`readonly HISTFILE=/var/history/$HFILE-$USER-$UID.logreadonly HISTFI ...

  5. 免费提取百度文库 doc 文件

    首先说明,今天要推荐的这款软件,不能不能不能免费提取百度文库里 PDF 格式的文件. 对于其他的格式,无论收费与否都能免费提取. 只是口头说说免不了耍流氓的嫌疑,举栗如下: 百度文库里<喜迎党的 ...

  6. mysql导出数据库某些表的数据

    # 导出数据,一般从从库导出,减少主库的压力.mysqldump -hhostname -P3306 --single-transaction --master-data= database_name ...

  7. 洛谷P5071 此时此刻的光辉

    2s512M. 解:先分解质因数.考虑按照质因数大小是否大于√分类. 大于的就是一个数颜色个数,莫队即可n√m. 小于的直接枚举质因数做前缀和然后O(1)查询.总时间复杂度n(√m + σ(√V)). ...

  8. 20190815-$N \Theta IP$

    $NOIP$ 请选择您想测试的难度: 「困难」 「困难的地狱」 「能被神犇切掉的」 「你做不出来的」 「简单(完成前面所有后解锁)」 要难死了-- 考试过程: 首先看看三道题: 这是NOIP模拟测试? ...

  9. vmware 安装 黑群晖

    先做一个启动盘 然后竟然启动不了 算了 不管了,去网上找个别人做好的吧 添加硬盘的时候,需要选择sata, 比如安装6.2需要这个版本的引导,就直接选中这个,因为我自己做的启动盘不管用,也不知道为嘛 ...

  10. python基本算法题(一)

    1.3位水仙花数计算 "3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身. 例如: ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC. 使用P ...