Android手机控制电脑撸出HelloWorld

简介: 最近在开发一个远程办公的软件。 昨天在手机调通,并且成功通过手机打开电脑上的Eclipse撸出来一个HelloWorld。也许不久的将来, 下班后,拿着手机在家写代码了。工作时间直接变成24/24 /7废话不多说,先来看下面的截图,图片都是手机截图直接通过手机打开一个Windows操作系统。 下面打开Eclipse,创建了java工程。相关原理本

最近在开发一个远程办公的软件。
昨天在手机调通,并且成功通过手机打开电脑上的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
这里写图片描述

相关文章
|
5天前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
|
5天前
|
机器学习/深度学习 人工智能 Android开发
安卓智能手机操作系统演化史
【2月更文挑战第5天】 本文通过对安卓智能手机操作系统的演化历程进行探讨,分析了安卓系统从诞生至今的发展脉络和关键技术革新,从最初的版本到如今的最新版本,探讨了其在移动互联网时代的重要作用,以及未来可能的发展方向。
|
5天前
|
网络协议 数据安全/隐私保护 网络架构
如何在家中使用手机或电脑远程控制公司iStoreOS软路由下的电脑桌面
如何在家中使用手机或电脑远程控制公司iStoreOS软路由下的电脑桌面
28 4
|
5天前
|
运维 安全 Android开发
手机与电脑投屏互联方案
手机与电脑投屏互联方案
34 7
|
5天前
|
网络协议 安全 Linux
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器
|
5天前
|
Android开发
安卓远离手机app
远离手机是专门为防止年轻人上瘾而打造的生活管理类的软件,适度用手机,保护眼睛,节约时间。
11 0
安卓远离手机app
|
5天前
|
存储 数据库 Android开发
Android实现手机内存存储功能
Android实现手机内存存储功能
27 2
|
5天前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
61 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
5天前
|
网络协议 关系型数据库 MySQL
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
|
5天前
|
JavaScript Android开发
手机也能轻松搭建个人博客,使用安卓Termux+Hexo建立自己的网站
手机也能轻松搭建个人博客,使用安卓Termux+Hexo建立自己的网站